@deot/docs-playground 1.0.7 → 1.0.9

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/dist/index.cjs CHANGED
@@ -105,34 +105,71 @@ var highlightCodeByLanguage = (code, language) => {
105
105
  var highlightCode = (code, filename) => highlightCodeByLanguage(code, resolveHighlightLanguage(filename));
106
106
  //#endregion
107
107
  //#region packages/playground/src/icon/icons.ts
108
- var PLAYGROUND_ICON_PATHS = {
109
- runtime: "M5 3h14a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm3 18h8m-4-3v3m-2-13 5 3-5 3V8Z",
110
- files: "M6 2h8l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 0v6h5m-9 5-2 2 2 2m5-4 2 2-2 2",
111
- copy: "M9 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2Zm-2 8H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4",
112
- editor: "M8 8 4 12l4 4m8-8 4 4-4 4m-3-10-2 12",
113
- viewport: "M3 4h12v10H3V4Zm3 14h6m-3-4v4m9-9h3v11h-6V9h3m0 9h0"
108
+ var strokeIcon = (path) => ({
109
+ path,
110
+ fill: "none",
111
+ stroke: "currentColor"
112
+ });
113
+ var solidIcon = (path) => ({
114
+ path,
115
+ fill: "currentColor",
116
+ stroke: "none"
117
+ });
118
+ var PLAYGROUND_ICONS = {
119
+ runtime: strokeIcon("M5 3h14a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm3 18h8m-4-3v3m-2-13 5 3-5 3V8Z"),
120
+ files: strokeIcon("M6 2h8l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 0v6h5m-9 5-2 2 2 2m5-4 2 2-2 2"),
121
+ copy: strokeIcon(["M9 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2Z", "m-2 8H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4"].join("")),
122
+ refresh: solidIcon(["M12 2.5a9.5 9.5 0 1 1 0 19 1 1 0 1 1 0-2 7.5 7.5 0 1 0-7.5-7.8l.24-.23a.75.75 0 1 1 1.06 1.06", "L4.03 14.3a.75.75 0 0 1-1.06 0L1.2 12.53a.75.75 0 1 1 1.06-1.06l.24.24A9.5 9.5 0 0 1 12 2.5"].join("")),
123
+ editor: solidIcon([
124
+ "M9.38 19.32a.82.82 0 0 1-.71-1.23l5.85-10.13a.82.82 0 0 1 1.42.82l-5.85 10.13a.8.8 0 0 1-.71.4",
125
+ "m-2.52-.76a.8.8 0 0 1-.58-.25l-4.13-4.12a1.06 1.06 0 0 1 0-1.5l4.13-4.12a.82.82 0 1 1 1.16 1.16",
126
+ "l-3.72 3.71 3.72 3.71a.82.82 0 0 1-.58 1.4m10.9 0a.82.82 0 0 1-.58-1.4l3.7-3.7-3.7-3.72",
127
+ "a.82.82 0 1 1 1.16-1.16l4.12 4.13c.41.4.41 1.08 0 1.49l-4.12 4.12a.8.8 0 0 1-.59.25"
128
+ ].join("")),
129
+ viewport: solidIcon([
130
+ "M21.82 2.93c-.3-.3-.7-.47-1.1-.47H4.6c-.87 0-1.58.7-1.58 1.58v4.18h1.12V3.67h17v12.54",
131
+ "c0 .25-.2.46-.45.46H9.49v1.13h.67q-.25.66-.6 1.11l-.06.06v1.86h7.86a.56.56 0 1 0 0-1.13",
132
+ "q-1.46 0-2.2-1.9h5.55c.87 0 1.57-.71 1.57-1.59V4.04a1.6 1.6 0 0 0-.46-1.11M10.55 19.6",
133
+ "c.43-.63.66-1.08.92-1.81h2.37c.25.8.51 1.26.97 1.77l.03.05zM8.12 8.4H2.9",
134
+ "c-.64 0-1.17.53-1.17 1.19v10.75c0 .66.53 1.19 1.17 1.19h5.21c.65 0 1.18-.53 1.18-1.19V9.6",
135
+ "a1.16 1.16 0 0 0-1.17-1.19M8.1 20.36H2.94V9.64h5.15z"
136
+ ].join(""))
114
137
  };
115
138
  //#endregion
116
139
  //#region packages/playground/src/icon/icon.vue?vue&type=script&setup=true&lang.ts
117
- var _hoisted_1$5 = {
118
- class: "docs-playground-icon",
119
- viewBox: "0 0 24 24",
120
- fill: "none",
121
- stroke: "currentColor",
122
- "stroke-width": "1.8",
123
- "stroke-linecap": "round",
124
- "stroke-linejoin": "round",
125
- "aria-hidden": "true"
126
- };
140
+ var _hoisted_1$5 = ["fill", "stroke"];
127
141
  var _hoisted_2$4 = ["d"];
128
142
  //#endregion
129
143
  //#region packages/playground/src/icon/icon.vue
130
144
  var icon_default = /* @__PURE__ */ (0, vue.defineComponent)({
131
145
  __name: "icon",
132
- props: { name: {} },
146
+ props: {
147
+ name: {},
148
+ size: {}
149
+ },
133
150
  setup(__props) {
151
+ const props = __props;
152
+ const icon = (0, vue.computed)(() => PLAYGROUND_ICONS[props.name]);
153
+ const sizeStyle = (0, vue.computed)(() => {
154
+ if (props.size == null) return;
155
+ const value = typeof props.size === "number" ? `${props.size}px` : props.size;
156
+ return {
157
+ width: value,
158
+ height: value
159
+ };
160
+ });
134
161
  return (_ctx, _cache) => {
135
- return (0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_1$5, [(0, vue.createElementVNode)("path", { d: (0, vue.unref)(PLAYGROUND_ICON_PATHS)[__props.name] }, null, 8, _hoisted_2$4)]);
162
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("svg", {
163
+ class: "docs-playground-icon",
164
+ viewBox: "0 0 24 24",
165
+ style: (0, vue.normalizeStyle)(sizeStyle.value),
166
+ fill: icon.value.fill,
167
+ stroke: icon.value.stroke,
168
+ "stroke-width": "1.8",
169
+ "stroke-linecap": "round",
170
+ "stroke-linejoin": "round",
171
+ "aria-hidden": "true"
172
+ }, [(0, vue.createElementVNode)("path", { d: icon.value.path }, null, 8, _hoisted_2$4)], 12, _hoisted_1$5);
136
173
  };
137
174
  }
138
175
  });
@@ -460,7 +497,7 @@ var _hoisted_7$1 = ["title", "aria-label"];
460
497
  var _hoisted_8$1 = ["title", "aria-label"];
461
498
  var _hoisted_9$1 = { class: "docs-playground-editor__actions" };
462
499
  var _hoisted_10$1 = ["title"];
463
- var _hoisted_11 = ["title", "disabled"];
500
+ var _hoisted_11$1 = ["title", "disabled"];
464
501
  var _hoisted_12 = {
465
502
  key: 0,
466
503
  class: "docs-playground-editor__error"
@@ -692,7 +729,10 @@ var editor_default = /* @__PURE__ */ (0, vue.defineComponent)({
692
729
  ref_key: "bar",
693
730
  ref: bar,
694
731
  class: "docs-playground-editor__header"
695
- }, [_cache[3] || (_cache[3] = (0, vue.createElementVNode)("span", null, "</>", -1)), (0, vue.createElementVNode)("span", {
732
+ }, [(0, vue.createVNode)((0, vue.unref)(icon_default), {
733
+ name: "editor",
734
+ size: 24
735
+ }), (0, vue.createElementVNode)("span", {
696
736
  title: (0, vue.unref)(t)("playground.common.close"),
697
737
  style: { "cursor": "pointer" },
698
738
  onClick: handleHide
@@ -766,7 +806,7 @@ var editor_default = /* @__PURE__ */ (0, vue.defineComponent)({
766
806
  title: (0, vue.unref)(t)("playground.editor.setEntry"),
767
807
  disabled: activeFilename.value === currentEntry.value,
768
808
  onClick: handleEntry
769
- }, (0, vue.toDisplayString)((0, vue.unref)(t)("playground.editor.setEntry")), 9, _hoisted_11)])]),
809
+ }, (0, vue.toDisplayString)((0, vue.unref)(t)("playground.editor.setEntry")), 9, _hoisted_11$1)])]),
770
810
  codeErrorText.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_12, (0, vue.toDisplayString)(codeErrorText.value), 1)) : (0, vue.createCommentVNode)("v-if", true),
771
811
  (0, vue.createElementVNode)("div", {
772
812
  ref_key: "textarea",
@@ -1500,28 +1540,29 @@ var _hoisted_2 = {
1500
1540
  };
1501
1541
  var _hoisted_3 = { class: "docs-playground__header" };
1502
1542
  var _hoisted_4 = { class: "docs-playground__tools" };
1503
- var _hoisted_5 = [
1543
+ var _hoisted_5 = ["title", "aria-label"];
1544
+ var _hoisted_6 = [
1504
1545
  "title",
1505
1546
  "aria-label",
1506
1547
  "aria-expanded"
1507
1548
  ];
1508
- var _hoisted_6 = ["title", "aria-label"];
1509
- var _hoisted_7 = {
1549
+ var _hoisted_7 = ["title", "aria-label"];
1550
+ var _hoisted_8 = {
1510
1551
  key: 0,
1511
1552
  class: "docs-playground__views"
1512
1553
  };
1513
- var _hoisted_8 = [
1554
+ var _hoisted_9 = [
1514
1555
  "title",
1515
1556
  "aria-label",
1516
1557
  "aria-pressed",
1517
1558
  "onClick"
1518
1559
  ];
1519
- var _hoisted_9 = {
1560
+ var _hoisted_10 = {
1520
1561
  key: 0,
1521
1562
  class: "docs-playground__runtime-error",
1522
1563
  role: "alert"
1523
1564
  };
1524
- var _hoisted_10 = { class: "docs-playground-runtime__viewport-stage" };
1565
+ var _hoisted_11 = { class: "docs-playground-runtime__viewport-stage" };
1525
1566
  //#endregion
1526
1567
  //#region packages/playground/src/core/runtime/runtime.vue
1527
1568
  var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
@@ -1532,6 +1573,7 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1532
1573
  views: { default: () => ["runtime"] },
1533
1574
  activeView: { default: "runtime" },
1534
1575
  options: {},
1576
+ previewInset: { default: 10 },
1535
1577
  previewOptions: {},
1536
1578
  styleless: {
1537
1579
  type: Boolean,
@@ -1574,6 +1616,7 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1574
1616
  const copyValue = (0, vue.computed)(() => props.files[props.entry] || "");
1575
1617
  const store = createRuntimeStore(props.files, props.entry, props.options);
1576
1618
  const sandboxRef = (0, vue.ref)(null);
1619
+ const sandboxKey = (0, vue.ref)(0);
1577
1620
  const runtimeHeight = useSandboxAutoHeight(sandboxRef);
1578
1621
  const runtimeError = useSandboxRuntimeErrorGuard(sandboxRef);
1579
1622
  useSandboxTheme(sandboxRef);
@@ -1594,7 +1637,19 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1594
1637
  const viewportMenuVisible = (0, vue.ref)(false);
1595
1638
  const viewportLabel = (0, vue.computed)(() => formatViewportLabel(props.viewport, t("playground.runtime.auto")));
1596
1639
  const desiredViewportHeight = (0, vue.computed)(() => getViewportHeight(props.viewport) || runtimeHeight.value);
1597
- const previewStyle = (0, vue.computed)(() => ({ height: `${desiredViewportHeight.value + 20}px` }));
1640
+ const normalizedPreviewInset = (0, vue.computed)(() => {
1641
+ const value = props.previewInset;
1642
+ if (typeof value === "number") return Number.isFinite(value) && value >= 0 ? [value, value] : [10, 10];
1643
+ if (Array.isArray(value) && value.length === 2 && value.every((item) => typeof item === "number" && Number.isFinite(item) && item >= 0)) return [value[0], value[1]];
1644
+ return [10, 10];
1645
+ });
1646
+ const previewStyle = (0, vue.computed)(() => {
1647
+ const [vertical, horizontal] = normalizedPreviewInset.value;
1648
+ return {
1649
+ height: `${desiredViewportHeight.value + vertical * 2}px`,
1650
+ padding: vertical === horizontal ? `${vertical}px` : `${vertical}px ${horizontal}px`
1651
+ };
1652
+ });
1598
1653
  const stylelessStyle = (0, vue.computed)(() => errorText.value ? void 0 : { height: `${desiredViewportHeight.value}px` });
1599
1654
  const viewportStyle = (0, vue.computed)(() => {
1600
1655
  const width = getViewportWidth(props.viewport);
@@ -1644,6 +1699,10 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1644
1699
  onActiveChange: (filename) => store.setActive(toReplFilename(filename))
1645
1700
  });
1646
1701
  };
1702
+ const handleRefresh = () => {
1703
+ runtimeError.value = "";
1704
+ sandboxKey.value++;
1705
+ };
1647
1706
  const handleView = (view) => emit("view-change", view);
1648
1707
  const handleViewport = (index) => {
1649
1708
  const viewport = props.viewportOptions[index];
@@ -1681,6 +1740,14 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1681
1740
  "preview-options": mergedPreviewOptions.value
1682
1741
  }, null, 8, ["store", "preview-options"])], 4)], 4)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2, [
1683
1742
  (0, vue.createElementVNode)("div", _hoisted_3, [(0, vue.createElementVNode)("div", _hoisted_4, [
1743
+ (0, vue.createElementVNode)("button", {
1744
+ type: "button",
1745
+ class: "docs-playground__tool docs-playground__refresh",
1746
+ "data-action": "refresh",
1747
+ title: (0, vue.unref)(t)("playground.runtime.refresh"),
1748
+ "aria-label": (0, vue.unref)(t)("playground.runtime.refresh"),
1749
+ onClick: handleRefresh
1750
+ }, [(0, vue.createVNode)((0, vue.unref)(icon_default), { name: "refresh" })], 8, _hoisted_5),
1684
1751
  __props.viewportOptions.length > 1 ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_deot_vc.Dropdown), {
1685
1752
  key: 0,
1686
1753
  modelValue: viewportMenuVisible.value,
@@ -1723,7 +1790,7 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1723
1790
  "aria-label": (0, vue.unref)(t)("playground.runtime.viewport", { value: viewportLabel.value }),
1724
1791
  "aria-expanded": viewportMenuVisible.value,
1725
1792
  "aria-haspopup": "menu"
1726
- }, [(0, vue.createVNode)((0, vue.unref)(icon_default), { name: "viewport" })], 10, _hoisted_5)]),
1793
+ }, [(0, vue.createVNode)((0, vue.unref)(icon_default), { name: "viewport" })], 10, _hoisted_6)]),
1727
1794
  _: 1
1728
1795
  }, 8, ["modelValue"])) : (0, vue.createCommentVNode)("v-if", true),
1729
1796
  (0, vue.createVNode)((0, vue.unref)(_deot_vc.Clipboard), {
@@ -1748,8 +1815,8 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1748
1815
  title: (0, vue.unref)(t)("playground.runtime.editFiles"),
1749
1816
  "aria-label": (0, vue.unref)(t)("playground.runtime.editFiles"),
1750
1817
  onClick: handleEditor
1751
- }, [(0, vue.createVNode)((0, vue.unref)(icon_default), { name: "editor" })], 8, _hoisted_6)
1752
- ]), __props.views.length > 1 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_7, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.views, (item) => {
1818
+ }, [(0, vue.createVNode)((0, vue.unref)(icon_default), { name: "editor" })], 8, _hoisted_7)
1819
+ ]), __props.views.length > 1 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_8, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.views, (item) => {
1753
1820
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", {
1754
1821
  key: item,
1755
1822
  type: "button",
@@ -1758,23 +1825,24 @@ var runtime_default = /* @__PURE__ */ (0, vue.defineComponent)({
1758
1825
  "aria-label": getViewText(item),
1759
1826
  "aria-pressed": item === __props.activeView,
1760
1827
  onClick: ($event) => handleView(item)
1761
- }, [(0, vue.createVNode)((0, vue.unref)(icon_default), { name: item }, null, 8, ["name"])], 10, _hoisted_8);
1828
+ }, [(0, vue.createVNode)((0, vue.unref)(icon_default), { name: item }, null, 8, ["name"])], 10, _hoisted_9);
1762
1829
  }), 128))])) : (0, vue.createCommentVNode)("v-if", true)]),
1763
- errorText.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("pre", _hoisted_9, (0, vue.toDisplayString)(errorText.value), 1)) : (0, vue.createCommentVNode)("v-if", true),
1830
+ errorText.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("pre", _hoisted_10, (0, vue.toDisplayString)(errorText.value), 1)) : (0, vue.createCommentVNode)("v-if", true),
1764
1831
  (0, vue.createElementVNode)("section", {
1765
1832
  class: "docs-playground__preview",
1766
1833
  style: (0, vue.normalizeStyle)(previewStyle.value)
1767
- }, [(0, vue.createElementVNode)("div", _hoisted_10, [(0, vue.createElementVNode)("div", {
1834
+ }, [(0, vue.createElementVNode)("div", _hoisted_11, [(0, vue.createElementVNode)("div", {
1768
1835
  class: "docs-playground-runtime__viewport",
1769
1836
  style: (0, vue.normalizeStyle)(viewportStyle.value)
1770
- }, [(0, vue.createVNode)((0, vue.unref)(_vue_repl.Sandbox), {
1837
+ }, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_vue_repl.Sandbox), {
1838
+ key: sandboxKey.value,
1771
1839
  ref_key: "sandboxRef",
1772
1840
  ref: sandboxRef,
1773
1841
  store: (0, vue.unref)(store),
1774
1842
  "auto-store-init": false,
1775
1843
  "clear-console": clearConsole,
1776
1844
  "preview-options": mergedPreviewOptions.value
1777
- }, null, 8, ["store", "preview-options"])], 4)])], 4)
1845
+ }, null, 8, ["store", "preview-options"]))], 4)])], 4)
1778
1846
  ]));
1779
1847
  };
1780
1848
  }
@@ -1801,6 +1869,7 @@ var playground_default = /* @__PURE__ */ (0, vue.defineComponent)({
1801
1869
  default: false
1802
1870
  },
1803
1871
  options: { default: () => ({}) },
1872
+ previewInset: { default: 0 },
1804
1873
  previewOptions: {},
1805
1874
  locale: {}
1806
1875
  },
@@ -1933,6 +2002,7 @@ var playground_default = /* @__PURE__ */ (0, vue.defineComponent)({
1933
2002
  entry: currentEntry.value,
1934
2003
  options: __props.options,
1935
2004
  "preview-options": __props.previewOptions,
2005
+ "preview-inset": __props.previewInset,
1936
2006
  styleless: true,
1937
2007
  viewport: activeViewport.value,
1938
2008
  "viewport-options": selectableViewportOptions.value,
@@ -1944,6 +2014,7 @@ var playground_default = /* @__PURE__ */ (0, vue.defineComponent)({
1944
2014
  "entry",
1945
2015
  "options",
1946
2016
  "preview-options",
2017
+ "preview-inset",
1947
2018
  "viewport",
1948
2019
  "viewport-options"
1949
2020
  ])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
@@ -1957,6 +2028,7 @@ var playground_default = /* @__PURE__ */ (0, vue.defineComponent)({
1957
2028
  entry: currentEntry.value,
1958
2029
  options: __props.options,
1959
2030
  "preview-options": __props.previewOptions,
2031
+ "preview-inset": __props.previewInset,
1960
2032
  "active-view": activeView.value,
1961
2033
  views: normalizedViews.value,
1962
2034
  viewport: activeViewport.value,
@@ -1970,6 +2042,7 @@ var playground_default = /* @__PURE__ */ (0, vue.defineComponent)({
1970
2042
  "entry",
1971
2043
  "options",
1972
2044
  "preview-options",
2045
+ "preview-inset",
1973
2046
  "active-view",
1974
2047
  "views",
1975
2048
  "viewport",
package/dist/index.d.ts CHANGED
@@ -36,6 +36,7 @@ entry: string;
36
36
  views: readonly string[];
37
37
  modelValue: string;
38
38
  options: PlaygroundOptions;
39
+ previewInset: PlaygroundPreviewInset;
39
40
  styleless: boolean;
40
41
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
41
42
 
@@ -56,6 +57,7 @@ declare type __VLS_Props_2 = {
56
57
  viewportOptions?: readonly unknown[];
57
58
  styleless?: boolean;
58
59
  options?: PlaygroundOptions;
60
+ previewInset?: PlaygroundPreviewInset;
59
61
  previewOptions?: PlaygroundPreviewOptions;
60
62
  locale?: Language;
61
63
  };
@@ -166,6 +168,8 @@ export declare type PlaygroundOptions = Omit<Partial<StoreState>, 'builtinImport
166
168
  builtinImportMap?: ImportMap;
167
169
  };
168
170
 
171
+ export declare type PlaygroundPreviewInset = number | [vertical: number, horizontal: number];
172
+
169
173
  export declare type PlaygroundPreviewOptions = SandboxProps['previewOptions'];
170
174
 
171
175
  export declare type PlaygroundView = 'runtime' | 'files';
package/dist/index.js CHANGED
@@ -81,34 +81,71 @@ var highlightCodeByLanguage = (code, language) => {
81
81
  var highlightCode = (code, filename) => highlightCodeByLanguage(code, resolveHighlightLanguage(filename));
82
82
  //#endregion
83
83
  //#region packages/playground/src/icon/icons.ts
84
- var PLAYGROUND_ICON_PATHS = {
85
- runtime: "M5 3h14a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm3 18h8m-4-3v3m-2-13 5 3-5 3V8Z",
86
- files: "M6 2h8l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 0v6h5m-9 5-2 2 2 2m5-4 2 2-2 2",
87
- copy: "M9 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2Zm-2 8H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4",
88
- editor: "M8 8 4 12l4 4m8-8 4 4-4 4m-3-10-2 12",
89
- viewport: "M3 4h12v10H3V4Zm3 14h6m-3-4v4m9-9h3v11h-6V9h3m0 9h0"
84
+ var strokeIcon = (path) => ({
85
+ path,
86
+ fill: "none",
87
+ stroke: "currentColor"
88
+ });
89
+ var solidIcon = (path) => ({
90
+ path,
91
+ fill: "currentColor",
92
+ stroke: "none"
93
+ });
94
+ var PLAYGROUND_ICONS = {
95
+ runtime: strokeIcon("M5 3h14a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm3 18h8m-4-3v3m-2-13 5 3-5 3V8Z"),
96
+ files: strokeIcon("M6 2h8l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 0v6h5m-9 5-2 2 2 2m5-4 2 2-2 2"),
97
+ copy: strokeIcon(["M9 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2Z", "m-2 8H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v4"].join("")),
98
+ refresh: solidIcon(["M12 2.5a9.5 9.5 0 1 1 0 19 1 1 0 1 1 0-2 7.5 7.5 0 1 0-7.5-7.8l.24-.23a.75.75 0 1 1 1.06 1.06", "L4.03 14.3a.75.75 0 0 1-1.06 0L1.2 12.53a.75.75 0 1 1 1.06-1.06l.24.24A9.5 9.5 0 0 1 12 2.5"].join("")),
99
+ editor: solidIcon([
100
+ "M9.38 19.32a.82.82 0 0 1-.71-1.23l5.85-10.13a.82.82 0 0 1 1.42.82l-5.85 10.13a.8.8 0 0 1-.71.4",
101
+ "m-2.52-.76a.8.8 0 0 1-.58-.25l-4.13-4.12a1.06 1.06 0 0 1 0-1.5l4.13-4.12a.82.82 0 1 1 1.16 1.16",
102
+ "l-3.72 3.71 3.72 3.71a.82.82 0 0 1-.58 1.4m10.9 0a.82.82 0 0 1-.58-1.4l3.7-3.7-3.7-3.72",
103
+ "a.82.82 0 1 1 1.16-1.16l4.12 4.13c.41.4.41 1.08 0 1.49l-4.12 4.12a.8.8 0 0 1-.59.25"
104
+ ].join("")),
105
+ viewport: solidIcon([
106
+ "M21.82 2.93c-.3-.3-.7-.47-1.1-.47H4.6c-.87 0-1.58.7-1.58 1.58v4.18h1.12V3.67h17v12.54",
107
+ "c0 .25-.2.46-.45.46H9.49v1.13h.67q-.25.66-.6 1.11l-.06.06v1.86h7.86a.56.56 0 1 0 0-1.13",
108
+ "q-1.46 0-2.2-1.9h5.55c.87 0 1.57-.71 1.57-1.59V4.04a1.6 1.6 0 0 0-.46-1.11M10.55 19.6",
109
+ "c.43-.63.66-1.08.92-1.81h2.37c.25.8.51 1.26.97 1.77l.03.05zM8.12 8.4H2.9",
110
+ "c-.64 0-1.17.53-1.17 1.19v10.75c0 .66.53 1.19 1.17 1.19h5.21c.65 0 1.18-.53 1.18-1.19V9.6",
111
+ "a1.16 1.16 0 0 0-1.17-1.19M8.1 20.36H2.94V9.64h5.15z"
112
+ ].join(""))
90
113
  };
91
114
  //#endregion
92
115
  //#region packages/playground/src/icon/icon.vue?vue&type=script&setup=true&lang.ts
93
- var _hoisted_1$5 = {
94
- class: "docs-playground-icon",
95
- viewBox: "0 0 24 24",
96
- fill: "none",
97
- stroke: "currentColor",
98
- "stroke-width": "1.8",
99
- "stroke-linecap": "round",
100
- "stroke-linejoin": "round",
101
- "aria-hidden": "true"
102
- };
116
+ var _hoisted_1$5 = ["fill", "stroke"];
103
117
  var _hoisted_2$4 = ["d"];
104
118
  //#endregion
105
119
  //#region packages/playground/src/icon/icon.vue
106
120
  var icon_default = /* @__PURE__ */ defineComponent({
107
121
  __name: "icon",
108
- props: { name: {} },
122
+ props: {
123
+ name: {},
124
+ size: {}
125
+ },
109
126
  setup(__props) {
127
+ const props = __props;
128
+ const icon = computed(() => PLAYGROUND_ICONS[props.name]);
129
+ const sizeStyle = computed(() => {
130
+ if (props.size == null) return;
131
+ const value = typeof props.size === "number" ? `${props.size}px` : props.size;
132
+ return {
133
+ width: value,
134
+ height: value
135
+ };
136
+ });
110
137
  return (_ctx, _cache) => {
111
- return openBlock(), createElementBlock("svg", _hoisted_1$5, [createElementVNode("path", { d: unref(PLAYGROUND_ICON_PATHS)[__props.name] }, null, 8, _hoisted_2$4)]);
138
+ return openBlock(), createElementBlock("svg", {
139
+ class: "docs-playground-icon",
140
+ viewBox: "0 0 24 24",
141
+ style: normalizeStyle(sizeStyle.value),
142
+ fill: icon.value.fill,
143
+ stroke: icon.value.stroke,
144
+ "stroke-width": "1.8",
145
+ "stroke-linecap": "round",
146
+ "stroke-linejoin": "round",
147
+ "aria-hidden": "true"
148
+ }, [createElementVNode("path", { d: icon.value.path }, null, 8, _hoisted_2$4)], 12, _hoisted_1$5);
112
149
  };
113
150
  }
114
151
  });
@@ -436,7 +473,7 @@ var _hoisted_7$1 = ["title", "aria-label"];
436
473
  var _hoisted_8$1 = ["title", "aria-label"];
437
474
  var _hoisted_9$1 = { class: "docs-playground-editor__actions" };
438
475
  var _hoisted_10$1 = ["title"];
439
- var _hoisted_11 = ["title", "disabled"];
476
+ var _hoisted_11$1 = ["title", "disabled"];
440
477
  var _hoisted_12 = {
441
478
  key: 0,
442
479
  class: "docs-playground-editor__error"
@@ -668,7 +705,10 @@ var Editor = new Portal(/* @__PURE__ */ defineComponent({
668
705
  ref_key: "bar",
669
706
  ref: bar,
670
707
  class: "docs-playground-editor__header"
671
- }, [_cache[3] || (_cache[3] = createElementVNode("span", null, "</>", -1)), createElementVNode("span", {
708
+ }, [createVNode(unref(icon_default), {
709
+ name: "editor",
710
+ size: 24
711
+ }), createElementVNode("span", {
672
712
  title: unref(t)("playground.common.close"),
673
713
  style: { "cursor": "pointer" },
674
714
  onClick: handleHide
@@ -742,7 +782,7 @@ var Editor = new Portal(/* @__PURE__ */ defineComponent({
742
782
  title: unref(t)("playground.editor.setEntry"),
743
783
  disabled: activeFilename.value === currentEntry.value,
744
784
  onClick: handleEntry
745
- }, toDisplayString(unref(t)("playground.editor.setEntry")), 9, _hoisted_11)])]),
785
+ }, toDisplayString(unref(t)("playground.editor.setEntry")), 9, _hoisted_11$1)])]),
746
786
  codeErrorText.value ? (openBlock(), createElementBlock("div", _hoisted_12, toDisplayString(codeErrorText.value), 1)) : createCommentVNode("v-if", true),
747
787
  createElementVNode("div", {
748
788
  ref_key: "textarea",
@@ -1473,28 +1513,29 @@ var _hoisted_2 = {
1473
1513
  };
1474
1514
  var _hoisted_3 = { class: "docs-playground__header" };
1475
1515
  var _hoisted_4 = { class: "docs-playground__tools" };
1476
- var _hoisted_5 = [
1516
+ var _hoisted_5 = ["title", "aria-label"];
1517
+ var _hoisted_6 = [
1477
1518
  "title",
1478
1519
  "aria-label",
1479
1520
  "aria-expanded"
1480
1521
  ];
1481
- var _hoisted_6 = ["title", "aria-label"];
1482
- var _hoisted_7 = {
1522
+ var _hoisted_7 = ["title", "aria-label"];
1523
+ var _hoisted_8 = {
1483
1524
  key: 0,
1484
1525
  class: "docs-playground__views"
1485
1526
  };
1486
- var _hoisted_8 = [
1527
+ var _hoisted_9 = [
1487
1528
  "title",
1488
1529
  "aria-label",
1489
1530
  "aria-pressed",
1490
1531
  "onClick"
1491
1532
  ];
1492
- var _hoisted_9 = {
1533
+ var _hoisted_10 = {
1493
1534
  key: 0,
1494
1535
  class: "docs-playground__runtime-error",
1495
1536
  role: "alert"
1496
1537
  };
1497
- var _hoisted_10 = { class: "docs-playground-runtime__viewport-stage" };
1538
+ var _hoisted_11 = { class: "docs-playground-runtime__viewport-stage" };
1498
1539
  //#endregion
1499
1540
  //#region packages/playground/src/core/runtime/runtime.vue
1500
1541
  var runtime_default = /* @__PURE__ */ defineComponent({
@@ -1505,6 +1546,7 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1505
1546
  views: { default: () => ["runtime"] },
1506
1547
  activeView: { default: "runtime" },
1507
1548
  options: {},
1549
+ previewInset: { default: 10 },
1508
1550
  previewOptions: {},
1509
1551
  styleless: {
1510
1552
  type: Boolean,
@@ -1547,6 +1589,7 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1547
1589
  const copyValue = computed(() => props.files[props.entry] || "");
1548
1590
  const store = createRuntimeStore(props.files, props.entry, props.options);
1549
1591
  const sandboxRef = ref(null);
1592
+ const sandboxKey = ref(0);
1550
1593
  const runtimeHeight = useSandboxAutoHeight(sandboxRef);
1551
1594
  const runtimeError = useSandboxRuntimeErrorGuard(sandboxRef);
1552
1595
  useSandboxTheme(sandboxRef);
@@ -1567,7 +1610,19 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1567
1610
  const viewportMenuVisible = ref(false);
1568
1611
  const viewportLabel = computed(() => formatViewportLabel(props.viewport, t("playground.runtime.auto")));
1569
1612
  const desiredViewportHeight = computed(() => getViewportHeight(props.viewport) || runtimeHeight.value);
1570
- const previewStyle = computed(() => ({ height: `${desiredViewportHeight.value + 20}px` }));
1613
+ const normalizedPreviewInset = computed(() => {
1614
+ const value = props.previewInset;
1615
+ if (typeof value === "number") return Number.isFinite(value) && value >= 0 ? [value, value] : [10, 10];
1616
+ if (Array.isArray(value) && value.length === 2 && value.every((item) => typeof item === "number" && Number.isFinite(item) && item >= 0)) return [value[0], value[1]];
1617
+ return [10, 10];
1618
+ });
1619
+ const previewStyle = computed(() => {
1620
+ const [vertical, horizontal] = normalizedPreviewInset.value;
1621
+ return {
1622
+ height: `${desiredViewportHeight.value + vertical * 2}px`,
1623
+ padding: vertical === horizontal ? `${vertical}px` : `${vertical}px ${horizontal}px`
1624
+ };
1625
+ });
1571
1626
  const stylelessStyle = computed(() => errorText.value ? void 0 : { height: `${desiredViewportHeight.value}px` });
1572
1627
  const viewportStyle = computed(() => {
1573
1628
  const width = getViewportWidth(props.viewport);
@@ -1617,6 +1672,10 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1617
1672
  onActiveChange: (filename) => store.setActive(toReplFilename(filename))
1618
1673
  });
1619
1674
  };
1675
+ const handleRefresh = () => {
1676
+ runtimeError.value = "";
1677
+ sandboxKey.value++;
1678
+ };
1620
1679
  const handleView = (view) => emit("view-change", view);
1621
1680
  const handleViewport = (index) => {
1622
1681
  const viewport = props.viewportOptions[index];
@@ -1654,6 +1713,14 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1654
1713
  "preview-options": mergedPreviewOptions.value
1655
1714
  }, null, 8, ["store", "preview-options"])], 4)], 4)) : (openBlock(), createElementBlock("div", _hoisted_2, [
1656
1715
  createElementVNode("div", _hoisted_3, [createElementVNode("div", _hoisted_4, [
1716
+ createElementVNode("button", {
1717
+ type: "button",
1718
+ class: "docs-playground__tool docs-playground__refresh",
1719
+ "data-action": "refresh",
1720
+ title: unref(t)("playground.runtime.refresh"),
1721
+ "aria-label": unref(t)("playground.runtime.refresh"),
1722
+ onClick: handleRefresh
1723
+ }, [createVNode(unref(icon_default), { name: "refresh" })], 8, _hoisted_5),
1657
1724
  __props.viewportOptions.length > 1 ? (openBlock(), createBlock(unref(Dropdown), {
1658
1725
  key: 0,
1659
1726
  modelValue: viewportMenuVisible.value,
@@ -1696,7 +1763,7 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1696
1763
  "aria-label": unref(t)("playground.runtime.viewport", { value: viewportLabel.value }),
1697
1764
  "aria-expanded": viewportMenuVisible.value,
1698
1765
  "aria-haspopup": "menu"
1699
- }, [createVNode(unref(icon_default), { name: "viewport" })], 10, _hoisted_5)]),
1766
+ }, [createVNode(unref(icon_default), { name: "viewport" })], 10, _hoisted_6)]),
1700
1767
  _: 1
1701
1768
  }, 8, ["modelValue"])) : createCommentVNode("v-if", true),
1702
1769
  createVNode(unref(Clipboard), {
@@ -1721,8 +1788,8 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1721
1788
  title: unref(t)("playground.runtime.editFiles"),
1722
1789
  "aria-label": unref(t)("playground.runtime.editFiles"),
1723
1790
  onClick: handleEditor
1724
- }, [createVNode(unref(icon_default), { name: "editor" })], 8, _hoisted_6)
1725
- ]), __props.views.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_7, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.views, (item) => {
1791
+ }, [createVNode(unref(icon_default), { name: "editor" })], 8, _hoisted_7)
1792
+ ]), __props.views.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_8, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.views, (item) => {
1726
1793
  return openBlock(), createElementBlock("button", {
1727
1794
  key: item,
1728
1795
  type: "button",
@@ -1731,23 +1798,24 @@ var runtime_default = /* @__PURE__ */ defineComponent({
1731
1798
  "aria-label": getViewText(item),
1732
1799
  "aria-pressed": item === __props.activeView,
1733
1800
  onClick: ($event) => handleView(item)
1734
- }, [createVNode(unref(icon_default), { name: item }, null, 8, ["name"])], 10, _hoisted_8);
1801
+ }, [createVNode(unref(icon_default), { name: item }, null, 8, ["name"])], 10, _hoisted_9);
1735
1802
  }), 128))])) : createCommentVNode("v-if", true)]),
1736
- errorText.value ? (openBlock(), createElementBlock("pre", _hoisted_9, toDisplayString(errorText.value), 1)) : createCommentVNode("v-if", true),
1803
+ errorText.value ? (openBlock(), createElementBlock("pre", _hoisted_10, toDisplayString(errorText.value), 1)) : createCommentVNode("v-if", true),
1737
1804
  createElementVNode("section", {
1738
1805
  class: "docs-playground__preview",
1739
1806
  style: normalizeStyle(previewStyle.value)
1740
- }, [createElementVNode("div", _hoisted_10, [createElementVNode("div", {
1807
+ }, [createElementVNode("div", _hoisted_11, [createElementVNode("div", {
1741
1808
  class: "docs-playground-runtime__viewport",
1742
1809
  style: normalizeStyle(viewportStyle.value)
1743
- }, [createVNode(unref(Sandbox), {
1810
+ }, [(openBlock(), createBlock(unref(Sandbox), {
1811
+ key: sandboxKey.value,
1744
1812
  ref_key: "sandboxRef",
1745
1813
  ref: sandboxRef,
1746
1814
  store: unref(store),
1747
1815
  "auto-store-init": false,
1748
1816
  "clear-console": clearConsole,
1749
1817
  "preview-options": mergedPreviewOptions.value
1750
- }, null, 8, ["store", "preview-options"])], 4)])], 4)
1818
+ }, null, 8, ["store", "preview-options"]))], 4)])], 4)
1751
1819
  ]));
1752
1820
  };
1753
1821
  }
@@ -1774,6 +1842,7 @@ var playground_default = /* @__PURE__ */ defineComponent({
1774
1842
  default: false
1775
1843
  },
1776
1844
  options: { default: () => ({}) },
1845
+ previewInset: { default: 0 },
1777
1846
  previewOptions: {},
1778
1847
  locale: {}
1779
1848
  },
@@ -1906,6 +1975,7 @@ var playground_default = /* @__PURE__ */ defineComponent({
1906
1975
  entry: currentEntry.value,
1907
1976
  options: __props.options,
1908
1977
  "preview-options": __props.previewOptions,
1978
+ "preview-inset": __props.previewInset,
1909
1979
  styleless: true,
1910
1980
  viewport: activeViewport.value,
1911
1981
  "viewport-options": selectableViewportOptions.value,
@@ -1917,6 +1987,7 @@ var playground_default = /* @__PURE__ */ defineComponent({
1917
1987
  "entry",
1918
1988
  "options",
1919
1989
  "preview-options",
1990
+ "preview-inset",
1920
1991
  "viewport",
1921
1992
  "viewport-options"
1922
1993
  ])) : (openBlock(), createElementBlock("div", {
@@ -1930,6 +2001,7 @@ var playground_default = /* @__PURE__ */ defineComponent({
1930
2001
  entry: currentEntry.value,
1931
2002
  options: __props.options,
1932
2003
  "preview-options": __props.previewOptions,
2004
+ "preview-inset": __props.previewInset,
1933
2005
  "active-view": activeView.value,
1934
2006
  views: normalizedViews.value,
1935
2007
  viewport: activeViewport.value,
@@ -1943,6 +2015,7 @@ var playground_default = /* @__PURE__ */ defineComponent({
1943
2015
  "entry",
1944
2016
  "options",
1945
2017
  "preview-options",
2018
+ "preview-inset",
1946
2019
  "active-view",
1947
2020
  "views",
1948
2021
  "viewport",
@@ -1 +1 @@
1
- .docs-playground-icon{display:block;width:18px;height:18px}.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-background-color-soft,var(--vc-background-color,#f7f8fa));-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__toolbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-shadow:inset 0 -1px var(--docs-border-color,var(--vc-color-light-deeper,#dedede));box-shadow:inset 0 -1px var(--docs-border-color,var(--vc-color-light-deeper,#dedede));-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground-files__scroller{width:0;height:44px;min-width:0;overflow:hidden;background:var(--docs-background-color-soft,var(--vc-background-color,#f7f8fa));-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-files__scroller .vc-scroller__wrapper{height:44px;overflow-y:hidden!important;scrollbar-width:none}.docs-playground-files__scroller .vc-scroller__wrapper::-webkit-scrollbar{display:none}.docs-playground-files__scroller .vc-scroller-track.is-y{display:none!important}.docs-playground-files__tabs{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:44px;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:44px;padding:0 14px;font:inherit;font-size:15px;line-height:44px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#52525b));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:#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__actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:44px;background:var(--docs-background-color-soft,var(--vc-background-color,#f7f8fa));-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;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.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__views--files{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:44px;padding:0 12px;-webkit-box-sizing:border-box;box-sizing:border-box;gap:4px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__view{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:8px;-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__view.is-active{color:#fff;background:#2563eb}.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;width:680px;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)}.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}.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}.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;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1 1;-ms-flex:1 1;flex:1 1}.docs-playground-editor__scroller .vc-scroller__wrapper{scrollbar-width:none}.docs-playground-editor__scroller .vc-scroller__wrapper::-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{padding:5px 10px;color:var(--vc-color-error,#b91c1c);white-space:pre-wrap;background:var(--docs-error-background,#fef2f2)}.docs-playground-editor__editor{min-height:240px;padding:1px;background:var(--docs-code-background,var(--vc-background-color))!important}.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__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 12px;background:var(--docs-background-color-soft,var(--vc-background-color,#f7f8fa))!important;-webkit-box-shadow:inset 0 -1px var(--docs-border-color,var(--vc-color-light-deeper,#edeff1));box-shadow:inset 0 -1px var(--docs-border-color,var(--vc-color-light-deeper,#edeff1));-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground__views{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:4px}.docs-playground__view{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:8px;-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__view.is-active{color:var(--vc-color-light,#fff);background:#2563eb}.docs-playground__tools{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-right:4px;margin-left:auto;font-size:14px;line-height:20px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.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:8px;-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__tool.is-active,.docs-playground__tool:hover{color:#2563eb;background:var(--docs-primary-color-light,var(--vc-color-primary-lighter,#e8eef8))}.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:20px;height:20px}.docs-playground__viewport-options{min-width:136px}.docs-playground__viewport-option{white-space:nowrap}.docs-playground__editor .docs-playground-icon{width:22px;height:22px}.docs-playground__preview{min-height:0;padding:10px;overflow:hidden;background:var(--docs-background-color,var(--vc-background-color-light,#fff));-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}.docs-playground__runtime-error{max-height:240px;padding:12px 16px;margin:0;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-top:1px solid #f5c2c2;-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:#17233d;--docs-foreground-color-light:#515a6e;--docs-foreground-color-mute:#808695;--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-footer-background:#141313;--docs-footer-foreground:#999;--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:#d9d9d9;--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-footer-background:#0d0f14;--docs-footer-foreground:#999;--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:#17233d;--docs-foreground-color-light:#515a6e;--docs-foreground-color-mute:#808695;--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-footer-background:#141313;--docs-footer-foreground:#999;--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:#d9d9d9;--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-footer-background:#0d0f14;--docs-footer-foreground:#999;--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;border-radius:8px;-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}.docs-playground--files{height:100%;min-height:0;overflow:hidden;background:var(--docs-code-background,var(--vc-background-color,#f6f8fa));-webkit-box-shadow:none;box-shadow:none}.docs-playground__error{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;-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}/*$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{height:100%;max-height:100%;min-height:0;-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,.docs-playground-files__toolbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;background:var(--docs-background-color-soft,var(--vc-background-color,#f7f8fa))}.docs-playground-files__toolbar{border-bottom:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e5e7eb));-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground-files__scroller{width:0;height:44px;min-width:0;overflow:hidden;background:var(--docs-background-color-soft,var(--vc-background-color,#f7f8fa));-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-files__scroller .vc-scroller__wrapper{height:44px;overflow-y:hidden!important;scrollbar-width:none}.docs-playground-files__scroller .vc-scroller__wrapper::-webkit-scrollbar{display:none}.docs-playground-files__scroller .vc-scroller-track.is-y{display:none!important}.docs-playground-files__tabs{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:44px;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:44px;padding:0 14px;font:inherit;font-size:15px;line-height:44px;color:var(--docs-foreground-color-light,var(--vc-color-dark-lighter,#52525b));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__actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:44px;background:var(--docs-background-color-soft,var(--vc-background-color,#f7f8fa));-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;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.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__views--files{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:28px;padding:0 12px 0 8px;margin-left:4px;border-left:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e5e7eb));-webkit-box-sizing:border-box;box-sizing:border-box;gap:4px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.docs-playground__view{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:8px;-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;transition:color .15s ease,background-color .15s ease}.docs-playground__view .docs-playground-icon{width:18px;height:18px}.docs-playground__view:hover{color:var(--docs-primary-color,var(--vc-color-primary,#2563eb));background:var(--docs-primary-color-light,var(--vc-color-primary-lighter,#e8eef8))}.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-primary-color,var(--vc-color-primary,#2563eb));background:var(--docs-primary-color-light,var(--vc-color-primary-lighter,#e8eef8))}.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}.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}.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;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1 1;-ms-flex:1 1;flex:1 1}.docs-playground-editor__scroller .vc-scroller__wrapper{scrollbar-width:none}.docs-playground-editor__scroller .vc-scroller__wrapper::-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 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.docs-playground-editor__editor{min-height:240px;padding:1px;overflow:hidden;background:var(--docs-code-background,var(--vc-background-color))!important;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.docs-playground-editor__editor .cm-editor{height:100%}.docs-playground-editor__editor .cm-scroller{overflow:auto}.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%}.docs-playground .iframe-container iframe{display:block;border:0}.docs-playground__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:0 12px;background:var(--docs-background-color-soft,var(--vc-background-color,#f7f8fa))!important;border-bottom:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e5e7eb));-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex:0 0 44px;-ms-flex:0 0 44px;flex:0 0 44px}.docs-playground__views{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:8px;margin-left:4px;border-left:1px solid var(--docs-border-color,var(--vc-color-light-deeper,#e5e7eb));gap:4px}.docs-playground__view{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:8px;-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;transition:color .15s ease,background-color .15s ease}.docs-playground__view:hover{color:var(--docs-primary-color,var(--vc-color-primary,#2563eb));background:var(--docs-primary-color-light,var(--vc-color-primary-lighter,#e8eef8))}.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-primary-color,var(--vc-color-primary,#2563eb));background:var(--docs-primary-color-light,var(--vc-color-primary-lighter,#e8eef8))}.docs-playground__tools{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:auto;font-size:14px;line-height:20px;gap:2px;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.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:8px;-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;transition:color .15s ease,background-color .15s ease}.docs-playground__tool .docs-playground-icon{width:18px;height:18px}.docs-playground__tool:hover{color:var(--docs-primary-color,var(--vc-color-primary,#2563eb));background:var(--docs-primary-color-light,var(--vc-color-primary-lighter,#e8eef8))}.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-primary-color,var(--vc-color-primary,#2563eb));background:var(--docs-primary-color-light,var(--vc-color-primary-lighter,#e8eef8))}.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:18px;height:18px}.docs-playground__viewport-options{min-width:136px}.docs-playground__viewport-option{white-space:nowrap}.docs-playground__editor .docs-playground-icon{width:18px;height:18px}.docs-playground__preview{min-height:0;overflow:hidden;background:var(--docs-background-color,var(--vc-background-color-light,#fff));-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}.docs-playground__runtime-error{max-height:240px;padding:12px 16px;margin:0;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-top:1px solid #f5c2c2;-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:#17233d;--docs-foreground-color-light:#515a6e;--docs-foreground-color-mute:#808695;--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-footer-background:#141313;--docs-footer-foreground:#999;--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:#d9d9d9;--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-footer-background:#0d0f14;--docs-footer-foreground:#999;--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:#17233d;--docs-foreground-color-light:#515a6e;--docs-foreground-color-mute:#808695;--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-footer-background:#141313;--docs-footer-foreground:#999;--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:#d9d9d9;--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-footer-background:#0d0f14;--docs-footer-foreground:#999;--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:var(--docs-background-color,var(--vc-background-color-light,#fff));border-radius:8px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.02),0 3px 10px rgba(0,0,0,.03);box-shadow:0 1px 2px rgba(0,0,0,.02),0 3px 10px rgba(0,0,0,.03);-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}.docs-playground--files{height:100%;min-height:0;overflow:hidden;background:var(--docs-code-background,var(--vc-background-color,#f6f8fa))}.docs-playground__error{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;-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}/*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deot/docs-playground",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
@@ -18,7 +18,7 @@
18
18
  "access": "public"
19
19
  },
20
20
  "dependencies": {
21
- "@deot/docs-locale": "^1.0.6",
21
+ "@deot/docs-locale": "^1.0.7",
22
22
  "@deot/docs-theme": "^1.0.5",
23
23
  "@codemirror/lang-css": "^6.3.1",
24
24
  "@codemirror/lang-javascript": "^6.2.4",