vite-plugin-vue-devtools 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/client/assets/{IframeView.vue_vue_type_script_setup_true_lang-3a43e6ae.js → IframeView.vue_vue_type_script_setup_true_lang-fad49b28.js} +1 -1
  2. package/dist/client/assets/{StateFields.vue_vue_type_script_setup_true_lang-f9c67da8.js → StateFields.vue_vue_type_script_setup_true_lang-766dc2da.js} +4 -4
  3. package/dist/client/assets/{VIcon.vue_vue_type_script_setup_true_lang-b5034521.js → VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js} +1 -1
  4. package/dist/client/assets/{VIconButton.vue_vue_type_script_setup_true_lang-66a83f1a.js → VIconButton.vue_vue_type_script_setup_true_lang-1dfaade2.js} +3 -14
  5. package/dist/client/assets/{VIconTitle.vue_vue_type_script_setup_true_lang-276880a3.js → VIconTitle.vue_vue_type_script_setup_true_lang-3891436f.js} +1 -1
  6. package/dist/client/assets/{VPanelGrids-08531872.js → VPanelGrids-5c36b027.js} +1 -1
  7. package/dist/client/assets/{VSectionBlock-c9cecc8a.js → VSectionBlock-de05a5a5.js} +3 -3
  8. package/dist/client/assets/{VTextInput.vue_vue_type_script_setup_true_lang-96ef132c.js → VTextInput.vue_vue_type_script_setup_true_lang-1c3b455d.js} +2 -2
  9. package/dist/client/assets/{__eyedropper-dbdd9188.js → __eyedropper-8918265a.js} +2 -2
  10. package/dist/client/assets/{__inspecting-c3942849.js → __inspecting-9ed1189b.js} +2 -2
  11. package/dist/client/assets/{assets-dc890f94.js → assets-6e057331.js} +8 -9
  12. package/dist/client/assets/{component-docs-0d4eec65.js → component-docs-52802cb1.js} +5 -6
  13. package/dist/client/assets/{components-4bbb4d42.js → components-0083a223.js} +7 -8
  14. package/dist/client/assets/{documentations-0772e28d.js → documentations-1d60f0ff.js} +6 -7
  15. package/dist/client/assets/{graph-f04f0659.js → graph-97eb4fb0.js} +2 -2
  16. package/dist/client/assets/{index-f743edb2.js → index-0158f749.js} +1988 -403
  17. package/dist/client/assets/{index-4ea8507d.js → index-32549096.js} +1 -1
  18. package/dist/client/assets/index-5b7de771.css +472 -0
  19. package/dist/client/assets/{inspect-ef16c665.js → inspect-d5e39a6a.js} +3 -3
  20. package/dist/client/assets/{npm-8aa51398.js → npm-8ea47586.js} +6 -6
  21. package/dist/client/assets/{overview-d04e0943.js → overview-3bc4fc18.js} +5 -5
  22. package/dist/client/assets/{pages-c8759169.js → pages-e0bd078d.js} +5 -5
  23. package/dist/client/assets/{pinia-a1d3abba.js → pinia-0490bdb1.js} +6 -6
  24. package/dist/client/assets/{routes-b6e1361f.js → routes-b5c90320.js} +7 -8
  25. package/dist/client/assets/{rpc-901b9577.js → rpc-6610a4d4.js} +3 -3
  26. package/dist/client/assets/{settings-7dc3a0fa.js → settings-68a6aaae.js} +8 -7
  27. package/dist/client/assets/{splitpanes.es-cb929c19.js → splitpanes.es-398427c7.js} +1 -1
  28. package/dist/client/assets/{timeline-01c3c8d8.js → timeline-f8284402.js} +7 -8
  29. package/dist/client/index.html +2 -2
  30. package/dist/index.cjs +3 -3
  31. package/dist/index.mjs +3 -3
  32. package/package.json +3 -2
  33. package/src/node/Container.vue +78 -18
  34. package/dist/client/assets/VCard-8f584a44.js +0 -15
  35. package/dist/client/assets/index-76a3c684.css +0 -466
@@ -735,7 +735,7 @@ function has$1(target, key) {
735
735
  }
736
736
  return result;
737
737
  }
738
- function ownKeys(target) {
738
+ function ownKeys$1(target) {
739
739
  track(target, "iterate", isArray$1(target) ? "length" : ITERATE_KEY);
740
740
  return Reflect.ownKeys(target);
741
741
  }
@@ -744,7 +744,7 @@ const mutableHandlers = {
744
744
  set: set$1,
745
745
  deleteProperty,
746
746
  has: has$1,
747
- ownKeys
747
+ ownKeys: ownKeys$1
748
748
  };
749
749
  const readonlyHandlers = {
750
750
  get: readonlyGet,
@@ -8070,25 +8070,25 @@ const computePosition = (reference, floating, options) => computePosition$1(refe
8070
8070
 
8071
8071
  /* Injected with object hook! */
8072
8072
 
8073
- var __defProp = Object.defineProperty;
8074
- var __defProps = Object.defineProperties;
8075
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8076
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8077
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8078
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
8079
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8080
- var __spreadValues = (a, b) => {
8073
+ var __defProp$1 = Object.defineProperty;
8074
+ var __defProps$1 = Object.defineProperties;
8075
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
8076
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
8077
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
8078
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
8079
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8080
+ var __spreadValues$1 = (a, b) => {
8081
8081
  for (var prop in b || (b = {}))
8082
- if (__hasOwnProp.call(b, prop))
8083
- __defNormalProp(a, prop, b[prop]);
8084
- if (__getOwnPropSymbols)
8085
- for (var prop of __getOwnPropSymbols(b)) {
8086
- if (__propIsEnum.call(b, prop))
8087
- __defNormalProp(a, prop, b[prop]);
8082
+ if (__hasOwnProp$1.call(b, prop))
8083
+ __defNormalProp$1(a, prop, b[prop]);
8084
+ if (__getOwnPropSymbols$1)
8085
+ for (var prop of __getOwnPropSymbols$1(b)) {
8086
+ if (__propIsEnum$1.call(b, prop))
8087
+ __defNormalProp$1(a, prop, b[prop]);
8088
8088
  }
8089
8089
  return a;
8090
8090
  };
8091
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8091
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
8092
8092
  function assign$1(to, from) {
8093
8093
  for (const key in from) {
8094
8094
  if (Object.prototype.hasOwnProperty.call(from, key)) {
@@ -8489,7 +8489,7 @@ var PrivatePopper = () => defineComponent({
8489
8489
  hide: this.hide,
8490
8490
  handleResize: this.handleResize,
8491
8491
  onResize: this.onResize,
8492
- classes: __spreadProps(__spreadValues({}, this.classes), {
8492
+ classes: __spreadProps$1(__spreadValues$1({}, this.classes), {
8493
8493
  popperClass: this.popperClass
8494
8494
  }),
8495
8495
  result: this.positioningDisabled ? null : this.result,
@@ -8505,7 +8505,7 @@ var PrivatePopper = () => defineComponent({
8505
8505
  return ((_a = this.popperTriggers) == null ? void 0 : _a.includes("hover")) || ((_b = this.popperShowTriggers) == null ? void 0 : _b.includes("hover"));
8506
8506
  }
8507
8507
  },
8508
- watch: __spreadValues(__spreadValues({
8508
+ watch: __spreadValues$1(__spreadValues$1({
8509
8509
  shown: "$_autoShowHide",
8510
8510
  disabled(value) {
8511
8511
  if (value) {
@@ -8761,7 +8761,7 @@ var PrivatePopper = () => defineComponent({
8761
8761
  y: data.y,
8762
8762
  placement: data.placement,
8763
8763
  strategy: data.strategy,
8764
- arrow: __spreadValues(__spreadValues({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow)
8764
+ arrow: __spreadValues$1(__spreadValues$1({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow)
8765
8765
  });
8766
8766
  },
8767
8767
  $_scheduleShow(event = null, skipDelay = false) {
@@ -9349,11 +9349,11 @@ const _hoisted_2$1$1 = {
9349
9349
  ref: "inner",
9350
9350
  class: "v-popper__inner"
9351
9351
  };
9352
- const _hoisted_3$3 = /* @__PURE__ */ createBaseVNode("div", { class: "v-popper__arrow-outer" }, null, -1);
9353
- const _hoisted_4$4 = /* @__PURE__ */ createBaseVNode("div", { class: "v-popper__arrow-inner" }, null, -1);
9354
- const _hoisted_5$3 = [
9355
- _hoisted_3$3,
9356
- _hoisted_4$4
9352
+ const _hoisted_3$4 = /* @__PURE__ */ createBaseVNode("div", { class: "v-popper__arrow-outer" }, null, -1);
9353
+ const _hoisted_4$5 = /* @__PURE__ */ createBaseVNode("div", { class: "v-popper__arrow-inner" }, null, -1);
9354
+ const _hoisted_5$4 = [
9355
+ _hoisted_3$4,
9356
+ _hoisted_4$5
9357
9357
  ];
9358
9358
  function _sfc_render$2$1(_ctx, _cache, $props, $setup, $data, $options) {
9359
9359
  const _component_ResizeObserver = resolveComponent("ResizeObserver");
@@ -9412,7 +9412,7 @@ function _sfc_render$2$1(_ctx, _cache, $props, $setup, $data, $options) {
9412
9412
  left: _ctx.toPx(_ctx.result.arrow.x),
9413
9413
  top: _ctx.toPx(_ctx.result.arrow.y)
9414
9414
  } : void 0)
9415
- }, _hoisted_5$3, 4)
9415
+ }, _hoisted_5$4, 4)
9416
9416
  ], 4)
9417
9417
  ], 46, _hoisted_1$1$1);
9418
9418
  }
@@ -9518,19 +9518,19 @@ function _sfc_render$1$1(_ctx, _cache, $props, $setup, $data, $options) {
9518
9518
  }, 8, ["theme", "target-nodes", "popper-node", "class"]);
9519
9519
  }
9520
9520
  var PrivatePopperWrapper = /* @__PURE__ */ _export_sfc$1(_sfc_main$4$1, [["render", _sfc_render$1$1]]);
9521
- const _sfc_main$3$1 = defineComponent(__spreadProps(__spreadValues({}, PrivatePopperWrapper), {
9521
+ const _sfc_main$3$1 = defineComponent(__spreadProps$1(__spreadValues$1({}, PrivatePopperWrapper), {
9522
9522
  name: "VDropdown",
9523
9523
  vPopperTheme: "dropdown"
9524
9524
  }));
9525
- const _sfc_main$2$1 = defineComponent(__spreadProps(__spreadValues({}, PrivatePopperWrapper), {
9525
+ const _sfc_main$2$1 = defineComponent(__spreadProps$1(__spreadValues$1({}, PrivatePopperWrapper), {
9526
9526
  name: "VMenu",
9527
9527
  vPopperTheme: "menu"
9528
9528
  }));
9529
- const _sfc_main$1$1 = defineComponent(__spreadProps(__spreadValues({}, PrivatePopperWrapper), {
9529
+ const _sfc_main$1$1 = defineComponent(__spreadProps$1(__spreadValues$1({}, PrivatePopperWrapper), {
9530
9530
  name: "VTooltip",
9531
9531
  vPopperTheme: "tooltip"
9532
9532
  }));
9533
- const _sfc_main$c = defineComponent({
9533
+ const _sfc_main$e = defineComponent({
9534
9534
  name: "VTooltipDirective",
9535
9535
  components: {
9536
9536
  Popper: PrivatePopper(),
@@ -9621,7 +9621,7 @@ const _sfc_main$c = defineComponent({
9621
9621
  }
9622
9622
  }
9623
9623
  });
9624
- const _hoisted_1$8 = ["innerHTML"];
9624
+ const _hoisted_1$9 = ["innerHTML"];
9625
9625
  const _hoisted_2$7 = ["textContent"];
9626
9626
  function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
9627
9627
  const _component_PopperContent = resolveComponent("PopperContent");
@@ -9665,7 +9665,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
9665
9665
  _ctx.html ? (openBlock(), createElementBlock("div", {
9666
9666
  key: 0,
9667
9667
  innerHTML: _ctx.finalContent
9668
- }, null, 8, _hoisted_1$8)) : (openBlock(), createElementBlock("div", {
9668
+ }, null, 8, _hoisted_1$9)) : (openBlock(), createElementBlock("div", {
9669
9669
  key: 1,
9670
9670
  textContent: toDisplayString(_ctx.finalContent)
9671
9671
  }, null, 8, _hoisted_2$7))
@@ -9676,7 +9676,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
9676
9676
  _: 1
9677
9677
  }, 16, ["theme", "popper-node", "onApplyShow", "onApplyHide"]);
9678
9678
  }
9679
- var PrivateTooltipDirective = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["render", _sfc_render$4]]);
9679
+ var PrivateTooltipDirective = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["render", _sfc_render$4]]);
9680
9680
  const TARGET_CLASS = "v-popper--has-tooltip";
9681
9681
  function getPlacement(options2, modifiers) {
9682
9682
  let result = options2.placement;
@@ -9723,7 +9723,7 @@ function ensureDirectiveApp() {
9723
9723
  },
9724
9724
  render() {
9725
9725
  return this.directives.map((directive) => {
9726
- return h(PrivateTooltipDirective, __spreadProps(__spreadValues({}, directive.options), {
9726
+ return h(PrivateTooltipDirective, __spreadProps$1(__spreadValues$1({}, directive.options), {
9727
9727
  shown: directive.shown || directive.options.shown,
9728
9728
  key: directive.id
9729
9729
  }));
@@ -12329,7 +12329,7 @@ function useRoute() {
12329
12329
 
12330
12330
  /* Injected with object hook! */
12331
12331
 
12332
- const scriptRel = 'modulepreload';const assetsURL = function(dep, importerUrl) { return new URL(dep, importerUrl).href };const seen = {};const __vitePreload = function preload(baseModule, deps, importerUrl) {
12332
+ const scriptRel = 'modulepreload';const assetsURL = function(dep) { return "/__devtools__/"+dep };const seen = {};const __vitePreload = function preload(baseModule, deps, importerUrl) {
12333
12333
  // @ts-expect-error true will be replaced with boolean later
12334
12334
  if (!true || !deps || deps.length === 0) {
12335
12335
  return baseModule();
@@ -12337,7 +12337,7 @@ const scriptRel = 'modulepreload';const assetsURL = function(dep, importerUrl) {
12337
12337
  const links = document.getElementsByTagName('link');
12338
12338
  return Promise.all(deps.map((dep) => {
12339
12339
  // @ts-expect-error assetsURL is declared before preload.toString()
12340
- dep = assetsURL(dep, importerUrl);
12340
+ dep = assetsURL(dep);
12341
12341
  if (dep in seen)
12342
12342
  return;
12343
12343
  seen[dep] = true;
@@ -12378,7 +12378,7 @@ const scriptRel = 'modulepreload';const assetsURL = function(dep, importerUrl) {
12378
12378
  };
12379
12379
  /* Injected with object hook! */
12380
12380
 
12381
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
12381
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
12382
12382
  __name: "VButton",
12383
12383
  props: {
12384
12384
  to: {},
@@ -12414,37 +12414,37 @@ const _export_sfc = (sfc, props) => {
12414
12414
 
12415
12415
  /* Injected with object hook! */
12416
12416
 
12417
- /* unplugin-vue-components disabled */const _sfc_main$a = {};
12417
+ /* unplugin-vue-components disabled */const _sfc_main$c = {};
12418
12418
 
12419
- const _hoisted_1$7 = { class: "mx-0.5 select-none whitespace-nowrap rounded px-1.5 py-0.5 text-xs" };
12419
+ const _hoisted_1$8 = { class: "mx-0.5 select-none whitespace-nowrap rounded px-1.5 py-0.5 text-xs" };
12420
12420
 
12421
12421
  function _sfc_render$2(_ctx, _cache) {
12422
- return (openBlock(), createElementBlock("span", _hoisted_1$7, [
12422
+ return (openBlock(), createElementBlock("span", _hoisted_1$8, [
12423
12423
  renderSlot(_ctx.$slots, "default")
12424
12424
  ]))
12425
12425
  }
12426
- const __unplugin_components_1 = /*#__PURE__*/_export_sfc(_sfc_main$a, [['render',_sfc_render$2]]);
12426
+ const __unplugin_components_1 = /*#__PURE__*/_export_sfc(_sfc_main$c, [['render',_sfc_render$2]]);
12427
12427
  /* Injected with object hook! */
12428
12428
 
12429
- /* unplugin-vue-components disabled */const _sfc_main$9 = {};
12429
+ /* unplugin-vue-components disabled */const _sfc_main$b = {};
12430
12430
 
12431
- const _hoisted_1$6 = {
12431
+ const _hoisted_1$7 = {
12432
12432
  viewBox: "0 0 566 154",
12433
12433
  fill: "none",
12434
12434
  xmlns: "http://www.w3.org/2000/svg"
12435
12435
  };
12436
12436
  const _hoisted_2$6 = /*#__PURE__*/createStaticVNode("<svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 198\" width=\"128\" height=\"128\"><path fill=\"#41B883\" d=\"M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z\"></path><path fill=\"#41B883\" d=\"m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z\"></path><path fill=\"#35495E\" d=\"M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z\"></path></svg><path d=\"M152.571 118V46.1333H176.8C183.576 46.1333 189.77 47.468 195.383 50.1373C200.995 52.8067 205.478 56.8449 208.832 62.252C212.186 67.5907 213.863 74.1956 213.863 82.0667C213.863 89.8693 212.186 96.4742 208.832 101.881C205.478 107.288 200.995 111.327 195.383 113.996C189.77 116.665 183.576 118 176.8 118H152.571ZM175.157 104.653C181.796 104.653 187.306 102.874 191.687 99.3147C196.067 95.6871 198.257 89.9378 198.257 82.0667C198.257 74.1956 196.067 68.4462 191.687 64.8187C187.306 61.1911 181.796 59.3773 175.157 59.3773H167.971V104.653H175.157ZM270.18 100.444C269.153 105.988 266.381 110.437 261.864 113.791C257.347 117.144 251.905 118.821 245.54 118.821C239.928 118.821 235.102 117.555 231.064 115.023C227.094 112.422 224.083 109.068 222.029 104.961C219.976 100.855 218.949 96.5427 218.949 92.0253C218.949 87.4396 219.873 83.1276 221.721 79.0893C223.638 75.0511 226.513 71.7658 230.345 69.2333C234.247 66.7009 238.969 65.4347 244.513 65.4347C250.263 65.4347 255.054 66.6667 258.887 69.1307C262.72 71.5947 265.526 74.7431 267.305 78.576C269.153 82.4089 270.077 86.4471 270.077 90.6907C270.077 92.2649 270.009 93.8049 269.872 95.3107H232.707C233.254 99.0067 234.623 101.916 236.813 104.037C239.072 106.091 241.981 107.117 245.54 107.117C248.415 107.117 250.776 106.57 252.624 105.475C254.472 104.311 255.67 102.634 256.217 100.444H270.18ZM244.513 75.9067C241.228 75.9067 238.627 76.7622 236.711 78.4733C234.794 80.116 233.528 82.7169 232.912 86.276H255.807C255.601 83.2644 254.506 80.8004 252.521 78.884C250.537 76.8991 247.867 75.9067 244.513 75.9067ZM302.77 118H289.629L270.738 66.256H285.317L296.2 99.7253L306.98 66.256H321.661L302.77 118ZM359.731 118H344.331V59.3773H323.079V46.1333H380.983V59.3773H359.731V118ZM402.364 118.821C397.163 118.821 392.474 117.692 388.299 115.433C384.124 113.106 380.873 109.924 378.546 105.885C376.219 101.779 375.055 97.1929 375.055 92.128C375.055 87.0631 376.219 82.5116 378.546 78.4733C380.873 74.3667 384.124 71.184 388.299 68.9253C392.474 66.5982 397.163 65.4347 402.364 65.4347C407.566 65.4347 412.255 66.5982 416.43 68.9253C420.605 71.184 423.856 74.3667 426.183 78.4733C428.51 82.5116 429.674 87.0631 429.674 92.128C429.674 97.1929 428.51 101.779 426.183 105.885C423.856 109.924 420.605 113.106 416.43 115.433C412.255 117.692 407.566 118.821 402.364 118.821ZM402.364 106.501C406.197 106.501 409.311 105.167 411.707 102.497C414.103 99.828 415.3 96.3716 415.3 92.128C415.3 87.816 414.103 84.3253 411.707 81.656C409.311 78.9867 406.197 77.652 402.364 77.652C398.531 77.652 395.417 78.9867 393.022 81.656C390.626 84.3253 389.428 87.816 389.428 92.128C389.428 96.3716 390.626 99.828 393.022 102.497C395.417 105.167 398.531 106.501 402.364 106.501ZM462.12 118.821C456.918 118.821 452.229 117.692 448.054 115.433C443.879 113.106 440.628 109.924 438.301 105.885C435.974 101.779 434.81 97.1929 434.81 92.128C434.81 87.0631 435.974 82.5116 438.301 78.4733C440.628 74.3667 443.879 71.184 448.054 68.9253C452.229 66.5982 456.918 65.4347 462.12 65.4347C467.321 65.4347 472.01 66.5982 476.185 68.9253C480.36 71.184 483.611 74.3667 485.938 78.4733C488.265 82.5116 489.429 87.0631 489.429 92.128C489.429 97.1929 488.265 101.779 485.938 105.885C483.611 109.924 480.36 113.106 476.185 115.433C472.01 117.692 467.321 118.821 462.12 118.821ZM462.12 106.501C465.952 106.501 469.067 105.167 471.462 102.497C473.858 99.828 475.056 96.3716 475.056 92.128C475.056 87.816 473.858 84.3253 471.462 81.656C469.067 78.9867 465.952 77.652 462.12 77.652C458.287 77.652 455.172 78.9867 452.777 81.656C450.381 84.3253 449.184 87.816 449.184 92.128C449.184 96.3716 450.381 99.828 452.777 102.497C455.172 105.167 458.287 106.501 462.12 106.501ZM512.327 118H498.056V43.772H512.327V118ZM542.494 118.821C536.129 118.821 530.961 117.179 526.991 113.893C523.09 110.54 521.002 106.091 520.729 100.547H533.049C533.322 102.874 534.281 104.722 535.923 106.091C537.634 107.391 539.825 108.041 542.494 108.041C544.684 108.041 546.464 107.562 547.833 106.604C549.27 105.646 549.989 104.448 549.989 103.011C549.989 101.094 549.167 99.7596 547.525 99.0067C545.882 98.2538 543.281 97.5693 539.722 96.9533C536.026 96.2689 533.014 95.516 530.687 94.6947C528.36 93.8733 526.341 92.4018 524.63 90.28C522.987 88.0898 522.166 85.0098 522.166 81.04C522.166 78.0284 522.953 75.3591 524.527 73.032C526.17 70.6364 528.394 68.7884 531.201 67.488C534.007 66.1191 537.155 65.4347 540.646 65.4347C546.874 65.4347 551.905 66.9747 555.738 70.0547C559.639 73.1347 561.727 77.2071 562.001 82.272H549.578C549.304 80.1502 548.312 78.5076 546.601 77.344C544.958 76.112 543.11 75.496 541.057 75.496C539.003 75.496 537.361 75.9409 536.129 76.8307C534.897 77.7204 534.281 78.9524 534.281 80.5267C534.281 82.4431 535.068 83.7436 536.642 84.428C538.285 85.044 540.851 85.5916 544.342 86.0707C548.106 86.6182 551.186 87.3027 553.582 88.124C556.046 88.8769 558.168 90.3827 559.947 92.6413C561.727 94.9 562.617 98.1853 562.617 102.497C562.617 107.425 560.769 111.395 557.073 114.407C553.445 117.35 548.585 118.821 542.494 118.821Z\" fill=\"currentColor\"></path>", 2);
12437
- const _hoisted_4$3 = [
12437
+ const _hoisted_4$4 = [
12438
12438
  _hoisted_2$6
12439
12439
  ];
12440
12440
 
12441
12441
  function _sfc_render$1(_ctx, _cache) {
12442
- return (openBlock(), createElementBlock("svg", _hoisted_1$6, _hoisted_4$3))
12442
+ return (openBlock(), createElementBlock("svg", _hoisted_1$7, _hoisted_4$4))
12443
12443
  }
12444
- const __unplugin_components_0$1 = /*#__PURE__*/_export_sfc(_sfc_main$9, [['render',_sfc_render$1]]);
12444
+ const __unplugin_components_0 = /*#__PURE__*/_export_sfc(_sfc_main$b, [['render',_sfc_render$1]]);
12445
12445
  /* Injected with object hook! */
12446
12446
 
12447
- function tryOnScopeDispose(fn) {
12447
+ function tryOnScopeDispose$1(fn) {
12448
12448
  if (getCurrentScope()) {
12449
12449
  onScopeDispose(fn);
12450
12450
  return true;
@@ -12452,7 +12452,7 @@ function tryOnScopeDispose(fn) {
12452
12452
  return false;
12453
12453
  }
12454
12454
 
12455
- function toValue(r) {
12455
+ function toValue$1(r) {
12456
12456
  return typeof r === "function" ? r() : unref(r);
12457
12457
  }
12458
12458
 
@@ -12497,7 +12497,7 @@ function reactiveOmit(obj, ...keys) {
12497
12497
  const flatKeys = keys.flat();
12498
12498
  const predicate = flatKeys[0];
12499
12499
  return reactiveComputed(
12500
- () => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0])))
12500
+ () => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue$1(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0])))
12501
12501
  );
12502
12502
  }
12503
12503
 
@@ -12532,8 +12532,8 @@ function debounceFilter(ms, options = {}) {
12532
12532
  lastRejector = noop;
12533
12533
  };
12534
12534
  const filter = (invoke) => {
12535
- const duration = toValue(ms);
12536
- const maxDuration = toValue(options.maxWait);
12535
+ const duration = toValue$1(ms);
12536
+ const maxDuration = toValue$1(options.maxWait);
12537
12537
  if (timer)
12538
12538
  _clearTimeout(timer);
12539
12539
  if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
@@ -12578,7 +12578,7 @@ function throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = fa
12578
12578
  }
12579
12579
  };
12580
12580
  const filter = (_invoke) => {
12581
- const duration = toValue(ms);
12581
+ const duration = toValue$1(ms);
12582
12582
  const elapsed = Date.now() - lastExec;
12583
12583
  const invoke = () => {
12584
12584
  return lastValue = _invoke();
@@ -12716,7 +12716,7 @@ function useIntervalFn(cb, interval = 1e3, options = {}) {
12716
12716
  clean();
12717
12717
  }
12718
12718
  function resume() {
12719
- const intervalValue = toValue(interval);
12719
+ const intervalValue = toValue$1(interval);
12720
12720
  if (intervalValue <= 0)
12721
12721
  return;
12722
12722
  isActive.value = true;
@@ -12732,9 +12732,9 @@ function useIntervalFn(cb, interval = 1e3, options = {}) {
12732
12732
  if (isActive.value && isClient)
12733
12733
  resume();
12734
12734
  });
12735
- tryOnScopeDispose(stopWatch);
12735
+ tryOnScopeDispose$1(stopWatch);
12736
12736
  }
12737
- tryOnScopeDispose(pause);
12737
+ tryOnScopeDispose$1(pause);
12738
12738
  return {
12739
12739
  isActive,
12740
12740
  pause,
@@ -12765,14 +12765,14 @@ function useTimeoutFn(cb, interval, options = {}) {
12765
12765
  isPending.value = false;
12766
12766
  timer = null;
12767
12767
  cb(...args);
12768
- }, toValue(interval));
12768
+ }, toValue$1(interval));
12769
12769
  }
12770
12770
  if (immediate) {
12771
12771
  isPending.value = true;
12772
12772
  if (isClient)
12773
12773
  start();
12774
12774
  }
12775
- tryOnScopeDispose(stop);
12775
+ tryOnScopeDispose$1(stop);
12776
12776
  return {
12777
12777
  isPending: readonly(isPending),
12778
12778
  start,
@@ -12830,7 +12830,7 @@ var __spreadValues$2$1 = (a, b) => {
12830
12830
  return a;
12831
12831
  };
12832
12832
  var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
12833
- var __objRest$1 = (source, exclude) => {
12833
+ var __objRest$1$1 = (source, exclude) => {
12834
12834
  var target = {};
12835
12835
  for (var prop in source)
12836
12836
  if (__hasOwnProp$2$1.call(source, prop) && exclude.indexOf(prop) < 0)
@@ -12845,7 +12845,7 @@ var __objRest$1 = (source, exclude) => {
12845
12845
  function watchPausable(source, cb, options = {}) {
12846
12846
  const _a = options, {
12847
12847
  eventFilter: filter
12848
- } = _a, watchOptions = __objRest$1(_a, [
12848
+ } = _a, watchOptions = __objRest$1$1(_a, [
12849
12849
  "eventFilter"
12850
12850
  ]);
12851
12851
  const { eventFilter, pause, resume, isActive } = pausableFilter(filter);
@@ -12919,9 +12919,9 @@ function computedAsync(evaluationCallback, initialState, optionsOrRef) {
12919
12919
  }
12920
12920
  }
12921
12921
 
12922
- function unrefElement(elRef) {
12922
+ function unrefElement$1(elRef) {
12923
12923
  var _a;
12924
- const plain = toValue(elRef);
12924
+ const plain = toValue$1(elRef);
12925
12925
  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
12926
12926
  }
12927
12927
 
@@ -12956,7 +12956,7 @@ function useEventListener(...args) {
12956
12956
  return () => el.removeEventListener(event, listener, options2);
12957
12957
  };
12958
12958
  const stopWatch = watch(
12959
- () => [unrefElement(target), toValue(options)],
12959
+ () => [unrefElement$1(target), toValue$1(options)],
12960
12960
  ([el, options2]) => {
12961
12961
  cleanup();
12962
12962
  if (!el)
@@ -12973,7 +12973,7 @@ function useEventListener(...args) {
12973
12973
  stopWatch();
12974
12974
  cleanup();
12975
12975
  };
12976
- tryOnScopeDispose(stop);
12976
+ tryOnScopeDispose$1(stop);
12977
12977
  return stop;
12978
12978
  }
12979
12979
 
@@ -12992,13 +12992,13 @@ function onClickOutside(target, handler, options = {}) {
12992
12992
  if (typeof target2 === "string") {
12993
12993
  return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));
12994
12994
  } else {
12995
- const el = unrefElement(target2);
12995
+ const el = unrefElement$1(target2);
12996
12996
  return el && (event.target === el || event.composedPath().includes(el));
12997
12997
  }
12998
12998
  });
12999
12999
  };
13000
13000
  const listener = (event) => {
13001
- const el = unrefElement(target);
13001
+ const el = unrefElement$1(target);
13002
13002
  if (!el || el === event.target || event.composedPath().includes(el))
13003
13003
  return;
13004
13004
  if (event.detail === 0)
@@ -13012,13 +13012,13 @@ function onClickOutside(target, handler, options = {}) {
13012
13012
  const cleanup = [
13013
13013
  useEventListener(window, "click", listener, { passive: true, capture }),
13014
13014
  useEventListener(window, "pointerdown", (e) => {
13015
- const el = unrefElement(target);
13015
+ const el = unrefElement$1(target);
13016
13016
  if (el)
13017
13017
  shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);
13018
13018
  }, { passive: true }),
13019
13019
  detectIframe && useEventListener(window, "blur", (event) => {
13020
13020
  var _a;
13021
- const el = unrefElement(target);
13021
+ const el = unrefElement$1(target);
13022
13022
  if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement)))
13023
13023
  handler(event);
13024
13024
  })
@@ -13084,7 +13084,7 @@ function onKeyStroke(...args) {
13084
13084
  } = options;
13085
13085
  const predicate = createKeyPredicate(key);
13086
13086
  const listener = (e) => {
13087
- if (e.repeat && toValue(dedupe))
13087
+ if (e.repeat && toValue$1(dedupe))
13088
13088
  return;
13089
13089
  if (predicate(e))
13090
13090
  handler(e);
@@ -13144,7 +13144,7 @@ function useRafFn(fn, options = {}) {
13144
13144
  }
13145
13145
  if (immediate)
13146
13146
  resume();
13147
- tryOnScopeDispose(pause);
13147
+ tryOnScopeDispose$1(pause);
13148
13148
  return {
13149
13149
  isActive: readonly(isActive),
13150
13150
  pause,
@@ -13179,7 +13179,7 @@ function useMediaQuery(query, options = {}) {
13179
13179
  mediaQuery.addListener(update);
13180
13180
  };
13181
13181
  watchEffect(update);
13182
- tryOnScopeDispose(() => cleanup());
13182
+ tryOnScopeDispose$1(() => cleanup());
13183
13183
  return matches;
13184
13184
  }
13185
13185
 
@@ -13210,7 +13210,7 @@ function useClipboard(options = {}) {
13210
13210
  for (const event of events)
13211
13211
  useEventListener(event, updateText);
13212
13212
  }
13213
- async function copy(value = toValue(source)) {
13213
+ async function copy(value = toValue$1(source)) {
13214
13214
  if (isSupported.value && value != null) {
13215
13215
  if (isClipboardApiSupported.value)
13216
13216
  await navigator.clipboard.writeText(value);
@@ -13341,7 +13341,7 @@ function useStorage(key, defaults, storage, options = {}) {
13341
13341
  }
13342
13342
  if (!storage)
13343
13343
  return data;
13344
- const rawInit = toValue(defaults);
13344
+ const rawInit = toValue$1(defaults);
13345
13345
  const type = guessSerializerType(rawInit);
13346
13346
  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];
13347
13347
  const { pause: pauseWatch, resume: resumeWatch } = watchPausable(
@@ -13472,7 +13472,7 @@ function useColorMode(options = {}) {
13472
13472
  const updateHTMLAttrs = getSSRHandler(
13473
13473
  "updateHTMLAttrs",
13474
13474
  (selector2, attribute2, value) => {
13475
- const el = typeof selector2 === "string" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);
13475
+ const el = typeof selector2 === "string" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement$1(selector2);
13476
13476
  if (!el)
13477
13477
  return;
13478
13478
  let style;
@@ -13603,7 +13603,7 @@ function useResizeObserver(target, callback, options = {}) {
13603
13603
  }
13604
13604
  };
13605
13605
  const targets = computed(
13606
- () => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]
13606
+ () => Array.isArray(target) ? target.map((el) => unrefElement$1(el)) : [unrefElement$1(target)]
13607
13607
  );
13608
13608
  const stopWatch = watch(
13609
13609
  targets,
@@ -13621,7 +13621,7 @@ function useResizeObserver(target, callback, options = {}) {
13621
13621
  cleanup();
13622
13622
  stopWatch();
13623
13623
  };
13624
- tryOnScopeDispose(stop);
13624
+ tryOnScopeDispose$1(stop);
13625
13625
  return {
13626
13626
  isSupported,
13627
13627
  stop
@@ -13644,7 +13644,7 @@ function useElementBounding(target, options = {}) {
13644
13644
  const x = ref(0);
13645
13645
  const y = ref(0);
13646
13646
  function update() {
13647
- const el = unrefElement(target);
13647
+ const el = unrefElement$1(target);
13648
13648
  if (!el) {
13649
13649
  if (reset) {
13650
13650
  height.value = 0;
@@ -13669,7 +13669,7 @@ function useElementBounding(target, options = {}) {
13669
13669
  y.value = rect.y;
13670
13670
  }
13671
13671
  useResizeObserver(target, update);
13672
- watch(() => unrefElement(target), (ele) => !ele && update());
13672
+ watch(() => unrefElement$1(target), (ele) => !ele && update());
13673
13673
  if (windowScroll)
13674
13674
  useEventListener("scroll", update, { capture: true, passive: true });
13675
13675
  if (windowResize)
@@ -13695,7 +13695,7 @@ function useElementSize(target, initialSize = { width: 0, height: 0 }, options =
13695
13695
  const { window = defaultWindow, box = "content-box" } = options;
13696
13696
  const isSVG = computed(() => {
13697
13697
  var _a, _b;
13698
- return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg");
13698
+ return (_b = (_a = unrefElement$1(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg");
13699
13699
  });
13700
13700
  const width = ref(initialSize.width);
13701
13701
  const height = ref(initialSize.height);
@@ -13704,7 +13704,7 @@ function useElementSize(target, initialSize = { width: 0, height: 0 }, options =
13704
13704
  ([entry]) => {
13705
13705
  const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;
13706
13706
  if (window && isSVG.value) {
13707
- const $elem = unrefElement(target);
13707
+ const $elem = unrefElement$1(target);
13708
13708
  if ($elem) {
13709
13709
  const styles = window.getComputedStyle($elem);
13710
13710
  width.value = parseFloat(styles.width);
@@ -13724,7 +13724,7 @@ function useElementSize(target, initialSize = { width: 0, height: 0 }, options =
13724
13724
  options
13725
13725
  );
13726
13726
  watch(
13727
- () => unrefElement(target),
13727
+ () => unrefElement$1(target),
13728
13728
  (ele) => {
13729
13729
  width.value = ele ? initialSize.width : 0;
13730
13730
  height.value = ele ? initialSize.height : 0;
@@ -13775,13 +13775,13 @@ function useScroll(element, options = {}) {
13775
13775
  });
13776
13776
  function scrollTo(_x, _y) {
13777
13777
  var _a, _b, _c;
13778
- const _element = toValue(element);
13778
+ const _element = toValue$1(element);
13779
13779
  if (!_element)
13780
13780
  return;
13781
13781
  (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({
13782
- top: (_a = toValue(_y)) != null ? _a : y.value,
13783
- left: (_b = toValue(_x)) != null ? _b : x.value,
13784
- behavior: toValue(behavior)
13782
+ top: (_a = toValue$1(_y)) != null ? _a : y.value,
13783
+ left: (_b = toValue$1(_x)) != null ? _b : x.value,
13784
+ behavior: toValue$1(behavior)
13785
13785
  });
13786
13786
  }
13787
13787
  const isScrolling = ref(false);
@@ -13866,7 +13866,7 @@ function useScroll(element, options = {}) {
13866
13866
  arrivedState,
13867
13867
  directions,
13868
13868
  measure() {
13869
- const _element = toValue(element);
13869
+ const _element = toValue$1(element);
13870
13870
  if (_element)
13871
13871
  setArrivedState(_element);
13872
13872
  }
@@ -13910,7 +13910,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
13910
13910
  const isLoading = computed(() => !!promise.value);
13911
13911
  function checkAndLoad() {
13912
13912
  state.measure();
13913
- const el = toValue(element);
13913
+ const el = toValue$1(element);
13914
13914
  if (!el)
13915
13915
  return;
13916
13916
  const isNarrower = direction === "bottom" || direction === "top" ? el.scrollHeight <= el.clientHeight : el.scrollWidth <= el.clientWidth;
@@ -13927,7 +13927,7 @@ function useInfiniteScroll(element, onLoadMore, options = {}) {
13927
13927
  }
13928
13928
  }
13929
13929
  watch(
13930
- () => [state.arrivedState[direction], toValue(element)],
13930
+ () => [state.arrivedState[direction], toValue$1(element)],
13931
13931
  checkAndLoad,
13932
13932
  { immediate: true }
13933
13933
  );
@@ -14011,7 +14011,7 @@ function useScrollLock(element, initialState = false) {
14011
14011
  immediate: true
14012
14012
  });
14013
14013
  const lock = () => {
14014
- const ele = toValue(element);
14014
+ const ele = toValue$1(element);
14015
14015
  if (!ele || isLocked.value)
14016
14016
  return;
14017
14017
  if (isIOS) {
@@ -14028,14 +14028,14 @@ function useScrollLock(element, initialState = false) {
14028
14028
  isLocked.value = true;
14029
14029
  };
14030
14030
  const unlock = () => {
14031
- const ele = toValue(element);
14031
+ const ele = toValue$1(element);
14032
14032
  if (!ele || !isLocked.value)
14033
14033
  return;
14034
14034
  isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());
14035
14035
  ele.style.overflow = initialOverflow;
14036
14036
  isLocked.value = false;
14037
14037
  };
14038
- tryOnScopeDispose(unlock);
14038
+ tryOnScopeDispose$1(unlock);
14039
14039
  return computed({
14040
14040
  get() {
14041
14041
  return isLocked.value;
@@ -14093,7 +14093,7 @@ function useStyleTag(css, options = {}) {
14093
14093
  if (immediate && !manual)
14094
14094
  tryOnMounted(load);
14095
14095
  if (!manual)
14096
- tryOnScopeDispose(unload);
14096
+ tryOnScopeDispose$1(unload);
14097
14097
  return {
14098
14098
  id,
14099
14099
  css: cssRef,
@@ -14119,7 +14119,7 @@ var __spreadValues$2 = (a, b) => {
14119
14119
  }
14120
14120
  return a;
14121
14121
  };
14122
- var __objRest = (source, exclude) => {
14122
+ var __objRest$1 = (source, exclude) => {
14123
14123
  var target = {};
14124
14124
  for (var prop in source)
14125
14125
  if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
@@ -14161,8 +14161,8 @@ function useTimeAgo(time, options = {}) {
14161
14161
  controls: exposeControls = false,
14162
14162
  updateInterval = 3e4
14163
14163
  } = options;
14164
- const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, ["now"]);
14165
- const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now.value)));
14164
+ const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest$1(_a, ["now"]);
14165
+ const timeAgo = computed(() => formatTimeAgo(new Date(toValue$1(time)), options, toValue$1(now.value)));
14166
14166
  if (exposeControls) {
14167
14167
  return __spreadValues$2({
14168
14168
  timeAgo
@@ -14290,7 +14290,7 @@ function useFrameState() {
14290
14290
 
14291
14291
  /* Injected with object hook! */
14292
14292
 
14293
- const _hoisted_1$5 = {
14293
+ const _hoisted_1$6 = {
14294
14294
  flex: "~ col gap4",
14295
14295
  mxa: "",
14296
14296
  "h-screen": "",
@@ -14304,16 +14304,16 @@ const _hoisted_2$5 = {
14304
14304
  "items-center": "",
14305
14305
  "justify-center": ""
14306
14306
  };
14307
- const _hoisted_3$2 = /* @__PURE__ */ createBaseVNode("p", {
14307
+ const _hoisted_3$3 = /* @__PURE__ */ createBaseVNode("p", {
14308
14308
  my2: "",
14309
14309
  "text-xl": "",
14310
14310
  "font-bold": ""
14311
14311
  }, " 👋 Welcome trying the preview of Vue DevTools! ", -1);
14312
- const _hoisted_4$2 = /* @__PURE__ */ createBaseVNode("p", { "text-lg": "" }, [
14312
+ const _hoisted_4$3 = /* @__PURE__ */ createBaseVNode("p", { "text-lg": "" }, [
14313
14313
  /* @__PURE__ */ createBaseVNode("b", { "font-bold": "" }, "Vue DevTools"),
14314
14314
  /* @__PURE__ */ createTextVNode(" is a set of visual tools that help you to know your app/site better, and enhance your development experience with Vue. ")
14315
14315
  ], -1);
14316
- const _hoisted_5$2 = /* @__PURE__ */ createBaseVNode("p", { "text-lg": "" }, [
14316
+ const _hoisted_5$3 = /* @__PURE__ */ createBaseVNode("p", { "text-lg": "" }, [
14317
14317
  /* @__PURE__ */ createTextVNode(" Be aware that "),
14318
14318
  /* @__PURE__ */ createBaseVNode("span", {
14319
14319
  rounded: "",
@@ -14333,7 +14333,7 @@ const _hoisted_5$2 = /* @__PURE__ */ createBaseVNode("p", { "text-lg": "" }, [
14333
14333
  /* @__PURE__ */ createTextVNode(" if you find any bugs or have any suggestions. Thank you and have fun! ")
14334
14334
  ], -1);
14335
14335
  const _hoisted_6$1 = /* @__PURE__ */ createBaseVNode("span", null, "Get Started", -1);
14336
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14336
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
14337
14337
  __name: "index",
14338
14338
  setup(__props) {
14339
14339
  const { isFirstVisit } = useFrameState();
@@ -14343,10 +14343,10 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14343
14343
  router.replace("/overview");
14344
14344
  }
14345
14345
  return (_ctx, _cache) => {
14346
- const _component_Logo = __unplugin_components_0$1;
14346
+ const _component_Logo = __unplugin_components_0;
14347
14347
  const _component_VBadge = __unplugin_components_1;
14348
- const _component_VButton = _sfc_main$b;
14349
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
14348
+ const _component_VButton = _sfc_main$d;
14349
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
14350
14350
  createBaseVNode("div", _hoisted_2$5, [
14351
14351
  createVNode(_component_Logo, { "h-16": "" }),
14352
14352
  createVNode(_component_VBadge, {
@@ -14358,9 +14358,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14358
14358
  textContent: "preview"
14359
14359
  })
14360
14360
  ]),
14361
- _hoisted_3$2,
14362
- _hoisted_4$2,
14363
- _hoisted_5$2,
14361
+ _hoisted_3$3,
14362
+ _hoisted_4$3,
14363
+ _hoisted_5$3,
14364
14364
  createVNode(_component_VButton, {
14365
14365
  "mt-4": "",
14366
14366
  n: "xl primary",
@@ -14378,28 +14378,28 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14378
14378
 
14379
14379
  /* Injected with object hook! */
14380
14380
 
14381
- const __pages_import_0__ = () => __vitePreload(() => import('./timeline-01c3c8d8.js'),true?["./timeline-01c3c8d8.js","./StateFields.vue_vue_type_script_setup_true_lang-f9c67da8.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./index-4ea8507d.js","./VIconButton.vue_vue_type_script_setup_true_lang-66a83f1a.js","./VPanelGrids-08531872.js","./VCard-8f584a44.js","./_commonjsHelpers-c0d8ada0.js","./splitpanes.es-cb929c19.js","./timeline-b315b2e0.css"]:void 0,import.meta.url);
14382
- const __pages_import_1__ = () => __vitePreload(() => import('./settings-7dc3a0fa.js'),true?["./settings-7dc3a0fa.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./VIconTitle.vue_vue_type_script_setup_true_lang-276880a3.js"]:void 0,import.meta.url);
14383
- const __pages_import_2__ = () => __vitePreload(() => import('./routes-b6e1361f.js'),true?["./routes-b6e1361f.js","./VPanelGrids-08531872.js","./VCard-8f584a44.js","./StateFields.vue_vue_type_script_setup_true_lang-f9c67da8.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./index-4ea8507d.js","./VIconButton.vue_vue_type_script_setup_true_lang-66a83f1a.js","./splitpanes.es-cb929c19.js"]:void 0,import.meta.url);
14384
- const __pages_import_3__ = () => __vitePreload(() => import('./pinia-a1d3abba.js'),true?["./pinia-a1d3abba.js","./StateFields.vue_vue_type_script_setup_true_lang-f9c67da8.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./index-4ea8507d.js","./VIconButton.vue_vue_type_script_setup_true_lang-66a83f1a.js","./splitpanes.es-cb929c19.js"]:void 0,import.meta.url);
14385
- const __pages_import_4__ = () => __vitePreload(() => import('./pages-c8759169.js'),true?["./pages-c8759169.js","./VSectionBlock-c9cecc8a.js","./VIconTitle.vue_vue_type_script_setup_true_lang-276880a3.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./VSectionBlock-52804693.css","./VTextInput.vue_vue_type_script_setup_true_lang-96ef132c.js"]:void 0,import.meta.url);
14386
- const __pages_import_5__ = () => __vitePreload(() => import('./overview-d04e0943.js'),true?["./overview-d04e0943.js","./VPanelGrids-08531872.js","./rpc-901b9577.js","./index-4ea8507d.js"]:void 0,import.meta.url);
14387
- const __pages_import_6__ = () => __vitePreload(() => import('./npm-8aa51398.js'),true?["./npm-8aa51398.js","./VSectionBlock-c9cecc8a.js","./VIconTitle.vue_vue_type_script_setup_true_lang-276880a3.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./VSectionBlock-52804693.css","./VTextInput.vue_vue_type_script_setup_true_lang-96ef132c.js","./_commonjsHelpers-c0d8ada0.js","./rpc-901b9577.js","./npm-125f4259.css"]:void 0,import.meta.url);
14388
- const __pages_import_7__ = () => __vitePreload(() => import('./inspect-ef16c665.js'),true?["./inspect-ef16c665.js","./IframeView.vue_vue_type_script_setup_true_lang-3a43e6ae.js","./rpc-901b9577.js"]:void 0,import.meta.url);
14389
- const __pages_import_9__ = () => __vitePreload(() => import('./graph-f04f0659.js'),true?["./graph-f04f0659.js","./fuse.esm-c317b696.js","./rpc-901b9577.js"]:void 0,import.meta.url);
14390
- const __pages_import_10__ = () => __vitePreload(() => import('./documentations-0772e28d.js'),true?["./documentations-0772e28d.js","./VCard-8f584a44.js","./IframeView.vue_vue_type_script_setup_true_lang-3a43e6ae.js","./rpc-901b9577.js"]:void 0,import.meta.url);
14391
- const __pages_import_11__ = () => __vitePreload(() => import('./components-4bbb4d42.js'),true?["./components-4bbb4d42.js","./VPanelGrids-08531872.js","./VCard-8f584a44.js","./StateFields.vue_vue_type_script_setup_true_lang-f9c67da8.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./index-4ea8507d.js","./VIconButton.vue_vue_type_script_setup_true_lang-66a83f1a.js","./splitpanes.es-cb929c19.js"]:void 0,import.meta.url);
14392
- const __pages_import_12__ = () => __vitePreload(() => import('./component-docs-0d4eec65.js'),true?["./component-docs-0d4eec65.js","./VCard-8f584a44.js","./VTextInput.vue_vue_type_script_setup_true_lang-96ef132c.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./splitpanes.es-cb929c19.js","./fuse.esm-c317b696.js","./rpc-901b9577.js","./component-docs-351d62d5.css"]:void 0,import.meta.url);
14393
- const __pages_import_13__ = () => __vitePreload(() => import('./assets-dc890f94.js'),true?["./assets-dc890f94.js","./VPanelGrids-08531872.js","./VCard-8f584a44.js","./VIconButton.vue_vue_type_script_setup_true_lang-66a83f1a.js","./VIcon.vue_vue_type_script_setup_true_lang-b5034521.js","./rpc-901b9577.js","./VSectionBlock-c9cecc8a.js","./VIconTitle.vue_vue_type_script_setup_true_lang-276880a3.js","./VSectionBlock-52804693.css","./VTextInput.vue_vue_type_script_setup_true_lang-96ef132c.js","./fuse.esm-c317b696.js"]:void 0,import.meta.url);
14394
- const __pages_import_14__ = () => __vitePreload(() => import('./__inspecting-c3942849.js'),true?["./__inspecting-c3942849.js","./VPanelGrids-08531872.js"]:void 0,import.meta.url);
14395
- const __pages_import_15__ = () => __vitePreload(() => import('./__eyedropper-dbdd9188.js'),true?["./__eyedropper-dbdd9188.js","./VPanelGrids-08531872.js"]:void 0,import.meta.url);
14396
-
14397
- const routes$1 = [{"name":"timeline","path":"/timeline","component":__pages_import_0__,"props":true},{"name":"settings","path":"/settings","component":__pages_import_1__,"props":true},{"name":"routes","path":"/routes","component":__pages_import_2__,"props":true},{"name":"pinia","path":"/pinia","component":__pages_import_3__,"props":true},{"name":"pages","path":"/pages","component":__pages_import_4__,"props":true},{"name":"overview","path":"/overview","component":__pages_import_5__,"props":true},{"name":"npm","path":"/npm","component":__pages_import_6__,"props":true},{"name":"inspect","path":"/inspect","component":__pages_import_7__,"props":true},{"name":"index","path":"/","component":_sfc_main$8,"props":true},{"name":"graph","path":"/graph","component":__pages_import_9__,"props":true},{"name":"documentations","path":"/documentations","component":__pages_import_10__,"props":true},{"name":"components","path":"/components","component":__pages_import_11__,"props":true},{"name":"component-docs","path":"/component-docs","component":__pages_import_12__,"props":true},{"name":"assets","path":"/assets","component":__pages_import_13__,"props":true},{"name":"__inspecting","path":"/__inspecting","component":__pages_import_14__,"props":true},{"name":"__eyedropper","path":"/__eyedropper","component":__pages_import_15__,"props":true}];
14381
+ const __pages_import_0__ = () => __vitePreload(() => import('./timeline-f8284402.js'),true?["assets/timeline-f8284402.js","assets/StateFields.vue_vue_type_script_setup_true_lang-766dc2da.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/index-32549096.js","assets/VIconButton.vue_vue_type_script_setup_true_lang-1dfaade2.js","assets/VPanelGrids-5c36b027.js","assets/_commonjsHelpers-c0d8ada0.js","assets/splitpanes.es-398427c7.js","assets/timeline-b315b2e0.css"]:void 0);
14382
+ const __pages_import_1__ = () => __vitePreload(() => import('./settings-68a6aaae.js'),true?["assets/settings-68a6aaae.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/VIconTitle.vue_vue_type_script_setup_true_lang-3891436f.js"]:void 0);
14383
+ const __pages_import_2__ = () => __vitePreload(() => import('./routes-b5c90320.js'),true?["assets/routes-b5c90320.js","assets/VPanelGrids-5c36b027.js","assets/StateFields.vue_vue_type_script_setup_true_lang-766dc2da.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/index-32549096.js","assets/VIconButton.vue_vue_type_script_setup_true_lang-1dfaade2.js","assets/splitpanes.es-398427c7.js"]:void 0);
14384
+ const __pages_import_3__ = () => __vitePreload(() => import('./pinia-0490bdb1.js'),true?["assets/pinia-0490bdb1.js","assets/StateFields.vue_vue_type_script_setup_true_lang-766dc2da.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/index-32549096.js","assets/VIconButton.vue_vue_type_script_setup_true_lang-1dfaade2.js","assets/splitpanes.es-398427c7.js"]:void 0);
14385
+ const __pages_import_4__ = () => __vitePreload(() => import('./pages-e0bd078d.js'),true?["assets/pages-e0bd078d.js","assets/VSectionBlock-de05a5a5.js","assets/VIconTitle.vue_vue_type_script_setup_true_lang-3891436f.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/VSectionBlock-52804693.css","assets/VTextInput.vue_vue_type_script_setup_true_lang-1c3b455d.js"]:void 0);
14386
+ const __pages_import_5__ = () => __vitePreload(() => import('./overview-3bc4fc18.js'),true?["assets/overview-3bc4fc18.js","assets/VPanelGrids-5c36b027.js","assets/rpc-6610a4d4.js","assets/index-32549096.js"]:void 0);
14387
+ const __pages_import_6__ = () => __vitePreload(() => import('./npm-8ea47586.js'),true?["assets/npm-8ea47586.js","assets/VSectionBlock-de05a5a5.js","assets/VIconTitle.vue_vue_type_script_setup_true_lang-3891436f.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/VSectionBlock-52804693.css","assets/VTextInput.vue_vue_type_script_setup_true_lang-1c3b455d.js","assets/_commonjsHelpers-c0d8ada0.js","assets/rpc-6610a4d4.js","assets/npm-125f4259.css"]:void 0);
14388
+ const __pages_import_7__ = () => __vitePreload(() => import('./inspect-d5e39a6a.js'),true?["assets/inspect-d5e39a6a.js","assets/IframeView.vue_vue_type_script_setup_true_lang-fad49b28.js","assets/rpc-6610a4d4.js"]:void 0);
14389
+ const __pages_import_9__ = () => __vitePreload(() => import('./graph-97eb4fb0.js'),true?["assets/graph-97eb4fb0.js","assets/fuse.esm-c317b696.js","assets/rpc-6610a4d4.js"]:void 0);
14390
+ const __pages_import_10__ = () => __vitePreload(() => import('./documentations-1d60f0ff.js'),true?["assets/documentations-1d60f0ff.js","assets/IframeView.vue_vue_type_script_setup_true_lang-fad49b28.js","assets/rpc-6610a4d4.js"]:void 0);
14391
+ const __pages_import_11__ = () => __vitePreload(() => import('./components-0083a223.js'),true?["assets/components-0083a223.js","assets/VPanelGrids-5c36b027.js","assets/StateFields.vue_vue_type_script_setup_true_lang-766dc2da.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/index-32549096.js","assets/VIconButton.vue_vue_type_script_setup_true_lang-1dfaade2.js","assets/splitpanes.es-398427c7.js"]:void 0);
14392
+ const __pages_import_12__ = () => __vitePreload(() => import('./component-docs-52802cb1.js'),true?["assets/component-docs-52802cb1.js","assets/VTextInput.vue_vue_type_script_setup_true_lang-1c3b455d.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/splitpanes.es-398427c7.js","assets/fuse.esm-c317b696.js","assets/rpc-6610a4d4.js","assets/component-docs-351d62d5.css"]:void 0);
14393
+ const __pages_import_13__ = () => __vitePreload(() => import('./assets-6e057331.js'),true?["assets/assets-6e057331.js","assets/VPanelGrids-5c36b027.js","assets/VIconButton.vue_vue_type_script_setup_true_lang-1dfaade2.js","assets/VIcon.vue_vue_type_script_setup_true_lang-8e1bce76.js","assets/rpc-6610a4d4.js","assets/VSectionBlock-de05a5a5.js","assets/VIconTitle.vue_vue_type_script_setup_true_lang-3891436f.js","assets/VSectionBlock-52804693.css","assets/VTextInput.vue_vue_type_script_setup_true_lang-1c3b455d.js","assets/fuse.esm-c317b696.js"]:void 0);
14394
+ const __pages_import_14__ = () => __vitePreload(() => import('./__inspecting-9ed1189b.js'),true?["assets/__inspecting-9ed1189b.js","assets/VPanelGrids-5c36b027.js"]:void 0);
14395
+ const __pages_import_15__ = () => __vitePreload(() => import('./__eyedropper-8918265a.js'),true?["assets/__eyedropper-8918265a.js","assets/VPanelGrids-5c36b027.js"]:void 0);
14396
+
14397
+ const routes$1 = [{"name":"timeline","path":"/timeline","component":__pages_import_0__,"props":true},{"name":"settings","path":"/settings","component":__pages_import_1__,"props":true},{"name":"routes","path":"/routes","component":__pages_import_2__,"props":true},{"name":"pinia","path":"/pinia","component":__pages_import_3__,"props":true},{"name":"pages","path":"/pages","component":__pages_import_4__,"props":true},{"name":"overview","path":"/overview","component":__pages_import_5__,"props":true},{"name":"npm","path":"/npm","component":__pages_import_6__,"props":true},{"name":"inspect","path":"/inspect","component":__pages_import_7__,"props":true},{"name":"index","path":"/","component":_sfc_main$a,"props":true},{"name":"graph","path":"/graph","component":__pages_import_9__,"props":true},{"name":"documentations","path":"/documentations","component":__pages_import_10__,"props":true},{"name":"components","path":"/components","component":__pages_import_11__,"props":true},{"name":"component-docs","path":"/component-docs","component":__pages_import_12__,"props":true},{"name":"assets","path":"/assets","component":__pages_import_13__,"props":true},{"name":"__inspecting","path":"/__inspecting","component":__pages_import_14__,"props":true},{"name":"__eyedropper","path":"/__eyedropper","component":__pages_import_15__,"props":true}];
14398
14398
  /* Injected with object hook! */
14399
14399
 
14400
- const _hoisted_1$4 = ["src", "alt"];
14400
+ const _hoisted_1$5 = ["src", "alt"];
14401
14401
  const _hoisted_2$4 = ["title"];
14402
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14402
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
14403
14403
  __name: "TabIcon",
14404
14404
  props: {
14405
14405
  icon: {},
@@ -14416,7 +14416,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14416
14416
  }, _ctx.$attrs, {
14417
14417
  src: _ctx.icon,
14418
14418
  alt: _ctx.title
14419
- }), null, 16, _hoisted_1$4)) : (openBlock(), createElementBlock("div", mergeProps({
14419
+ }), null, 16, _hoisted_1$5)) : (openBlock(), createElementBlock("div", mergeProps({
14420
14420
  key: 1,
14421
14421
  style: {
14422
14422
  width: "1em",
@@ -14445,7 +14445,7 @@ function useDevtoolsClient() {
14445
14445
 
14446
14446
  /* Injected with object hook! */
14447
14447
 
14448
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14448
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
14449
14449
  __name: "SideNavItem",
14450
14450
  props: {
14451
14451
  tab: {}
@@ -14454,7 +14454,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14454
14454
  const client = useDevtoolsClient();
14455
14455
  const router = useRouter();
14456
14456
  return (_ctx, _cache) => {
14457
- const _component_TabIcon = _sfc_main$7;
14457
+ const _component_TabIcon = _sfc_main$9;
14458
14458
  const _component_VTooltip = resolveComponent("VTooltip");
14459
14459
  return openBlock(), createBlock(_component_VTooltip, { placement: "right" }, {
14460
14460
  popper: withCtx(() => [
@@ -14495,7 +14495,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
14495
14495
 
14496
14496
  /* Injected with object hook! */
14497
14497
 
14498
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
14498
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
14499
14499
  __name: "VDarkToggle",
14500
14500
  setup(__props) {
14501
14501
  const mode = useColorMode();
@@ -14559,274 +14559,1878 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
14559
14559
 
14560
14560
  /* Injected with object hook! */
14561
14561
 
14562
- const _hoisted_1$3 = {
14563
- flex: "~ gap-1",
14564
- "text-lg": ""
14565
- };
14566
- const _hoisted_2$3 = ["onClick"];
14567
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
14568
- __name: "VPanelPosition",
14569
- setup(__props) {
14570
- const { position: _position } = useFrameState();
14571
- const frameState = computed(() => ({ position: _position.value }));
14572
- const client = useDevtoolsClient();
14573
- const dockButton = [
14574
- {
14575
- position: "bottom",
14576
- icon: "i-carbon-open-panel-filled-bottom"
14577
- },
14578
- {
14579
- position: "right",
14580
- icon: "i-carbon-open-panel-filled-right"
14581
- },
14582
- {
14583
- position: "left",
14584
- icon: "i-carbon-open-panel-filled-left"
14585
- },
14586
- {
14587
- position: "top",
14588
- icon: "i-carbon-open-panel-filled-top"
14589
- }
14590
- ];
14591
- function toggle(position) {
14592
- client.value?.panel?.togglePosition(position);
14593
- _position.value = position;
14594
- }
14595
- return (_ctx, _cache) => {
14596
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
14597
- (openBlock(), createElementBlock(Fragment, null, renderList(dockButton, (item) => {
14598
- return createBaseVNode("button", {
14599
- key: item.position,
14600
- class: normalizeClass([unref(frameState).position === item.position ? "text-primary" : "op50", item.icon]),
14601
- onClick: ($event) => toggle(item.position)
14602
- }, null, 10, _hoisted_2$3);
14603
- }), 64))
14604
- ]);
14605
- };
14606
- }
14607
- });
14608
-
14609
- /* Injected with object hook! */
14610
-
14611
- const _sfc_main$3 = {};
14562
+ /* unplugin-vue-components disabled */const _sfc_main$6 = {};
14612
14563
 
14613
- const _hoisted_1$2 = {
14614
- px3: "",
14615
- py2: "",
14616
- border: "b base",
14617
- flex: "~ col gap-1"
14618
- };
14619
- const _hoisted_2$2 = /*#__PURE__*/createBaseVNode("div", {
14620
- "text-sm": "",
14621
- op50: ""
14622
- }, " Dock devtools to ", -1);
14623
- const _hoisted_3$1 = {
14624
- px3: "",
14625
- py2: "",
14626
- border: "b base",
14627
- flex: "~ gap-2"
14628
- };
14629
- const _hoisted_4$1 = /*#__PURE__*/createBaseVNode("div", {
14630
- "carbon-sun": "",
14631
- "translate-y--1px": "",
14632
- "dark:carbon-moon": ""
14633
- }, null, -1);
14634
- const _hoisted_5$1 = /*#__PURE__*/createBaseVNode("div", {
14635
- "carbon-settings": "",
14636
- "translate-y--1px": ""
14637
- }, null, -1);
14564
+ const _hoisted_1$4 = { class: "n-card n-card-base" };
14638
14565
 
14639
14566
  function _sfc_render(_ctx, _cache) {
14640
- const _component_VPanelPosition = _sfc_main$4;
14641
- const _component_VButton = _sfc_main$b;
14642
- const _component_VDarkToggle = _sfc_main$5;
14643
- const _component_RouterLink = resolveComponent("RouterLink");
14644
-
14645
- return (openBlock(), createElementBlock("div", null, [
14646
- createBaseVNode("div", _hoisted_1$2, [
14647
- _hoisted_2$2,
14648
- createVNode(_component_VPanelPosition)
14649
- ]),
14650
- createBaseVNode("div", _hoisted_3$1, [
14651
- createVNode(_component_VDarkToggle, null, {
14652
- default: withCtx(({ toggle, isDark }) => [
14653
- createVNode(_component_VButton, {
14654
- n: "sm primary",
14655
- onClick: toggle
14656
- }, {
14657
- default: withCtx(() => [
14658
- _hoisted_4$1,
14659
- createTextVNode(" " + toDisplayString(isDark.value ? "Dark" : "Light"), 1)
14660
- ]),
14661
- _: 2
14662
- }, 1032, ["onClick"])
14663
- ]),
14664
- _: 1
14665
- }),
14666
- createVNode(_component_RouterLink, {
14667
- replace: "",
14668
- class: "n-button-base active:n-button-active focus-visible:n-focus-base n-transition n-primary n-sm hover:n-button-hover n-disabled:n-disabled",
14669
- to: "/settings"
14670
- }, {
14671
- default: withCtx(() => [
14672
- _hoisted_5$1,
14673
- createTextVNode(" Settings ")
14674
- ]),
14675
- _: 1
14676
- })
14677
- ])
14567
+ return (openBlock(), createElementBlock("div", _hoisted_1$4, [
14568
+ renderSlot(_ctx.$slots, "default")
14678
14569
  ]))
14679
14570
  }
14680
- const __unplugin_components_0 = /*#__PURE__*/_export_sfc(_sfc_main$3, [['render',_sfc_render]]);
14571
+ const __unplugin_components_7 = /*#__PURE__*/_export_sfc(_sfc_main$6, [['render',_sfc_render]]);
14681
14572
  /* Injected with object hook! */
14682
14573
 
14683
- const devToolsSettings = useLocalStorage("__vue-devtools-settings__", {
14684
- scale: 1,
14685
- hiddenTabs: [],
14686
- hiddenTabCategories: []
14687
- }, { mergeDefaults: true });
14688
- const devToolsSettingsRefs = toRefs(devToolsSettings);
14689
- function useDevToolsSettings() {
14690
- return devToolsSettingsRefs;
14574
+ function tryOnScopeDispose(fn) {
14575
+ if (getCurrentScope()) {
14576
+ onScopeDispose(fn);
14577
+ return true;
14578
+ }
14579
+ return false;
14580
+ }
14581
+
14582
+ function toValue(r) {
14583
+ return typeof r === "function" ? r() : unref(r);
14691
14584
  }
14692
14585
 
14693
14586
  /* Injected with object hook! */
14694
14587
 
14695
- const builtinTabs = [
14696
- {
14697
- path: "overview",
14698
- title: "Overview",
14699
- icon: "i-carbon-information"
14700
- },
14701
- {
14702
- path: "pages",
14703
- title: "Pages",
14704
- icon: "i-carbon-tree-view-alt"
14705
- },
14706
- {
14707
- path: "components",
14708
- title: "Components",
14709
- icon: "i-carbon-assembly-cluster"
14710
- },
14711
- {
14712
- path: "assets",
14713
- title: "Assets",
14714
- icon: "i-carbon-image-copy"
14715
- },
14716
- {
14717
- path: "routes",
14718
- title: "Routes",
14719
- icon: "gis:map-route",
14720
- category: "modules"
14721
- },
14722
- {
14723
- path: "pinia",
14724
- title: "Pinia",
14725
- icon: "icon-park-outline:pineapple",
14726
- category: "modules"
14727
- },
14728
- {
14729
- path: "timeline",
14730
- title: "Timeline",
14731
- icon: "i-icon-park-outline:vertical-timeline"
14732
- },
14733
- {
14734
- title: "Inspector",
14735
- icon: "i-carbon-select-window",
14736
- category: "advanced",
14737
- event: (client, router) => {
14738
- router.replace("/__inspecting");
14739
- client?.inspector?.enable();
14740
- }
14741
- },
14742
- {
14743
- title: "EyeDropper",
14744
- icon: "i-mdi:eyedropper",
14745
- category: "advanced",
14746
- event: (client, router) => {
14747
- router.replace("/__eyedropper");
14748
- client.panel?.toggleViewMode("xs");
14749
- }
14750
- },
14751
- {
14752
- path: "component-docs",
14753
- title: "Component docs",
14754
- icon: "i-carbon-document-preliminary",
14755
- category: "advanced"
14756
- },
14757
- {
14758
- path: "npm",
14759
- title: "Search packages",
14760
- icon: "i-teenyicons:npm-outline",
14761
- category: "advanced"
14762
- },
14763
- {
14764
- path: "graph",
14765
- title: "Graph",
14766
- icon: "i-carbon-network-4",
14767
- category: "advanced"
14768
- },
14769
- {
14770
- path: "inspect",
14771
- title: "Inspect",
14772
- icon: "i-carbon-ibm-watson-discovery",
14773
- category: "advanced"
14774
- },
14775
- {
14776
- path: "documentations",
14777
- title: "Documentations",
14778
- icon: "i-carbon-document",
14779
- category: "advanced"
14780
- }
14781
- ];
14782
- function useTabs() {
14783
- const settings = useDevToolsSettings();
14784
- return {
14785
- enabled: computed(() => {
14786
- return builtinTabs.filter((tab) => !settings.hiddenTabs.value.includes(tab.title ?? ""));
14787
- }),
14788
- all: computed(() => builtinTabs)
14789
- };
14790
- }
14791
- function useCategorizedTabs(enabledOnly = true) {
14792
- const _tabs = useTabs();
14793
- const tabs = enabledOnly ? _tabs.enabled : _tabs.all;
14794
- const settings = useDevToolsSettings();
14795
- return computed(() => {
14796
- const categories = {
14797
- app: [],
14798
- modules: [],
14799
- advanced: []
14800
- };
14801
- for (const tab of tabs.value) {
14802
- const category = tab?.category || "app";
14803
- if (enabledOnly && settings.hiddenTabCategories.value.includes(category))
14804
- continue;
14805
- if (!categories[category])
14806
- console.warn(`Unknown tab category: ${category}`);
14807
- else
14808
- categories[category].push(tab);
14809
- }
14810
- return Object.entries(categories);
14811
- });
14588
+ function unrefElement(elRef) {
14589
+ var _a;
14590
+ const plain = toValue(elRef);
14591
+ return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;
14812
14592
  }
14813
14593
 
14814
14594
  /* Injected with object hook! */
14815
14595
 
14816
- const _hoisted_1$1 = {
14817
- border: "r base",
14818
- flex: "~ col gap-0.5",
14819
- "z-100": "",
14820
- "h-full": "",
14821
- "items-center": "",
14822
- "bg-base": "",
14823
- class: "no-scrollbar"
14596
+ /*!
14597
+ * tabbable 6.1.2
14598
+ * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
14599
+ */
14600
+ // NOTE: separate `:not()` selectors has broader browser support than the newer
14601
+ // `:not([inert], [inert] *)` (Feb 2023)
14602
+ // CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes
14603
+ // the entire query to fail, resulting in no nodes found, which will break a lot
14604
+ // of things... so we have to rely on JS to identify nodes inside an inert container
14605
+ var candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable="false"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];
14606
+ var candidateSelector = /* #__PURE__ */candidateSelectors.join(',');
14607
+ var NoElement = typeof Element === 'undefined';
14608
+ var matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
14609
+ var getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {
14610
+ var _element$getRootNode;
14611
+ return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);
14612
+ } : function (element) {
14613
+ return element === null || element === void 0 ? void 0 : element.ownerDocument;
14824
14614
  };
14825
- const _hoisted_2$1 = {
14826
- flex: "~ col",
14827
- sticky: "",
14828
- "top-0": "",
14829
- "z-1": "",
14615
+
14616
+ /**
14617
+ * Determines if a node is inert or in an inert ancestor.
14618
+ * @param {Element} [node]
14619
+ * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to
14620
+ * see if any of them are inert. If false, only `node` itself is considered.
14621
+ * @returns {boolean} True if inert itself or by way of being in an inert ancestor.
14622
+ * False if `node` is falsy.
14623
+ */
14624
+ var isInert = function isInert(node, lookUp) {
14625
+ var _node$getAttribute;
14626
+ if (lookUp === void 0) {
14627
+ lookUp = true;
14628
+ }
14629
+ // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`
14630
+ // JS API property; we have to check the attribute, which can either be empty or 'true';
14631
+ // if it's `null` (not specified) or 'false', it's an active element
14632
+ var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');
14633
+ var inert = inertAtt === '' || inertAtt === 'true';
14634
+
14635
+ // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`
14636
+ // if it weren't for `matches()` not being a function on shadow roots; the following
14637
+ // code works for any kind of node
14638
+ // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`
14639
+ // so it likely would not support `:is([inert] *)` either...
14640
+ var result = inert || lookUp && node && isInert(node.parentNode); // recursive
14641
+
14642
+ return result;
14643
+ };
14644
+
14645
+ /**
14646
+ * Determines if a node's content is editable.
14647
+ * @param {Element} [node]
14648
+ * @returns True if it's content-editable; false if it's not or `node` is falsy.
14649
+ */
14650
+ var isContentEditable = function isContentEditable(node) {
14651
+ var _node$getAttribute2;
14652
+ // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have
14653
+ // to use the attribute directly to check for this, which can either be empty or 'true';
14654
+ // if it's `null` (not specified) or 'false', it's a non-editable element
14655
+ var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');
14656
+ return attValue === '' || attValue === 'true';
14657
+ };
14658
+
14659
+ /**
14660
+ * @param {Element} el container to check in
14661
+ * @param {boolean} includeContainer add container to check
14662
+ * @param {(node: Element) => boolean} filter filter candidates
14663
+ * @returns {Element[]}
14664
+ */
14665
+ var getCandidates = function getCandidates(el, includeContainer, filter) {
14666
+ // even if `includeContainer=false`, we still have to check it for inertness because
14667
+ // if it's inert, all its children are inert
14668
+ if (isInert(el)) {
14669
+ return [];
14670
+ }
14671
+ var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
14672
+ if (includeContainer && matches.call(el, candidateSelector)) {
14673
+ candidates.unshift(el);
14674
+ }
14675
+ candidates = candidates.filter(filter);
14676
+ return candidates;
14677
+ };
14678
+
14679
+ /**
14680
+ * @callback GetShadowRoot
14681
+ * @param {Element} element to check for shadow root
14682
+ * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.
14683
+ */
14684
+
14685
+ /**
14686
+ * @callback ShadowRootFilter
14687
+ * @param {Element} shadowHostNode the element which contains shadow content
14688
+ * @returns {boolean} true if a shadow root could potentially contain valid candidates.
14689
+ */
14690
+
14691
+ /**
14692
+ * @typedef {Object} CandidateScope
14693
+ * @property {Element} scopeParent contains inner candidates
14694
+ * @property {Element[]} candidates list of candidates found in the scope parent
14695
+ */
14696
+
14697
+ /**
14698
+ * @typedef {Object} IterativeOptions
14699
+ * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;
14700
+ * if a function, implies shadow support is enabled and either returns the shadow root of an element
14701
+ * or a boolean stating if it has an undisclosed shadow root
14702
+ * @property {(node: Element) => boolean} filter filter candidates
14703
+ * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list
14704
+ * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;
14705
+ */
14706
+
14707
+ /**
14708
+ * @param {Element[]} elements list of element containers to match candidates from
14709
+ * @param {boolean} includeContainer add container list to check
14710
+ * @param {IterativeOptions} options
14711
+ * @returns {Array.<Element|CandidateScope>}
14712
+ */
14713
+ var getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {
14714
+ var candidates = [];
14715
+ var elementsToCheck = Array.from(elements);
14716
+ while (elementsToCheck.length) {
14717
+ var element = elementsToCheck.shift();
14718
+ if (isInert(element, false)) {
14719
+ // no need to look up since we're drilling down
14720
+ // anything inside this container will also be inert
14721
+ continue;
14722
+ }
14723
+ if (element.tagName === 'SLOT') {
14724
+ // add shadow dom slot scope (slot itself cannot be focusable)
14725
+ var assigned = element.assignedElements();
14726
+ var content = assigned.length ? assigned : element.children;
14727
+ var nestedCandidates = getCandidatesIteratively(content, true, options);
14728
+ if (options.flatten) {
14729
+ candidates.push.apply(candidates, nestedCandidates);
14730
+ } else {
14731
+ candidates.push({
14732
+ scopeParent: element,
14733
+ candidates: nestedCandidates
14734
+ });
14735
+ }
14736
+ } else {
14737
+ // check candidate element
14738
+ var validCandidate = matches.call(element, candidateSelector);
14739
+ if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {
14740
+ candidates.push(element);
14741
+ }
14742
+
14743
+ // iterate over shadow content if possible
14744
+ var shadowRoot = element.shadowRoot ||
14745
+ // check for an undisclosed shadow
14746
+ typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);
14747
+
14748
+ // no inert look up because we're already drilling down and checking for inertness
14749
+ // on the way down, so all containers to this root node should have already been
14750
+ // vetted as non-inert
14751
+ var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));
14752
+ if (shadowRoot && validShadowRoot) {
14753
+ // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed
14754
+ // shadow exists, so look at light dom children as fallback BUT create a scope for any
14755
+ // child candidates found because they're likely slotted elements (elements that are
14756
+ // children of the web component element (which has the shadow), in the light dom, but
14757
+ // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,
14758
+ // _after_ we return from this recursive call
14759
+ var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);
14760
+ if (options.flatten) {
14761
+ candidates.push.apply(candidates, _nestedCandidates);
14762
+ } else {
14763
+ candidates.push({
14764
+ scopeParent: element,
14765
+ candidates: _nestedCandidates
14766
+ });
14767
+ }
14768
+ } else {
14769
+ // there's not shadow so just dig into the element's (light dom) children
14770
+ // __without__ giving the element special scope treatment
14771
+ elementsToCheck.unshift.apply(elementsToCheck, element.children);
14772
+ }
14773
+ }
14774
+ }
14775
+ return candidates;
14776
+ };
14777
+ var getTabindex = function getTabindex(node, isScope) {
14778
+ if (node.tabIndex < 0) {
14779
+ // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
14780
+ // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
14781
+ // yet they are still part of the regular tab order; in FF, they get a default
14782
+ // `tabIndex` of 0; since Chrome still puts those elements in the regular tab
14783
+ // order, consider their tab index to be 0.
14784
+ // Also browsers do not return `tabIndex` correctly for contentEditable nodes;
14785
+ // so if they don't have a tabindex attribute specifically set, assume it's 0.
14786
+ //
14787
+ // isScope is positive for custom element with shadow root or slot that by default
14788
+ // have tabIndex -1, but need to be sorted by document order in order for their
14789
+ // content to be inserted in the correct position
14790
+ if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {
14791
+ return 0;
14792
+ }
14793
+ }
14794
+ return node.tabIndex;
14795
+ };
14796
+ var sortOrderedTabbables = function sortOrderedTabbables(a, b) {
14797
+ return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
14798
+ };
14799
+ var isInput = function isInput(node) {
14800
+ return node.tagName === 'INPUT';
14801
+ };
14802
+ var isHiddenInput = function isHiddenInput(node) {
14803
+ return isInput(node) && node.type === 'hidden';
14804
+ };
14805
+ var isDetailsWithSummary = function isDetailsWithSummary(node) {
14806
+ var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {
14807
+ return child.tagName === 'SUMMARY';
14808
+ });
14809
+ return r;
14810
+ };
14811
+ var getCheckedRadio = function getCheckedRadio(nodes, form) {
14812
+ for (var i = 0; i < nodes.length; i++) {
14813
+ if (nodes[i].checked && nodes[i].form === form) {
14814
+ return nodes[i];
14815
+ }
14816
+ }
14817
+ };
14818
+ var isTabbableRadio = function isTabbableRadio(node) {
14819
+ if (!node.name) {
14820
+ return true;
14821
+ }
14822
+ var radioScope = node.form || getRootNode(node);
14823
+ var queryRadios = function queryRadios(name) {
14824
+ return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
14825
+ };
14826
+ var radioSet;
14827
+ if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {
14828
+ radioSet = queryRadios(window.CSS.escape(node.name));
14829
+ } else {
14830
+ try {
14831
+ radioSet = queryRadios(node.name);
14832
+ } catch (err) {
14833
+ // eslint-disable-next-line no-console
14834
+ console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);
14835
+ return false;
14836
+ }
14837
+ }
14838
+ var checked = getCheckedRadio(radioSet, node.form);
14839
+ return !checked || checked === node;
14840
+ };
14841
+ var isRadio = function isRadio(node) {
14842
+ return isInput(node) && node.type === 'radio';
14843
+ };
14844
+ var isNonTabbableRadio = function isNonTabbableRadio(node) {
14845
+ return isRadio(node) && !isTabbableRadio(node);
14846
+ };
14847
+
14848
+ // determines if a node is ultimately attached to the window's document
14849
+ var isNodeAttached = function isNodeAttached(node) {
14850
+ var _nodeRoot;
14851
+ // The root node is the shadow root if the node is in a shadow DOM; some document otherwise
14852
+ // (but NOT _the_ document; see second 'If' comment below for more).
14853
+ // If rootNode is shadow root, it'll have a host, which is the element to which the shadow
14854
+ // is attached, and the one we need to check if it's in the document or not (because the
14855
+ // shadow, and all nodes it contains, is never considered in the document since shadows
14856
+ // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,
14857
+ // is hidden, or is not in the document itself but is detached, it will affect the shadow's
14858
+ // visibility, including all the nodes it contains). The host could be any normal node,
14859
+ // or a custom element (i.e. web component). Either way, that's the one that is considered
14860
+ // part of the document, not the shadow root, nor any of its children (i.e. the node being
14861
+ // tested).
14862
+ // To further complicate things, we have to look all the way up until we find a shadow HOST
14863
+ // that is attached (or find none) because the node might be in nested shadows...
14864
+ // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the
14865
+ // document (per the docs) and while it's a Document-type object, that document does not
14866
+ // appear to be the same as the node's `ownerDocument` for some reason, so it's safer
14867
+ // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,
14868
+ // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when
14869
+ // node is actually detached.
14870
+ // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible
14871
+ // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed
14872
+ // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then
14873
+ // `ownerDocument` will be `null`, hence the optional chaining on it.
14874
+ var nodeRoot = node && getRootNode(node);
14875
+ var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;
14876
+
14877
+ // in some cases, a detached node will return itself as the root instead of a document or
14878
+ // shadow root object, in which case, we shouldn't try to look further up the host chain
14879
+ var attached = false;
14880
+ if (nodeRoot && nodeRoot !== node) {
14881
+ var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;
14882
+ attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));
14883
+ while (!attached && nodeRootHost) {
14884
+ var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;
14885
+ // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,
14886
+ // which means we need to get the host's host and check if that parent host is contained
14887
+ // in (i.e. attached to) the document
14888
+ nodeRoot = getRootNode(nodeRootHost);
14889
+ nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;
14890
+ attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));
14891
+ }
14892
+ }
14893
+ return attached;
14894
+ };
14895
+ var isZeroArea = function isZeroArea(node) {
14896
+ var _node$getBoundingClie = node.getBoundingClientRect(),
14897
+ width = _node$getBoundingClie.width,
14898
+ height = _node$getBoundingClie.height;
14899
+ return width === 0 && height === 0;
14900
+ };
14901
+ var isHidden = function isHidden(node, _ref) {
14902
+ var displayCheck = _ref.displayCheck,
14903
+ getShadowRoot = _ref.getShadowRoot;
14904
+ // NOTE: visibility will be `undefined` if node is detached from the document
14905
+ // (see notes about this further down), which means we will consider it visible
14906
+ // (this is legacy behavior from a very long way back)
14907
+ // NOTE: we check this regardless of `displayCheck="none"` because this is a
14908
+ // _visibility_ check, not a _display_ check
14909
+ if (getComputedStyle(node).visibility === 'hidden') {
14910
+ return true;
14911
+ }
14912
+ var isDirectSummary = matches.call(node, 'details>summary:first-of-type');
14913
+ var nodeUnderDetails = isDirectSummary ? node.parentElement : node;
14914
+ if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {
14915
+ return true;
14916
+ }
14917
+ if (!displayCheck || displayCheck === 'full' || displayCheck === 'legacy-full') {
14918
+ if (typeof getShadowRoot === 'function') {
14919
+ // figure out if we should consider the node to be in an undisclosed shadow and use the
14920
+ // 'non-zero-area' fallback
14921
+ var originalNode = node;
14922
+ while (node) {
14923
+ var parentElement = node.parentElement;
14924
+ var rootNode = getRootNode(node);
14925
+ if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow
14926
+ ) {
14927
+ // node has an undisclosed shadow which means we can only treat it as a black box, so we
14928
+ // fall back to a non-zero-area test
14929
+ return isZeroArea(node);
14930
+ } else if (node.assignedSlot) {
14931
+ // iterate up slot
14932
+ node = node.assignedSlot;
14933
+ } else if (!parentElement && rootNode !== node.ownerDocument) {
14934
+ // cross shadow boundary
14935
+ node = rootNode.host;
14936
+ } else {
14937
+ // iterate up normal dom
14938
+ node = parentElement;
14939
+ }
14940
+ }
14941
+ node = originalNode;
14942
+ }
14943
+ // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support
14944
+ // (i.e. it does not also presume that all nodes might have undisclosed shadows); or
14945
+ // it might be a falsy value, which means shadow DOM support is disabled
14946
+
14947
+ // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)
14948
+ // now we can just test to see if it would normally be visible or not, provided it's
14949
+ // attached to the main document.
14950
+ // NOTE: We must consider case where node is inside a shadow DOM and given directly to
14951
+ // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.
14952
+
14953
+ if (isNodeAttached(node)) {
14954
+ // this works wherever the node is: if there's at least one client rect, it's
14955
+ // somehow displayed; it also covers the CSS 'display: contents' case where the
14956
+ // node itself is hidden in place of its contents; and there's no need to search
14957
+ // up the hierarchy either
14958
+ return !node.getClientRects().length;
14959
+ }
14960
+
14961
+ // Else, the node isn't attached to the document, which means the `getClientRects()`
14962
+ // API will __always__ return zero rects (this can happen, for example, if React
14963
+ // is used to render nodes onto a detached tree, as confirmed in this thread:
14964
+ // https://github.com/facebook/react/issues/9117#issuecomment-284228870)
14965
+ //
14966
+ // It also means that even window.getComputedStyle(node).display will return `undefined`
14967
+ // because styles are only computed for nodes that are in the document.
14968
+ //
14969
+ // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable
14970
+ // somehow. Though it was never stated officially, anyone who has ever used tabbable
14971
+ // APIs on nodes in detached containers has actually implicitly used tabbable in what
14972
+ // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck="none"` mode -- essentially
14973
+ // considering __everything__ to be visible because of the innability to determine styles.
14974
+ //
14975
+ // v6.0.0: As of this major release, the default 'full' option __no longer treats detached
14976
+ // nodes as visible with the 'none' fallback.__
14977
+ if (displayCheck !== 'legacy-full') {
14978
+ return true; // hidden
14979
+ }
14980
+ // else, fallback to 'none' mode and consider the node visible
14981
+ } else if (displayCheck === 'non-zero-area') {
14982
+ // NOTE: Even though this tests that the node's client rect is non-zero to determine
14983
+ // whether it's displayed, and that a detached node will __always__ have a zero-area
14984
+ // client rect, we don't special-case for whether the node is attached or not. In
14985
+ // this mode, we do want to consider nodes that have a zero area to be hidden at all
14986
+ // times, and that includes attached or not.
14987
+ return isZeroArea(node);
14988
+ }
14989
+
14990
+ // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume
14991
+ // it's visible
14992
+ return false;
14993
+ };
14994
+
14995
+ // form fields (nested) inside a disabled fieldset are not focusable/tabbable
14996
+ // unless they are in the _first_ <legend> element of the top-most disabled
14997
+ // fieldset
14998
+ var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
14999
+ if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {
15000
+ var parentNode = node.parentElement;
15001
+ // check if `node` is contained in a disabled <fieldset>
15002
+ while (parentNode) {
15003
+ if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {
15004
+ // look for the first <legend> among the children of the disabled <fieldset>
15005
+ for (var i = 0; i < parentNode.children.length; i++) {
15006
+ var child = parentNode.children.item(i);
15007
+ // when the first <legend> (in document order) is found
15008
+ if (child.tagName === 'LEGEND') {
15009
+ // if its parent <fieldset> is not nested in another disabled <fieldset>,
15010
+ // return whether `node` is a descendant of its first <legend>
15011
+ return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);
15012
+ }
15013
+ }
15014
+ // the disabled <fieldset> containing `node` has no <legend>
15015
+ return true;
15016
+ }
15017
+ parentNode = parentNode.parentElement;
15018
+ }
15019
+ }
15020
+
15021
+ // else, node's tabbable/focusable state should not be affected by a fieldset's
15022
+ // enabled/disabled state
15023
+ return false;
15024
+ };
15025
+ var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {
15026
+ if (node.disabled ||
15027
+ // we must do an inert look up to filter out any elements inside an inert ancestor
15028
+ // because we're limited in the type of selectors we can use in JSDom (see related
15029
+ // note related to `candidateSelectors`)
15030
+ isInert(node) || isHiddenInput(node) || isHidden(node, options) ||
15031
+ // For a details element with a summary, the summary element gets the focus
15032
+ isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
15033
+ return false;
15034
+ }
15035
+ return true;
15036
+ };
15037
+ var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {
15038
+ if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
15039
+ return false;
15040
+ }
15041
+ return true;
15042
+ };
15043
+ var isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {
15044
+ var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);
15045
+ if (isNaN(tabIndex) || tabIndex >= 0) {
15046
+ return true;
15047
+ }
15048
+ // If a custom element has an explicit negative tabindex,
15049
+ // browsers will not allow tab targeting said element's children.
15050
+ return false;
15051
+ };
15052
+
15053
+ /**
15054
+ * @param {Array.<Element|CandidateScope>} candidates
15055
+ * @returns Element[]
15056
+ */
15057
+ var sortByOrder = function sortByOrder(candidates) {
15058
+ var regularTabbables = [];
15059
+ var orderedTabbables = [];
15060
+ candidates.forEach(function (item, i) {
15061
+ var isScope = !!item.scopeParent;
15062
+ var element = isScope ? item.scopeParent : item;
15063
+ var candidateTabindex = getTabindex(element, isScope);
15064
+ var elements = isScope ? sortByOrder(item.candidates) : element;
15065
+ if (candidateTabindex === 0) {
15066
+ isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
15067
+ } else {
15068
+ orderedTabbables.push({
15069
+ documentOrder: i,
15070
+ tabIndex: candidateTabindex,
15071
+ item: item,
15072
+ isScope: isScope,
15073
+ content: elements
15074
+ });
15075
+ }
15076
+ });
15077
+ return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {
15078
+ sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);
15079
+ return acc;
15080
+ }, []).concat(regularTabbables);
15081
+ };
15082
+ var tabbable = function tabbable(el, options) {
15083
+ options = options || {};
15084
+ var candidates;
15085
+ if (options.getShadowRoot) {
15086
+ candidates = getCandidatesIteratively([el], options.includeContainer, {
15087
+ filter: isNodeMatchingSelectorTabbable.bind(null, options),
15088
+ flatten: false,
15089
+ getShadowRoot: options.getShadowRoot,
15090
+ shadowRootFilter: isValidShadowRootTabbable
15091
+ });
15092
+ } else {
15093
+ candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
15094
+ }
15095
+ return sortByOrder(candidates);
15096
+ };
15097
+ var focusable = function focusable(el, options) {
15098
+ options = options || {};
15099
+ var candidates;
15100
+ if (options.getShadowRoot) {
15101
+ candidates = getCandidatesIteratively([el], options.includeContainer, {
15102
+ filter: isNodeMatchingSelectorFocusable.bind(null, options),
15103
+ flatten: true,
15104
+ getShadowRoot: options.getShadowRoot
15105
+ });
15106
+ } else {
15107
+ candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
15108
+ }
15109
+ return candidates;
15110
+ };
15111
+ var isTabbable = function isTabbable(node, options) {
15112
+ options = options || {};
15113
+ if (!node) {
15114
+ throw new Error('No node provided');
15115
+ }
15116
+ if (matches.call(node, candidateSelector) === false) {
15117
+ return false;
15118
+ }
15119
+ return isNodeMatchingSelectorTabbable(options, node);
15120
+ };
15121
+ var focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');
15122
+ var isFocusable = function isFocusable(node, options) {
15123
+ options = options || {};
15124
+ if (!node) {
15125
+ throw new Error('No node provided');
15126
+ }
15127
+ if (matches.call(node, focusableCandidateSelector) === false) {
15128
+ return false;
15129
+ }
15130
+ return isNodeMatchingSelectorFocusable(options, node);
15131
+ };
15132
+
15133
+
15134
+ /* Injected with object hook! */
15135
+
15136
+ /*!
15137
+ * focus-trap 7.4.3
15138
+ * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
15139
+ */
15140
+
15141
+ function ownKeys(object, enumerableOnly) {
15142
+ var keys = Object.keys(object);
15143
+ if (Object.getOwnPropertySymbols) {
15144
+ var symbols = Object.getOwnPropertySymbols(object);
15145
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
15146
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
15147
+ })), keys.push.apply(keys, symbols);
15148
+ }
15149
+ return keys;
15150
+ }
15151
+ function _objectSpread2(target) {
15152
+ for (var i = 1; i < arguments.length; i++) {
15153
+ var source = null != arguments[i] ? arguments[i] : {};
15154
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
15155
+ _defineProperty(target, key, source[key]);
15156
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
15157
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
15158
+ });
15159
+ }
15160
+ return target;
15161
+ }
15162
+ function _defineProperty(obj, key, value) {
15163
+ key = _toPropertyKey(key);
15164
+ if (key in obj) {
15165
+ Object.defineProperty(obj, key, {
15166
+ value: value,
15167
+ enumerable: true,
15168
+ configurable: true,
15169
+ writable: true
15170
+ });
15171
+ } else {
15172
+ obj[key] = value;
15173
+ }
15174
+ return obj;
15175
+ }
15176
+ function _toPrimitive(input, hint) {
15177
+ if (typeof input !== "object" || input === null) return input;
15178
+ var prim = input[Symbol.toPrimitive];
15179
+ if (prim !== undefined) {
15180
+ var res = prim.call(input, hint || "default");
15181
+ if (typeof res !== "object") return res;
15182
+ throw new TypeError("@@toPrimitive must return a primitive value.");
15183
+ }
15184
+ return (hint === "string" ? String : Number)(input);
15185
+ }
15186
+ function _toPropertyKey(arg) {
15187
+ var key = _toPrimitive(arg, "string");
15188
+ return typeof key === "symbol" ? key : String(key);
15189
+ }
15190
+
15191
+ var activeFocusTraps = {
15192
+ activateTrap: function activateTrap(trapStack, trap) {
15193
+ if (trapStack.length > 0) {
15194
+ var activeTrap = trapStack[trapStack.length - 1];
15195
+ if (activeTrap !== trap) {
15196
+ activeTrap.pause();
15197
+ }
15198
+ }
15199
+ var trapIndex = trapStack.indexOf(trap);
15200
+ if (trapIndex === -1) {
15201
+ trapStack.push(trap);
15202
+ } else {
15203
+ // move this existing trap to the front of the queue
15204
+ trapStack.splice(trapIndex, 1);
15205
+ trapStack.push(trap);
15206
+ }
15207
+ },
15208
+ deactivateTrap: function deactivateTrap(trapStack, trap) {
15209
+ var trapIndex = trapStack.indexOf(trap);
15210
+ if (trapIndex !== -1) {
15211
+ trapStack.splice(trapIndex, 1);
15212
+ }
15213
+ if (trapStack.length > 0) {
15214
+ trapStack[trapStack.length - 1].unpause();
15215
+ }
15216
+ }
15217
+ };
15218
+ var isSelectableInput = function isSelectableInput(node) {
15219
+ return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';
15220
+ };
15221
+ var isEscapeEvent = function isEscapeEvent(e) {
15222
+ return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;
15223
+ };
15224
+ var isTabEvent = function isTabEvent(e) {
15225
+ return e.key === 'Tab' || e.keyCode === 9;
15226
+ };
15227
+
15228
+ // checks for TAB by default
15229
+ var isKeyForward = function isKeyForward(e) {
15230
+ return isTabEvent(e) && !e.shiftKey;
15231
+ };
15232
+
15233
+ // checks for SHIFT+TAB by default
15234
+ var isKeyBackward = function isKeyBackward(e) {
15235
+ return isTabEvent(e) && e.shiftKey;
15236
+ };
15237
+ var delay = function delay(fn) {
15238
+ return setTimeout(fn, 0);
15239
+ };
15240
+
15241
+ // Array.find/findIndex() are not supported on IE; this replicates enough
15242
+ // of Array.findIndex() for our needs
15243
+ var findIndex = function findIndex(arr, fn) {
15244
+ var idx = -1;
15245
+ arr.every(function (value, i) {
15246
+ if (fn(value)) {
15247
+ idx = i;
15248
+ return false; // break
15249
+ }
15250
+
15251
+ return true; // next
15252
+ });
15253
+
15254
+ return idx;
15255
+ };
15256
+
15257
+ /**
15258
+ * Get an option's value when it could be a plain value, or a handler that provides
15259
+ * the value.
15260
+ * @param {*} value Option's value to check.
15261
+ * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.
15262
+ * @returns {*} The `value`, or the handler's returned value.
15263
+ */
15264
+ var valueOrHandler = function valueOrHandler(value) {
15265
+ for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
15266
+ params[_key - 1] = arguments[_key];
15267
+ }
15268
+ return typeof value === 'function' ? value.apply(void 0, params) : value;
15269
+ };
15270
+ var getActualTarget = function getActualTarget(event) {
15271
+ // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the
15272
+ // shadow host. However, event.target.composedPath() will be an array of
15273
+ // nodes "clicked" from inner-most (the actual element inside the shadow) to
15274
+ // outer-most (the host HTML document). If we have access to composedPath(),
15275
+ // then use its first element; otherwise, fall back to event.target (and
15276
+ // this only works for an _open_ shadow DOM; otherwise,
15277
+ // composedPath()[0] === event.target always).
15278
+ return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;
15279
+ };
15280
+
15281
+ // NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this
15282
+ // current instance use the same stack if `userOptions.trapStack` isn't specified
15283
+ var internalTrapStack = [];
15284
+ var createFocusTrap = function createFocusTrap(elements, userOptions) {
15285
+ // SSR: a live trap shouldn't be created in this type of environment so this
15286
+ // should be safe code to execute if the `document` option isn't specified
15287
+ var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;
15288
+ var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;
15289
+ var config = _objectSpread2({
15290
+ returnFocusOnDeactivate: true,
15291
+ escapeDeactivates: true,
15292
+ delayInitialFocus: true,
15293
+ isKeyForward: isKeyForward,
15294
+ isKeyBackward: isKeyBackward
15295
+ }, userOptions);
15296
+ var state = {
15297
+ // containers given to createFocusTrap()
15298
+ // @type {Array<HTMLElement>}
15299
+ containers: [],
15300
+ // list of objects identifying tabbable nodes in `containers` in the trap
15301
+ // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap
15302
+ // is active, but the trap should never get to a state where there isn't at least one group
15303
+ // with at least one tabbable node in it (that would lead to an error condition that would
15304
+ // result in an error being thrown)
15305
+ // @type {Array<{
15306
+ // container: HTMLElement,
15307
+ // tabbableNodes: Array<HTMLElement>, // empty if none
15308
+ // focusableNodes: Array<HTMLElement>, // empty if none
15309
+ // firstTabbableNode: HTMLElement|null,
15310
+ // lastTabbableNode: HTMLElement|null,
15311
+ // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined
15312
+ // }>}
15313
+ containerGroups: [],
15314
+ // same order/length as `containers` list
15315
+
15316
+ // references to objects in `containerGroups`, but only those that actually have
15317
+ // tabbable nodes in them
15318
+ // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__
15319
+ // the same length
15320
+ tabbableGroups: [],
15321
+ nodeFocusedBeforeActivation: null,
15322
+ mostRecentlyFocusedNode: null,
15323
+ active: false,
15324
+ paused: false,
15325
+ // timer ID for when delayInitialFocus is true and initial focus in this trap
15326
+ // has been delayed during activation
15327
+ delayInitialFocusTimer: undefined
15328
+ };
15329
+ var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later
15330
+
15331
+ /**
15332
+ * Gets a configuration option value.
15333
+ * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,
15334
+ * value will be taken from this object. Otherwise, value will be taken from base configuration.
15335
+ * @param {string} optionName Name of the option whose value is sought.
15336
+ * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`
15337
+ * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.
15338
+ */
15339
+ var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {
15340
+ return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];
15341
+ };
15342
+
15343
+ /**
15344
+ * Finds the index of the container that contains the element.
15345
+ * @param {HTMLElement} element
15346
+ * @param {Event} [event]
15347
+ * @returns {number} Index of the container in either `state.containers` or
15348
+ * `state.containerGroups` (the order/length of these lists are the same); -1
15349
+ * if the element isn't found.
15350
+ */
15351
+ var findContainerIndex = function findContainerIndex(element, event) {
15352
+ var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;
15353
+ // NOTE: search `containerGroups` because it's possible a group contains no tabbable
15354
+ // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)
15355
+ // and we still need to find the element in there
15356
+ return state.containerGroups.findIndex(function (_ref) {
15357
+ var container = _ref.container,
15358
+ tabbableNodes = _ref.tabbableNodes;
15359
+ return container.contains(element) || ( // fall back to explicit tabbable search which will take into consideration any
15360
+ // web components if the `tabbableOptions.getShadowRoot` option was used for
15361
+ // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't
15362
+ // look inside web components even if open)
15363
+ composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {
15364
+ return node === element;
15365
+ });
15366
+ });
15367
+ };
15368
+
15369
+ /**
15370
+ * Gets the node for the given option, which is expected to be an option that
15371
+ * can be either a DOM node, a string that is a selector to get a node, `false`
15372
+ * (if a node is explicitly NOT given), or a function that returns any of these
15373
+ * values.
15374
+ * @param {string} optionName
15375
+ * @returns {undefined | false | HTMLElement | SVGElement} Returns
15376
+ * `undefined` if the option is not specified; `false` if the option
15377
+ * resolved to `false` (node explicitly not given); otherwise, the resolved
15378
+ * DOM node.
15379
+ * @throws {Error} If the option is set, not `false`, and is not, or does not
15380
+ * resolve to a node.
15381
+ */
15382
+ var getNodeForOption = function getNodeForOption(optionName) {
15383
+ var optionValue = config[optionName];
15384
+ if (typeof optionValue === 'function') {
15385
+ for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
15386
+ params[_key2 - 1] = arguments[_key2];
15387
+ }
15388
+ optionValue = optionValue.apply(void 0, params);
15389
+ }
15390
+ if (optionValue === true) {
15391
+ optionValue = undefined; // use default value
15392
+ }
15393
+
15394
+ if (!optionValue) {
15395
+ if (optionValue === undefined || optionValue === false) {
15396
+ return optionValue;
15397
+ }
15398
+ // else, empty string (invalid), null (invalid), 0 (invalid)
15399
+
15400
+ throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node"));
15401
+ }
15402
+ var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point
15403
+
15404
+ if (typeof optionValue === 'string') {
15405
+ node = doc.querySelector(optionValue); // resolve to node, or null if fails
15406
+ if (!node) {
15407
+ throw new Error("`".concat(optionName, "` as selector refers to no known node"));
15408
+ }
15409
+ }
15410
+ return node;
15411
+ };
15412
+ var getInitialFocusNode = function getInitialFocusNode() {
15413
+ var node = getNodeForOption('initialFocus');
15414
+
15415
+ // false explicitly indicates we want no initialFocus at all
15416
+ if (node === false) {
15417
+ return false;
15418
+ }
15419
+ if (node === undefined || !isFocusable(node, config.tabbableOptions)) {
15420
+ // option not specified nor focusable: use fallback options
15421
+ if (findContainerIndex(doc.activeElement) >= 0) {
15422
+ node = doc.activeElement;
15423
+ } else {
15424
+ var firstTabbableGroup = state.tabbableGroups[0];
15425
+ var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;
15426
+
15427
+ // NOTE: `fallbackFocus` option function cannot return `false` (not supported)
15428
+ node = firstTabbableNode || getNodeForOption('fallbackFocus');
15429
+ }
15430
+ }
15431
+ if (!node) {
15432
+ throw new Error('Your focus-trap needs to have at least one focusable element');
15433
+ }
15434
+ return node;
15435
+ };
15436
+ var updateTabbableNodes = function updateTabbableNodes() {
15437
+ state.containerGroups = state.containers.map(function (container) {
15438
+ var tabbableNodes = tabbable(container, config.tabbableOptions);
15439
+
15440
+ // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes
15441
+ // are a superset of tabbable nodes
15442
+ var focusableNodes = focusable(container, config.tabbableOptions);
15443
+ return {
15444
+ container: container,
15445
+ tabbableNodes: tabbableNodes,
15446
+ focusableNodes: focusableNodes,
15447
+ firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,
15448
+ lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,
15449
+ /**
15450
+ * Finds the __tabbable__ node that follows the given node in the specified direction,
15451
+ * in this container, if any.
15452
+ * @param {HTMLElement} node
15453
+ * @param {boolean} [forward] True if going in forward tab order; false if going
15454
+ * in reverse.
15455
+ * @returns {HTMLElement|undefined} The next tabbable node, if any.
15456
+ */
15457
+ nextTabbableNode: function nextTabbableNode(node) {
15458
+ var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
15459
+ // NOTE: If tabindex is positive (in order to manipulate the tab order separate
15460
+ // from the DOM order), this __will not work__ because the list of focusableNodes,
15461
+ // while it contains tabbable nodes, does not sort its nodes in any order other
15462
+ // than DOM order, because it can't: Where would you place focusable (but not
15463
+ // tabbable) nodes in that order? They have no order, because they aren't tabbale...
15464
+ // Support for positive tabindex is already broken and hard to manage (possibly
15465
+ // not supportable, TBD), so this isn't going to make things worse than they
15466
+ // already are, and at least makes things better for the majority of cases where
15467
+ // tabindex is either 0/unset or negative.
15468
+ // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375
15469
+ var nodeIdx = focusableNodes.findIndex(function (n) {
15470
+ return n === node;
15471
+ });
15472
+ if (nodeIdx < 0) {
15473
+ return undefined;
15474
+ }
15475
+ if (forward) {
15476
+ return focusableNodes.slice(nodeIdx + 1).find(function (n) {
15477
+ return isTabbable(n, config.tabbableOptions);
15478
+ });
15479
+ }
15480
+ return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {
15481
+ return isTabbable(n, config.tabbableOptions);
15482
+ });
15483
+ }
15484
+ };
15485
+ });
15486
+ state.tabbableGroups = state.containerGroups.filter(function (group) {
15487
+ return group.tabbableNodes.length > 0;
15488
+ });
15489
+
15490
+ // throw if no groups have tabbable nodes and we don't have a fallback focus node either
15491
+ if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option
15492
+ ) {
15493
+ throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');
15494
+ }
15495
+ };
15496
+ var tryFocus = function tryFocus(node) {
15497
+ if (node === false) {
15498
+ return;
15499
+ }
15500
+ if (node === doc.activeElement) {
15501
+ return;
15502
+ }
15503
+ if (!node || !node.focus) {
15504
+ tryFocus(getInitialFocusNode());
15505
+ return;
15506
+ }
15507
+ node.focus({
15508
+ preventScroll: !!config.preventScroll
15509
+ });
15510
+ state.mostRecentlyFocusedNode = node;
15511
+ if (isSelectableInput(node)) {
15512
+ node.select();
15513
+ }
15514
+ };
15515
+ var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {
15516
+ var node = getNodeForOption('setReturnFocus', previousActiveElement);
15517
+ return node ? node : node === false ? false : previousActiveElement;
15518
+ };
15519
+
15520
+ // This needs to be done on mousedown and touchstart instead of click
15521
+ // so that it precedes the focus event.
15522
+ var checkPointerDown = function checkPointerDown(e) {
15523
+ var target = getActualTarget(e);
15524
+ if (findContainerIndex(target, e) >= 0) {
15525
+ // allow the click since it ocurred inside the trap
15526
+ return;
15527
+ }
15528
+ if (valueOrHandler(config.clickOutsideDeactivates, e)) {
15529
+ // immediately deactivate the trap
15530
+ trap.deactivate({
15531
+ // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,
15532
+ // which will result in the outside click setting focus to the node
15533
+ // that was clicked (and if not focusable, to "nothing"); by setting
15534
+ // `returnFocus: true`, we'll attempt to re-focus the node originally-focused
15535
+ // on activation (or the configured `setReturnFocus` node), whether the
15536
+ // outside click was on a focusable node or not
15537
+ returnFocus: config.returnFocusOnDeactivate
15538
+ });
15539
+ return;
15540
+ }
15541
+
15542
+ // This is needed for mobile devices.
15543
+ // (If we'll only let `click` events through,
15544
+ // then on mobile they will be blocked anyways if `touchstart` is blocked.)
15545
+ if (valueOrHandler(config.allowOutsideClick, e)) {
15546
+ // allow the click outside the trap to take place
15547
+ return;
15548
+ }
15549
+
15550
+ // otherwise, prevent the click
15551
+ e.preventDefault();
15552
+ };
15553
+
15554
+ // In case focus escapes the trap for some strange reason, pull it back in.
15555
+ var checkFocusIn = function checkFocusIn(e) {
15556
+ var target = getActualTarget(e);
15557
+ var targetContained = findContainerIndex(target, e) >= 0;
15558
+
15559
+ // In Firefox when you Tab out of an iframe the Document is briefly focused.
15560
+ if (targetContained || target instanceof Document) {
15561
+ if (targetContained) {
15562
+ state.mostRecentlyFocusedNode = target;
15563
+ }
15564
+ } else {
15565
+ // escaped! pull it back in to where it just left
15566
+ e.stopImmediatePropagation();
15567
+ tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
15568
+ }
15569
+ };
15570
+
15571
+ // Hijack key nav events on the first and last focusable nodes of the trap,
15572
+ // in order to prevent focus from escaping. If it escapes for even a
15573
+ // moment it can end up scrolling the page and causing confusion so we
15574
+ // kind of need to capture the action at the keydown phase.
15575
+ var checkKeyNav = function checkKeyNav(event) {
15576
+ var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
15577
+ var target = getActualTarget(event);
15578
+ updateTabbableNodes();
15579
+ var destinationNode = null;
15580
+ if (state.tabbableGroups.length > 0) {
15581
+ // make sure the target is actually contained in a group
15582
+ // NOTE: the target may also be the container itself if it's focusable
15583
+ // with tabIndex='-1' and was given initial focus
15584
+ var containerIndex = findContainerIndex(target, event);
15585
+ var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;
15586
+ if (containerIndex < 0) {
15587
+ // target not found in any group: quite possible focus has escaped the trap,
15588
+ // so bring it back into...
15589
+ if (isBackward) {
15590
+ // ...the last node in the last group
15591
+ destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;
15592
+ } else {
15593
+ // ...the first node in the first group
15594
+ destinationNode = state.tabbableGroups[0].firstTabbableNode;
15595
+ }
15596
+ } else if (isBackward) {
15597
+ // REVERSE
15598
+
15599
+ // is the target the first tabbable node in a group?
15600
+ var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {
15601
+ var firstTabbableNode = _ref2.firstTabbableNode;
15602
+ return target === firstTabbableNode;
15603
+ });
15604
+ if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {
15605
+ // an exception case where the target is either the container itself, or
15606
+ // a non-tabbable node that was given focus (i.e. tabindex is negative
15607
+ // and user clicked on it or node was programmatically given focus)
15608
+ // and is not followed by any other tabbable node, in which
15609
+ // case, we should handle shift+tab as if focus were on the container's
15610
+ // first tabbable node, and go to the last tabbable node of the LAST group
15611
+ startOfGroupIndex = containerIndex;
15612
+ }
15613
+ if (startOfGroupIndex >= 0) {
15614
+ // YES: then shift+tab should go to the last tabbable node in the
15615
+ // previous group (and wrap around to the last tabbable node of
15616
+ // the LAST group if it's the first tabbable node of the FIRST group)
15617
+ var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;
15618
+ var destinationGroup = state.tabbableGroups[destinationGroupIndex];
15619
+ destinationNode = destinationGroup.lastTabbableNode;
15620
+ } else if (!isTabEvent(event)) {
15621
+ // user must have customized the nav keys so we have to move focus manually _within_
15622
+ // the active group: do this based on the order determined by tabbable()
15623
+ destinationNode = containerGroup.nextTabbableNode(target, false);
15624
+ }
15625
+ } else {
15626
+ // FORWARD
15627
+
15628
+ // is the target the last tabbable node in a group?
15629
+ var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {
15630
+ var lastTabbableNode = _ref3.lastTabbableNode;
15631
+ return target === lastTabbableNode;
15632
+ });
15633
+ if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {
15634
+ // an exception case where the target is the container itself, or
15635
+ // a non-tabbable node that was given focus (i.e. tabindex is negative
15636
+ // and user clicked on it or node was programmatically given focus)
15637
+ // and is not followed by any other tabbable node, in which
15638
+ // case, we should handle tab as if focus were on the container's
15639
+ // last tabbable node, and go to the first tabbable node of the FIRST group
15640
+ lastOfGroupIndex = containerIndex;
15641
+ }
15642
+ if (lastOfGroupIndex >= 0) {
15643
+ // YES: then tab should go to the first tabbable node in the next
15644
+ // group (and wrap around to the first tabbable node of the FIRST
15645
+ // group if it's the last tabbable node of the LAST group)
15646
+ var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;
15647
+ var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];
15648
+ destinationNode = _destinationGroup.firstTabbableNode;
15649
+ } else if (!isTabEvent(event)) {
15650
+ // user must have customized the nav keys so we have to move focus manually _within_
15651
+ // the active group: do this based on the order determined by tabbable()
15652
+ destinationNode = containerGroup.nextTabbableNode(target);
15653
+ }
15654
+ }
15655
+ } else {
15656
+ // no groups available
15657
+ // NOTE: the fallbackFocus option does not support returning false to opt-out
15658
+ destinationNode = getNodeForOption('fallbackFocus');
15659
+ }
15660
+ if (destinationNode) {
15661
+ if (isTabEvent(event)) {
15662
+ // since tab natively moves focus, we wouldn't have a destination node unless we
15663
+ // were on the edge of a container and had to move to the next/previous edge, in
15664
+ // which case we want to prevent default to keep the browser from moving focus
15665
+ // to where it normally would
15666
+ event.preventDefault();
15667
+ }
15668
+ tryFocus(destinationNode);
15669
+ }
15670
+ // else, let the browser take care of [shift+]tab and move the focus
15671
+ };
15672
+
15673
+ var checkKey = function checkKey(event) {
15674
+ if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {
15675
+ event.preventDefault();
15676
+ trap.deactivate();
15677
+ return;
15678
+ }
15679
+ if (config.isKeyForward(event) || config.isKeyBackward(event)) {
15680
+ checkKeyNav(event, config.isKeyBackward(event));
15681
+ }
15682
+ };
15683
+ var checkClick = function checkClick(e) {
15684
+ var target = getActualTarget(e);
15685
+ if (findContainerIndex(target, e) >= 0) {
15686
+ return;
15687
+ }
15688
+ if (valueOrHandler(config.clickOutsideDeactivates, e)) {
15689
+ return;
15690
+ }
15691
+ if (valueOrHandler(config.allowOutsideClick, e)) {
15692
+ return;
15693
+ }
15694
+ e.preventDefault();
15695
+ e.stopImmediatePropagation();
15696
+ };
15697
+
15698
+ //
15699
+ // EVENT LISTENERS
15700
+ //
15701
+
15702
+ var addListeners = function addListeners() {
15703
+ if (!state.active) {
15704
+ return;
15705
+ }
15706
+
15707
+ // There can be only one listening focus trap at a time
15708
+ activeFocusTraps.activateTrap(trapStack, trap);
15709
+
15710
+ // Delay ensures that the focused element doesn't capture the event
15711
+ // that caused the focus trap activation.
15712
+ state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {
15713
+ tryFocus(getInitialFocusNode());
15714
+ }) : tryFocus(getInitialFocusNode());
15715
+ doc.addEventListener('focusin', checkFocusIn, true);
15716
+ doc.addEventListener('mousedown', checkPointerDown, {
15717
+ capture: true,
15718
+ passive: false
15719
+ });
15720
+ doc.addEventListener('touchstart', checkPointerDown, {
15721
+ capture: true,
15722
+ passive: false
15723
+ });
15724
+ doc.addEventListener('click', checkClick, {
15725
+ capture: true,
15726
+ passive: false
15727
+ });
15728
+ doc.addEventListener('keydown', checkKey, {
15729
+ capture: true,
15730
+ passive: false
15731
+ });
15732
+ return trap;
15733
+ };
15734
+ var removeListeners = function removeListeners() {
15735
+ if (!state.active) {
15736
+ return;
15737
+ }
15738
+ doc.removeEventListener('focusin', checkFocusIn, true);
15739
+ doc.removeEventListener('mousedown', checkPointerDown, true);
15740
+ doc.removeEventListener('touchstart', checkPointerDown, true);
15741
+ doc.removeEventListener('click', checkClick, true);
15742
+ doc.removeEventListener('keydown', checkKey, true);
15743
+ return trap;
15744
+ };
15745
+
15746
+ //
15747
+ // MUTATION OBSERVER
15748
+ //
15749
+
15750
+ var checkDomRemoval = function checkDomRemoval(mutations) {
15751
+ var isFocusedNodeRemoved = mutations.some(function (mutation) {
15752
+ var removedNodes = Array.from(mutation.removedNodes);
15753
+ return removedNodes.some(function (node) {
15754
+ return node === state.mostRecentlyFocusedNode;
15755
+ });
15756
+ });
15757
+
15758
+ // If the currently focused is removed then browsers will move focus to the
15759
+ // <body> element. If this happens, try to move focus back into the trap.
15760
+ if (isFocusedNodeRemoved) {
15761
+ tryFocus(getInitialFocusNode());
15762
+ }
15763
+ };
15764
+
15765
+ // Use MutationObserver - if supported - to detect if focused node is removed
15766
+ // from the DOM.
15767
+ var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;
15768
+ var updateObservedNodes = function updateObservedNodes() {
15769
+ if (!mutationObserver) {
15770
+ return;
15771
+ }
15772
+ mutationObserver.disconnect();
15773
+ if (state.active && !state.paused) {
15774
+ state.containers.map(function (container) {
15775
+ mutationObserver.observe(container, {
15776
+ subtree: true,
15777
+ childList: true
15778
+ });
15779
+ });
15780
+ }
15781
+ };
15782
+
15783
+ //
15784
+ // TRAP DEFINITION
15785
+ //
15786
+
15787
+ trap = {
15788
+ get active() {
15789
+ return state.active;
15790
+ },
15791
+ get paused() {
15792
+ return state.paused;
15793
+ },
15794
+ activate: function activate(activateOptions) {
15795
+ if (state.active) {
15796
+ return this;
15797
+ }
15798
+ var onActivate = getOption(activateOptions, 'onActivate');
15799
+ var onPostActivate = getOption(activateOptions, 'onPostActivate');
15800
+ var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');
15801
+ if (!checkCanFocusTrap) {
15802
+ updateTabbableNodes();
15803
+ }
15804
+ state.active = true;
15805
+ state.paused = false;
15806
+ state.nodeFocusedBeforeActivation = doc.activeElement;
15807
+ onActivate === null || onActivate === void 0 ? void 0 : onActivate();
15808
+ var finishActivation = function finishActivation() {
15809
+ if (checkCanFocusTrap) {
15810
+ updateTabbableNodes();
15811
+ }
15812
+ addListeners();
15813
+ updateObservedNodes();
15814
+ onPostActivate === null || onPostActivate === void 0 ? void 0 : onPostActivate();
15815
+ };
15816
+ if (checkCanFocusTrap) {
15817
+ checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);
15818
+ return this;
15819
+ }
15820
+ finishActivation();
15821
+ return this;
15822
+ },
15823
+ deactivate: function deactivate(deactivateOptions) {
15824
+ if (!state.active) {
15825
+ return this;
15826
+ }
15827
+ var options = _objectSpread2({
15828
+ onDeactivate: config.onDeactivate,
15829
+ onPostDeactivate: config.onPostDeactivate,
15830
+ checkCanReturnFocus: config.checkCanReturnFocus
15831
+ }, deactivateOptions);
15832
+ clearTimeout(state.delayInitialFocusTimer); // noop if undefined
15833
+ state.delayInitialFocusTimer = undefined;
15834
+ removeListeners();
15835
+ state.active = false;
15836
+ state.paused = false;
15837
+ updateObservedNodes();
15838
+ activeFocusTraps.deactivateTrap(trapStack, trap);
15839
+ var onDeactivate = getOption(options, 'onDeactivate');
15840
+ var onPostDeactivate = getOption(options, 'onPostDeactivate');
15841
+ var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');
15842
+ var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');
15843
+ onDeactivate === null || onDeactivate === void 0 ? void 0 : onDeactivate();
15844
+ var finishDeactivation = function finishDeactivation() {
15845
+ delay(function () {
15846
+ if (returnFocus) {
15847
+ tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
15848
+ }
15849
+ onPostDeactivate === null || onPostDeactivate === void 0 ? void 0 : onPostDeactivate();
15850
+ });
15851
+ };
15852
+ if (returnFocus && checkCanReturnFocus) {
15853
+ checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);
15854
+ return this;
15855
+ }
15856
+ finishDeactivation();
15857
+ return this;
15858
+ },
15859
+ pause: function pause(pauseOptions) {
15860
+ if (state.paused || !state.active) {
15861
+ return this;
15862
+ }
15863
+ var onPause = getOption(pauseOptions, 'onPause');
15864
+ var onPostPause = getOption(pauseOptions, 'onPostPause');
15865
+ state.paused = true;
15866
+ onPause === null || onPause === void 0 ? void 0 : onPause();
15867
+ removeListeners();
15868
+ updateObservedNodes();
15869
+ onPostPause === null || onPostPause === void 0 ? void 0 : onPostPause();
15870
+ return this;
15871
+ },
15872
+ unpause: function unpause(unpauseOptions) {
15873
+ if (!state.paused || !state.active) {
15874
+ return this;
15875
+ }
15876
+ var onUnpause = getOption(unpauseOptions, 'onUnpause');
15877
+ var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');
15878
+ state.paused = false;
15879
+ onUnpause === null || onUnpause === void 0 ? void 0 : onUnpause();
15880
+ updateTabbableNodes();
15881
+ addListeners();
15882
+ updateObservedNodes();
15883
+ onPostUnpause === null || onPostUnpause === void 0 ? void 0 : onPostUnpause();
15884
+ return this;
15885
+ },
15886
+ updateContainerElements: function updateContainerElements(containerElements) {
15887
+ var elementsAsArray = [].concat(containerElements).filter(Boolean);
15888
+ state.containers = elementsAsArray.map(function (element) {
15889
+ return typeof element === 'string' ? doc.querySelector(element) : element;
15890
+ });
15891
+ if (state.active) {
15892
+ updateTabbableNodes();
15893
+ }
15894
+ updateObservedNodes();
15895
+ return this;
15896
+ }
15897
+ };
15898
+
15899
+ // initialize container elements
15900
+ trap.updateContainerElements(elements);
15901
+ return trap;
15902
+ };
15903
+
15904
+
15905
+ /* Injected with object hook! */
15906
+
15907
+ var __defProp = Object.defineProperty;
15908
+ var __defProps = Object.defineProperties;
15909
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
15910
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
15911
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15912
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
15913
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15914
+ var __spreadValues = (a, b) => {
15915
+ for (var prop in b || (b = {}))
15916
+ if (__hasOwnProp.call(b, prop))
15917
+ __defNormalProp(a, prop, b[prop]);
15918
+ if (__getOwnPropSymbols)
15919
+ for (var prop of __getOwnPropSymbols(b)) {
15920
+ if (__propIsEnum.call(b, prop))
15921
+ __defNormalProp(a, prop, b[prop]);
15922
+ }
15923
+ return a;
15924
+ };
15925
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
15926
+ var __objRest = (source, exclude) => {
15927
+ var target = {};
15928
+ for (var prop in source)
15929
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
15930
+ target[prop] = source[prop];
15931
+ if (source != null && __getOwnPropSymbols)
15932
+ for (var prop of __getOwnPropSymbols(source)) {
15933
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
15934
+ target[prop] = source[prop];
15935
+ }
15936
+ return target;
15937
+ };
15938
+ function useFocusTrap(target, options = {}) {
15939
+ let trap;
15940
+ const _a = options, { immediate } = _a, focusTrapOptions = __objRest(_a, ["immediate"]);
15941
+ const hasFocus = ref(false);
15942
+ const isPaused = ref(false);
15943
+ const activate = (opts) => trap && trap.activate(opts);
15944
+ const deactivate = (opts) => trap && trap.deactivate(opts);
15945
+ const pause = () => {
15946
+ if (trap) {
15947
+ trap.pause();
15948
+ isPaused.value = true;
15949
+ }
15950
+ };
15951
+ const unpause = () => {
15952
+ if (trap) {
15953
+ trap.unpause();
15954
+ isPaused.value = false;
15955
+ }
15956
+ };
15957
+ watch(
15958
+ () => unrefElement(target),
15959
+ (el) => {
15960
+ if (!el)
15961
+ return;
15962
+ trap = createFocusTrap(el, __spreadProps(__spreadValues({}, focusTrapOptions), {
15963
+ onActivate() {
15964
+ hasFocus.value = true;
15965
+ if (options.onActivate)
15966
+ options.onActivate();
15967
+ },
15968
+ onDeactivate() {
15969
+ hasFocus.value = false;
15970
+ if (options.onDeactivate)
15971
+ options.onDeactivate();
15972
+ }
15973
+ }));
15974
+ if (immediate)
15975
+ activate();
15976
+ },
15977
+ { flush: "post" }
15978
+ );
15979
+ tryOnScopeDispose(() => deactivate());
15980
+ return {
15981
+ hasFocus,
15982
+ isPaused,
15983
+ activate,
15984
+ deactivate,
15985
+ pause,
15986
+ unpause
15987
+ };
15988
+ }
15989
+
15990
+ /* Injected with object hook! */
15991
+
15992
+ const __default__ = {
15993
+ inheritAttrs: false
15994
+ };
15995
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
15996
+ ...__default__,
15997
+ __name: "VDialog",
15998
+ props: {
15999
+ modelValue: { type: Boolean, default: false },
16000
+ dim: { type: Boolean, default: true }
16001
+ },
16002
+ emits: ["close", "update:modelValue"],
16003
+ setup(__props, { emit }) {
16004
+ const props = __props;
16005
+ const show = useVModel(props, "modelValue", emit, { passive: true });
16006
+ const card = ref(null);
16007
+ const shown = ref(false);
16008
+ const { activate, deactivate } = useFocusTrap(computed(() => card.value || document.body), { immediate: false });
16009
+ watchEffect(
16010
+ () => {
16011
+ if (!shown.value && show.value)
16012
+ shown.value = true;
16013
+ if (show.value && card.value)
16014
+ nextTick(activate);
16015
+ else
16016
+ deactivate();
16017
+ }
16018
+ );
16019
+ function close() {
16020
+ show.value = false;
16021
+ emit("close");
16022
+ }
16023
+ return (_ctx, _cache) => {
16024
+ const _component_VCard = __unplugin_components_7;
16025
+ return shown.value ? (openBlock(), createBlock(Teleport, {
16026
+ key: 0,
16027
+ to: "body"
16028
+ }, [
16029
+ withDirectives(createBaseVNode("div", {
16030
+ class: normalizeClass(["n-dialog fixed inset-0 z-100 flex items-center justify-center n-transition", [
16031
+ unref(show) ? "" : "op0 pointer-events-none visibility-none"
16032
+ ]])
16033
+ }, [
16034
+ createBaseVNode("div", {
16035
+ class: normalizeClass(["absolute inset-0 -z-1", [
16036
+ _ctx.dim ? "bg-black/50" : ""
16037
+ ]]),
16038
+ onClick: _cache[0] || (_cache[0] = ($event) => close())
16039
+ }, null, 2),
16040
+ createVNode(_component_VCard, mergeProps(_ctx.$attrs, {
16041
+ ref_key: "card",
16042
+ ref: card,
16043
+ class: "max-h-screen of-auto"
16044
+ }), {
16045
+ default: withCtx(() => [
16046
+ renderSlot(_ctx.$slots, "default")
16047
+ ]),
16048
+ _: 3
16049
+ }, 16)
16050
+ ], 2), [
16051
+ [vShow, unref(show)]
16052
+ ])
16053
+ ])) : createCommentVNode("", true);
16054
+ };
16055
+ }
16056
+ });
16057
+
16058
+ /* Injected with object hook! */
16059
+
16060
+ function useSingleton() {
16061
+ const key = Symbol("singleton");
16062
+ return [
16063
+ function provide(v) {
16064
+ const vm = getCurrentInstance();
16065
+ vm?.appContext.app.provide(key, v);
16066
+ },
16067
+ function use(fallback) {
16068
+ return inject(key, fallback);
16069
+ }
16070
+ ];
16071
+ }
16072
+ const [
16073
+ provideNotification,
16074
+ useNotification
16075
+ ] = useSingleton();
16076
+
16077
+ /* Injected with object hook! */
16078
+
16079
+ function useCopy() {
16080
+ const clipboard = useClipboard();
16081
+ const showNotification = useNotification();
16082
+ return (text) => {
16083
+ clipboard.copy(text);
16084
+ showNotification("Copied to clipboard", "i-carbon-checkmark");
16085
+ };
16086
+ }
16087
+
16088
+ /* Injected with object hook! */
16089
+
16090
+ const _hoisted_1$3 = {
16091
+ flex: "~ gap-1",
16092
+ "text-lg": ""
16093
+ };
16094
+ const _hoisted_2$3 = ["onClick"];
16095
+ const _hoisted_3$2 = /* @__PURE__ */ createBaseVNode("h1", { "text-3xl": "" }, " Popup is not Supported ", -1);
16096
+ const _hoisted_4$2 = /* @__PURE__ */ createBaseVNode("p", null, [
16097
+ /* @__PURE__ */ createTextVNode(" To popup the DevTools, it requires the "),
16098
+ /* @__PURE__ */ createBaseVNode("a", {
16099
+ href: "https://developer.chrome.com/docs/web-platform/document-picture-in-picture/",
16100
+ target: "_blank",
16101
+ "font-bold": "",
16102
+ underline: ""
16103
+ }, "Document Picture-in-Picture API"),
16104
+ /* @__PURE__ */ createTextVNode(" which is currently in experimental state. ")
16105
+ ], -1);
16106
+ const _hoisted_5$2 = /* @__PURE__ */ createBaseVNode("p", null, [
16107
+ /* @__PURE__ */ createTextVNode(" As June 2023, the API is only available in Chrome 111 and above, under a flag "),
16108
+ /* @__PURE__ */ createBaseVNode("code", null, "#document-picture-in-picture-api"),
16109
+ /* @__PURE__ */ createTextVNode(". ")
16110
+ ], -1);
16111
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
16112
+ __name: "PanelPosition",
16113
+ setup(__props) {
16114
+ const { position: _position } = useFrameState();
16115
+ const frameState = computed(() => ({ position: _position.value }));
16116
+ const client = useDevtoolsClient();
16117
+ const showPopupUnsupported = ref(false);
16118
+ const copy = useCopy();
16119
+ const dockButton = [
16120
+ {
16121
+ position: "popup",
16122
+ icon: "i-carbon-launch"
16123
+ },
16124
+ {
16125
+ position: "bottom",
16126
+ icon: "i-carbon-open-panel-filled-bottom"
16127
+ },
16128
+ {
16129
+ position: "right",
16130
+ icon: "i-carbon-open-panel-filled-right"
16131
+ },
16132
+ {
16133
+ position: "left",
16134
+ icon: "i-carbon-open-panel-filled-left"
16135
+ },
16136
+ {
16137
+ position: "top",
16138
+ icon: "i-carbon-open-panel-filled-top"
16139
+ }
16140
+ ];
16141
+ function toggle(position) {
16142
+ if (position === "popup") {
16143
+ if (!window.parent.documentPictureInPicture?.requestWindow) {
16144
+ showPopupUnsupported.value = true;
16145
+ return;
16146
+ }
16147
+ } else {
16148
+ _position.value = position;
16149
+ }
16150
+ client.value?.panel?.togglePosition(position);
16151
+ }
16152
+ return (_ctx, _cache) => {
16153
+ const _component_VButton = _sfc_main$d;
16154
+ const _component_VDialog = _sfc_main$5;
16155
+ return openBlock(), createElementBlock(Fragment, null, [
16156
+ createBaseVNode("div", _hoisted_1$3, [
16157
+ (openBlock(), createElementBlock(Fragment, null, renderList(dockButton, (item) => {
16158
+ return createBaseVNode("button", {
16159
+ key: item.position,
16160
+ class: normalizeClass([unref(frameState).position === item.position ? "text-primary" : "op50", item.icon]),
16161
+ onClick: ($event) => toggle(item.position)
16162
+ }, null, 10, _hoisted_2$3);
16163
+ }), 64))
16164
+ ]),
16165
+ createVNode(_component_VDialog, {
16166
+ modelValue: unref(showPopupUnsupported),
16167
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => isRef(showPopupUnsupported) ? showPopupUnsupported.value = $event : null),
16168
+ class: "popup-dialog z-2000 max-w-150 p6 pt-2",
16169
+ onClose: _cache[3] || (_cache[3] = ($event) => showPopupUnsupported.value = false)
16170
+ }, {
16171
+ default: withCtx(() => [
16172
+ _hoisted_3$2,
16173
+ _hoisted_4$2,
16174
+ _hoisted_5$2,
16175
+ createBaseVNode("p", null, [
16176
+ createTextVNode(" Your current browser does not seem to support the API, or the flag is not enabled yet. You can try enabling the flag by visiting "),
16177
+ createVNode(_component_VButton, {
16178
+ n: "xs primary",
16179
+ title: "Click to Copy",
16180
+ onClick: _cache[0] || (_cache[0] = ($event) => unref(copy)("chrome://flags/#document-picture-in-picture-api"))
16181
+ }, {
16182
+ default: withCtx(() => [
16183
+ createTextVNode(" chrome://flags/#document-picture-in-picture-api ")
16184
+ ]),
16185
+ _: 1
16186
+ }),
16187
+ createTextVNode(" and restart the browser. ")
16188
+ ]),
16189
+ createBaseVNode("div", null, [
16190
+ createVNode(_component_VButton, {
16191
+ onClick: _cache[1] || (_cache[1] = ($event) => showPopupUnsupported.value = false)
16192
+ }, {
16193
+ default: withCtx(() => [
16194
+ createTextVNode(" Close ")
16195
+ ]),
16196
+ _: 1
16197
+ })
16198
+ ])
16199
+ ]),
16200
+ _: 1
16201
+ }, 8, ["modelValue"])
16202
+ ], 64);
16203
+ };
16204
+ }
16205
+ });
16206
+
16207
+ /* Injected with object hook! */
16208
+
16209
+ const isInPopup = !!window.parent.__VUE_DEVTOOLS_IS_POPUP__;
16210
+
16211
+ /* Injected with object hook! */
16212
+
16213
+ const _hoisted_1$2 = {
16214
+ key: 0,
16215
+ px3: "",
16216
+ py2: "",
16217
+ border: "b base",
16218
+ flex: "~ col gap-1"
16219
+ };
16220
+ const _hoisted_2$2 = /* @__PURE__ */ createBaseVNode("div", {
16221
+ "text-sm": "",
16222
+ op50: ""
16223
+ }, " Dock devtools to ", -1);
16224
+ const _hoisted_3$1 = {
16225
+ px3: "",
16226
+ py2: "",
16227
+ border: "b base",
16228
+ flex: "~ gap-2"
16229
+ };
16230
+ const _hoisted_4$1 = /* @__PURE__ */ createBaseVNode("div", {
16231
+ "carbon-sun": "",
16232
+ "translate-y--1px": "",
16233
+ "dark:carbon-moon": ""
16234
+ }, null, -1);
16235
+ const _hoisted_5$1 = /* @__PURE__ */ createBaseVNode("div", {
16236
+ "carbon-settings": "",
16237
+ "translate-y--1px": ""
16238
+ }, null, -1);
16239
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
16240
+ __name: "DockingPanel",
16241
+ setup(__props) {
16242
+ return (_ctx, _cache) => {
16243
+ const _component_PanelPosition = _sfc_main$4;
16244
+ const _component_VButton = _sfc_main$d;
16245
+ const _component_VDarkToggle = _sfc_main$7;
16246
+ const _component_RouterLink = resolveComponent("RouterLink");
16247
+ return openBlock(), createElementBlock("div", null, [
16248
+ !unref(isInPopup) ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
16249
+ _hoisted_2$2,
16250
+ createVNode(_component_PanelPosition)
16251
+ ])) : createCommentVNode("", true),
16252
+ createBaseVNode("div", _hoisted_3$1, [
16253
+ createVNode(_component_VDarkToggle, null, {
16254
+ default: withCtx(({ toggle, isDark }) => [
16255
+ createVNode(_component_VButton, {
16256
+ n: "sm primary",
16257
+ onClick: toggle
16258
+ }, {
16259
+ default: withCtx(() => [
16260
+ _hoisted_4$1,
16261
+ createTextVNode(" " + toDisplayString(isDark.value ? "Dark" : "Light"), 1)
16262
+ ]),
16263
+ _: 2
16264
+ }, 1032, ["onClick"])
16265
+ ]),
16266
+ _: 1
16267
+ }),
16268
+ createVNode(_component_RouterLink, {
16269
+ replace: "",
16270
+ class: "n-button-base active:n-button-active focus-visible:n-focus-base n-transition n-primary n-sm hover:n-button-hover n-disabled:n-disabled",
16271
+ to: "/settings"
16272
+ }, {
16273
+ default: withCtx(() => [
16274
+ _hoisted_5$1,
16275
+ createTextVNode(" Settings ")
16276
+ ]),
16277
+ _: 1
16278
+ })
16279
+ ])
16280
+ ]);
16281
+ };
16282
+ }
16283
+ });
16284
+
16285
+ /* Injected with object hook! */
16286
+
16287
+ const devToolsSettings = useLocalStorage("__vue-devtools-settings__", {
16288
+ scale: 1,
16289
+ hiddenTabs: [],
16290
+ hiddenTabCategories: []
16291
+ }, { mergeDefaults: true });
16292
+ const devToolsSettingsRefs = toRefs(devToolsSettings);
16293
+ function useDevToolsSettings() {
16294
+ return devToolsSettingsRefs;
16295
+ }
16296
+
16297
+ /* Injected with object hook! */
16298
+
16299
+ const builtinTabs = [
16300
+ {
16301
+ path: "overview",
16302
+ title: "Overview",
16303
+ icon: "i-carbon-information"
16304
+ },
16305
+ {
16306
+ path: "pages",
16307
+ title: "Pages",
16308
+ icon: "i-carbon-tree-view-alt"
16309
+ },
16310
+ {
16311
+ path: "components",
16312
+ title: "Components",
16313
+ icon: "i-carbon-assembly-cluster"
16314
+ },
16315
+ {
16316
+ path: "assets",
16317
+ title: "Assets",
16318
+ icon: "i-carbon-image-copy"
16319
+ },
16320
+ {
16321
+ path: "routes",
16322
+ title: "Routes",
16323
+ icon: "mdi:location-path",
16324
+ category: "modules"
16325
+ },
16326
+ {
16327
+ path: "pinia",
16328
+ title: "Pinia",
16329
+ icon: "icon-park-outline:pineapple",
16330
+ category: "modules"
16331
+ },
16332
+ {
16333
+ path: "timeline",
16334
+ title: "Timeline",
16335
+ icon: "i-icon-park-outline:vertical-timeline"
16336
+ },
16337
+ {
16338
+ title: "Inspector",
16339
+ icon: "i-carbon-select-window",
16340
+ category: "advanced",
16341
+ event: (client, router) => {
16342
+ router.replace("/__inspecting");
16343
+ client?.inspector?.enable();
16344
+ }
16345
+ },
16346
+ {
16347
+ title: "EyeDropper",
16348
+ icon: "i-mdi:eyedropper",
16349
+ category: "advanced",
16350
+ event: (client, router) => {
16351
+ router.replace("/__eyedropper");
16352
+ client.panel?.toggleViewMode("xs");
16353
+ }
16354
+ },
16355
+ {
16356
+ path: "component-docs",
16357
+ title: "Component docs",
16358
+ icon: "i-carbon-document-preliminary",
16359
+ category: "advanced"
16360
+ },
16361
+ {
16362
+ path: "npm",
16363
+ title: "Search packages",
16364
+ icon: "i-teenyicons:npm-outline",
16365
+ category: "advanced"
16366
+ },
16367
+ {
16368
+ path: "graph",
16369
+ title: "Graph",
16370
+ icon: "i-carbon-network-4",
16371
+ category: "advanced"
16372
+ },
16373
+ {
16374
+ path: "inspect",
16375
+ title: "Inspect",
16376
+ icon: "i-carbon-ibm-watson-discovery",
16377
+ category: "advanced"
16378
+ },
16379
+ {
16380
+ path: "documentations",
16381
+ title: "Documentations",
16382
+ icon: "i-carbon-document",
16383
+ category: "advanced"
16384
+ }
16385
+ ];
16386
+ function useTabs() {
16387
+ const settings = useDevToolsSettings();
16388
+ return {
16389
+ enabled: computed(() => {
16390
+ return builtinTabs.filter((tab) => !settings.hiddenTabs.value.includes(tab.title ?? ""));
16391
+ }),
16392
+ all: computed(() => builtinTabs)
16393
+ };
16394
+ }
16395
+ function useCategorizedTabs(enabledOnly = true) {
16396
+ const _tabs = useTabs();
16397
+ const tabs = enabledOnly ? _tabs.enabled : _tabs.all;
16398
+ const settings = useDevToolsSettings();
16399
+ return computed(() => {
16400
+ const categories = {
16401
+ app: [],
16402
+ modules: [],
16403
+ advanced: []
16404
+ };
16405
+ for (const tab of tabs.value) {
16406
+ const category = tab?.category || "app";
16407
+ if (enabledOnly && settings.hiddenTabCategories.value.includes(category))
16408
+ continue;
16409
+ if (!categories[category])
16410
+ console.warn(`Unknown tab category: ${category}`);
16411
+ else
16412
+ categories[category].push(tab);
16413
+ }
16414
+ return Object.entries(categories);
16415
+ });
16416
+ }
16417
+
16418
+ /* Injected with object hook! */
16419
+
16420
+ const _hoisted_1$1 = {
16421
+ border: "r base",
16422
+ flex: "~ col gap-0.5",
16423
+ "z-100": "",
16424
+ "h-full": "",
16425
+ "items-center": "",
16426
+ "bg-base": "",
16427
+ class: "no-scrollbar"
16428
+ };
16429
+ const _hoisted_2$1 = {
16430
+ flex: "~ col",
16431
+ sticky: "",
16432
+ "top-0": "",
16433
+ "z-1": "",
14830
16434
  mb1: "",
14831
16435
  "items-center": "",
14832
16436
  pt3: "",
@@ -14870,10 +16474,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14870
16474
  setup(__props) {
14871
16475
  const categories = useCategorizedTabs();
14872
16476
  return (_ctx, _cache) => {
14873
- const _component_DockingPanel = __unplugin_components_0;
16477
+ const _component_DockingPanel = _sfc_main$3;
14874
16478
  const _component_VDropdown = resolveComponent("VDropdown");
14875
- const _component_SideNavItem = _sfc_main$6;
14876
- const _component_TabIcon = _sfc_main$7;
16479
+ const _component_SideNavItem = _sfc_main$8;
16480
+ const _component_TabIcon = _sfc_main$9;
14877
16481
  const _component_RouterLink = resolveComponent("RouterLink");
14878
16482
  return openBlock(), createElementBlock("div", _hoisted_1$1, [
14879
16483
  createBaseVNode("div", _hoisted_2$1, [
@@ -14943,25 +16547,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
14943
16547
 
14944
16548
  /* Injected with object hook! */
14945
16549
 
14946
- function useSingleton() {
14947
- const key = Symbol("singleton");
14948
- return [
14949
- function provide(v) {
14950
- const vm = getCurrentInstance();
14951
- vm?.appContext.app.provide(key, v);
14952
- },
14953
- function use(fallback) {
14954
- return inject(key, fallback);
14955
- }
14956
- ];
14957
- }
14958
- const [
14959
- provideNotification,
14960
- useNotification
14961
- ] = useSingleton();
14962
-
14963
- /* Injected with object hook! */
14964
-
14965
16550
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
14966
16551
  __name: "Notification",
14967
16552
  setup(__props) {
@@ -15741,4 +17326,4 @@ app.mount("#app");
15741
17326
 
15742
17327
  /* Injected with object hook! */
15743
17328
 
15744
- export { ref as $, timelineLayer as A, activeTimelineEvents as B, activeTimelineEventIndex as C, toggleTimelineEventIndex as D, timelineEventDetails as E, Fragment as F, activeLayerId as G, toggleTimelineLayer as H, useVModel as I, vModelSelect as J, isRef as K, vModelCheckbox as L, withKeys as M, useCategorizedTabs as N, createTextVNode as O, useDevToolsSettings as P, useFrameState as Q, _sfc_main$b as R, _sfc_main$5 as S, _sfc_main$7 as T, router$1 as U, routeRecordMatcherState as V, activeRouteRecordMatcherState as W, activeRouteRecordIndex as X, toggleRouteRecordMatcher as Y, __unplugin_components_1 as Z, _sfc_main$4 as _, popScopeId as a, computed as a0, piniaStoresCategory as a1, toRaw as a2, piniaState as a3, piniaGetters as a4, withModifiers as a5, onMounted as a6, currentRoute as a7, routes as a8, vueVersion as a9, computedAsync as aA, useTimeAgo as aB, onKeyDown as aC, _export_sfc as aD, useClipboard as aE, useNotification as aF, vModelDynamic as aG, __vitePreload as aH, useDevtoolsClient as aI, useRouter as aJ, __unplugin_components_0$1 as aa, useEventListener as ab, hookApi as ac, useScrollLock as ad, watch as ae, useInfiniteScroll as af, useStorage as ag, vModelText as ah, useDark as ai, Teleport as aj, useColorMode as ak, reactive as al, useElementBounding as am, watchEffect as an, onUnmounted as ao, shallowRef as ap, onVueInstanceUpdate as aq, instance as ar, nanoid as as, vShow as at, getCurrentInstance as au, h as av, useElementSize as aw, onClickOutside as ax, Transition as ay, useStyleTag as az, resolveDirective as b, createBlock as c, withDirectives as d, createElementBlock as e, renderSlot as f, createCommentVNode as g, withCtx as h, renderList as i, resolveDynamicComponent as j, mergeProps as k, normalizeStyle as l, markRaw as m, nextTick as n, openBlock as o, pushScopeId as p, normalizeClass as q, resolveComponent as r, shallowReactive as s, toHandlers as t, createVNode as u, defineComponent as v, withScopeId as w, createBaseVNode as x, toDisplayString as y, unref as z };
17329
+ export { toggleRouteRecordMatcher as $, timelineLayer as A, activeTimelineEvents as B, activeTimelineEventIndex as C, toggleTimelineEventIndex as D, timelineEventDetails as E, Fragment as F, activeLayerId as G, toggleTimelineLayer as H, useVModel as I, vModelSelect as J, isRef as K, vModelCheckbox as L, withKeys as M, useCategorizedTabs as N, isInPopup as O, createTextVNode as P, useDevToolsSettings as Q, useFrameState as R, _sfc_main$4 as S, _sfc_main$d as T, _sfc_main$7 as U, _sfc_main$9 as V, router$1 as W, routeRecordMatcherState as X, activeRouteRecordMatcherState as Y, activeRouteRecordIndex as Z, __unplugin_components_7 as _, popScopeId as a, __unplugin_components_1 as a0, ref as a1, computed as a2, piniaStoresCategory as a3, toRaw as a4, piniaState as a5, piniaGetters as a6, withModifiers as a7, onMounted as a8, currentRoute as a9, onClickOutside as aA, Transition as aB, useStyleTag as aC, computedAsync as aD, useTimeAgo as aE, onKeyDown as aF, _export_sfc as aG, vModelDynamic as aH, __vitePreload as aI, useDevtoolsClient as aJ, useRouter as aK, routes as aa, vueVersion as ab, __unplugin_components_0 as ac, useEventListener as ad, hookApi as ae, useScrollLock as af, watch as ag, useInfiniteScroll as ah, useStorage as ai, vModelText as aj, useDark as ak, Teleport as al, useColorMode as am, reactive as an, useElementBounding as ao, watchEffect as ap, onUnmounted as aq, shallowRef as ar, onVueInstanceUpdate as as, instance as at, useCopy as au, nanoid as av, vShow as aw, getCurrentInstance as ax, h as ay, useElementSize as az, resolveDirective as b, createBlock as c, withDirectives as d, createElementBlock as e, renderSlot as f, createCommentVNode as g, withCtx as h, renderList as i, resolveDynamicComponent as j, mergeProps as k, normalizeStyle as l, markRaw as m, nextTick as n, openBlock as o, pushScopeId as p, normalizeClass as q, resolveComponent as r, shallowReactive as s, toHandlers as t, createVNode as u, defineComponent as v, withScopeId as w, createBaseVNode as x, toDisplayString as y, unref as z };