@nuxt/devtools 0.2.4 → 0.3.0

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 (139) hide show
  1. package/README.md +3 -3
  2. package/dist/chunks/module-main.mjs +693 -207
  3. package/dist/chunks/plugin-metrics.mjs +54 -0
  4. package/dist/chunks/vite-inspect.mjs +12 -13
  5. package/dist/chunks/vscode.mjs +44 -26
  6. package/dist/chunks/vue-inspector.mjs +2 -2
  7. package/dist/cli.mjs +5 -4
  8. package/dist/client/200.html +2 -2
  9. package/dist/client/404.html +2 -2
  10. package/dist/client/__inspecting/index.html +2 -2
  11. package/dist/client/_nuxt/Badge.0f8d5f6f.js +1 -0
  12. package/dist/client/_nuxt/DrawerRight.vue.6b933252.js +1 -0
  13. package/dist/client/_nuxt/DurationDisplay.vue.5c57289e.js +1 -0
  14. package/dist/client/_nuxt/FilepathItem.vue.e8c3a52c.js +1 -0
  15. package/dist/client/_nuxt/LaunchPage.vue.87f21877.js +1 -0
  16. package/dist/client/_nuxt/NCheckbox.vue.4b9ea1cc.js +1 -0
  17. package/dist/client/_nuxt/NCodeBlock.vue.431c1fae.js +1 -0
  18. package/dist/client/_nuxt/NIconButton.vue.9bdc7adc.js +1 -0
  19. package/dist/client/_nuxt/NIconTitle.vue.f40c1405.js +1 -0
  20. package/dist/client/_nuxt/NMarkdown.vue.725d1f67.js +1 -0
  21. package/dist/client/_nuxt/NSectionBlock.aae79980.js +1 -0
  22. package/dist/client/_nuxt/NSelect.vue.b136ef78.js +1 -0
  23. package/dist/client/_nuxt/NSwitch.vue.73a2b8d5.js +1 -0
  24. package/dist/client/_nuxt/NTextInput.vue.543d16d0.js +1 -0
  25. package/dist/client/_nuxt/NTip.vue.130b714b.js +1 -0
  26. package/dist/client/_nuxt/NpmVersionCheck.vue.b49a7a81.js +1 -0
  27. package/dist/client/_nuxt/NuxtLogo.18339464.js +1 -0
  28. package/dist/client/_nuxt/PanelLeftRight.vue.b026a23a.js +1 -0
  29. package/dist/client/_nuxt/StateEditor.vue.dae03388.js +1 -0
  30. package/dist/client/_nuxt/TabIcon.vue.d87fc756.js +1 -0
  31. package/dist/client/_nuxt/{__inspecting.3eb70499.js → __inspecting.9a5a53c2.js} +1 -1
  32. package/dist/client/_nuxt/assets.a9e5a6b0.js +16 -0
  33. package/dist/client/_nuxt/components.70b3c3a4.js +1 -0
  34. package/dist/client/_nuxt/context.c8f67be1.js +1 -0
  35. package/dist/client/_nuxt/custom-_name_.54344ca3.js +1 -0
  36. package/dist/client/_nuxt/default.a8c4c373.js +1 -0
  37. package/dist/client/_nuxt/editor.e302ec86.js +1 -0
  38. package/dist/client/_nuxt/entry.654353dc.css +32 -0
  39. package/dist/client/_nuxt/entry.91db41b9.js +259 -0
  40. package/dist/client/_nuxt/error-404.6d04f9a0.js +1 -0
  41. package/dist/client/_nuxt/error-500.44287dc0.js +1 -0
  42. package/dist/client/_nuxt/error-component.a0e84e89.js +3 -0
  43. package/dist/client/_nuxt/hooks.784bc58b.js +1 -0
  44. package/dist/client/_nuxt/icons.43eaabec.js +1 -0
  45. package/dist/client/_nuxt/imports.2e67f433.js +1 -0
  46. package/dist/client/_nuxt/{index.a6656ecb.js → index.3b3b7aca.js} +5 -5
  47. package/dist/client/_nuxt/index.4213289c.js +1 -0
  48. package/dist/client/_nuxt/index.c769634a.js +3 -0
  49. package/dist/client/_nuxt/layouts.3ece608d.js +1 -0
  50. package/dist/client/_nuxt/middleware.c0b48cbf.js +1 -0
  51. package/dist/client/_nuxt/modules.b85b1f76.js +1 -0
  52. package/dist/client/_nuxt/none.d95ed4cd.js +1 -0
  53. package/dist/client/_nuxt/overview.c2dfff9d.js +1 -0
  54. package/dist/client/_nuxt/pages.c8f066b4.js +1 -0
  55. package/dist/client/_nuxt/payload.299d8527.js +1 -0
  56. package/dist/client/_nuxt/plugins.4b3cd1e3.js +1 -0
  57. package/dist/client/_nuxt/runtime-configs.0f55338b.js +1 -0
  58. package/dist/client/_nuxt/server-routes.e48a8508.js +1 -0
  59. package/dist/client/_nuxt/settings.b70bc182.js +1 -0
  60. package/dist/client/_nuxt/storage.adf41f3f.js +1 -0
  61. package/dist/client/_nuxt/terminals.2f58f3e7.js +1 -0
  62. package/dist/client/_nuxt/terminals.4329aeb9.css +1 -0
  63. package/dist/client/_nuxt/{unocss-runtime.6f823b2d.js → unocss-runtime.f654b492.js} +2 -2
  64. package/dist/client/_nuxt/virtual-files.dbe38c70.js +1 -0
  65. package/dist/client/index.html +2 -2
  66. package/dist/client/modules/assets/index.html +7 -0
  67. package/dist/client/modules/components/index.html +2 -2
  68. package/dist/client/modules/hooks/index.html +2 -2
  69. package/dist/client/modules/imports/index.html +2 -2
  70. package/dist/client/modules/layouts/index.html +2 -2
  71. package/dist/client/modules/middleware/index.html +2 -2
  72. package/dist/client/modules/modules/index.html +2 -2
  73. package/dist/client/modules/overview/index.html +2 -2
  74. package/dist/client/modules/pages/index.html +2 -2
  75. package/dist/client/modules/payload/index.html +2 -2
  76. package/dist/client/modules/plugins/index.html +2 -2
  77. package/dist/client/modules/runtime-configs/index.html +2 -2
  78. package/dist/client/modules/server-routes/index.html +2 -2
  79. package/dist/client/modules/storage/index.html +7 -0
  80. package/dist/client/modules/terminals/index.html +7 -0
  81. package/dist/client/modules/virtual-files/index.html +2 -2
  82. package/dist/client/settings/index.html +7 -0
  83. package/dist/dirs.mjs +2 -2
  84. package/dist/module.d.ts +3 -31
  85. package/dist/module.json +1 -1
  86. package/dist/module.mjs +2 -2
  87. package/dist/runtime/plugins/devtools.client.mjs +7 -1
  88. package/dist/shared/{devtools.b6178134.mjs → devtools.30090c6e.mjs} +1 -1
  89. package/dist/types.d.ts +5 -326
  90. package/dist/types.mjs +1 -1
  91. package/package.json +38 -37
  92. package/dist/client/_nuxt/Badge.35e3d75f.js +0 -1
  93. package/dist/client/_nuxt/FilepathItem.vue.70457130.js +0 -1
  94. package/dist/client/_nuxt/LaunchPage.vue.15ef3f8b.js +0 -1
  95. package/dist/client/_nuxt/NButton.a7fda268.css +0 -1
  96. package/dist/client/_nuxt/NButton.vue.1aeb67fb.js +0 -113
  97. package/dist/client/_nuxt/NCheckbox.vue.7252d00f.js +0 -1
  98. package/dist/client/_nuxt/NIcon.vue.6416325d.js +0 -1
  99. package/dist/client/_nuxt/NSectionBlock.7c35c1a8.js +0 -1
  100. package/dist/client/_nuxt/NSectionBlock.891fa081.css +0 -1
  101. package/dist/client/_nuxt/NTextInput.vue.0fd513ee.js +0 -1
  102. package/dist/client/_nuxt/NuxtLogo.3b286105.js +0 -1
  103. package/dist/client/_nuxt/StateEditor.ce27b0a9.css +0 -1
  104. package/dist/client/_nuxt/StateEditor.vue.4b3d62c1.js +0 -1
  105. package/dist/client/_nuxt/StateEditor.vue.b4b0d299.js +0 -137
  106. package/dist/client/_nuxt/TabIcon.vue.dd710d5f.js +0 -1
  107. package/dist/client/_nuxt/_plugin-vue_export-helper.c27b6911.js +0 -1
  108. package/dist/client/_nuxt/asyncData.f4eab2cf.js +0 -1
  109. package/dist/client/_nuxt/components.b8fa7f92.js +0 -1
  110. package/dist/client/_nuxt/composables.8ff5f6b6.js +0 -1
  111. package/dist/client/_nuxt/context.c1f50e17.js +0 -1
  112. package/dist/client/_nuxt/custom-_name_.681ffd04.js +0 -1
  113. package/dist/client/_nuxt/default.2963fb37.js +0 -1
  114. package/dist/client/_nuxt/editor.b5249ede.js +0 -1
  115. package/dist/client/_nuxt/entry.27ee4abf.css +0 -1
  116. package/dist/client/_nuxt/entry.53ee6248.js +0 -5
  117. package/dist/client/_nuxt/error-404.4d908286.js +0 -1
  118. package/dist/client/_nuxt/error-500.e65c4924.js +0 -1
  119. package/dist/client/_nuxt/error-component.1a84e289.js +0 -3
  120. package/dist/client/_nuxt/hooks.b85de4f3.js +0 -1
  121. package/dist/client/_nuxt/icons.7b11eba5.js +0 -1
  122. package/dist/client/_nuxt/imports.48d7ddd5.js +0 -1
  123. package/dist/client/_nuxt/index.747f17a4.js +0 -1
  124. package/dist/client/_nuxt/layouts.8029422d.js +0 -1
  125. package/dist/client/_nuxt/middleware.671f87b6.js +0 -1
  126. package/dist/client/_nuxt/modules.56768ce2.js +0 -1
  127. package/dist/client/_nuxt/none.fa32461d.js +0 -1
  128. package/dist/client/_nuxt/nuxt-link.bdfe480b.js +0 -1
  129. package/dist/client/_nuxt/overview.71ae3521.js +0 -1
  130. package/dist/client/_nuxt/pages.611146bd.js +0 -1
  131. package/dist/client/_nuxt/payload.e24f2347.js +0 -1
  132. package/dist/client/_nuxt/plugins.a24c21cb.js +0 -1
  133. package/dist/client/_nuxt/runtime-configs.9225ca28.js +0 -1
  134. package/dist/client/_nuxt/server-routes.7c4496d9.js +0 -1
  135. package/dist/client/_nuxt/state.647f0c35.js +0 -1
  136. package/dist/client/_nuxt/virtual-files.33ac3fab.js +0 -9
  137. package/dist/iframe-client.d.ts +0 -13
  138. package/dist/iframe-client.mjs +0 -30
  139. package/iframe-client.d.ts +0 -1
@@ -0,0 +1,54 @@
1
+ async function setup({ nuxt }) {
2
+ if (!nuxt.options.dev)
3
+ return;
4
+ nuxt.hook("app:templates", (app) => {
5
+ app.templates.filter((i) => i.filename?.startsWith("plugins/")).forEach((i) => {
6
+ if (!i.getContents)
7
+ return;
8
+ const original = i.getContents;
9
+ i.getContents = async (...args) => {
10
+ let content = await original(...args);
11
+ const PAYLOAD_KEY = "__NUXT_DEVTOOLS_PLUGINS_METRIC__";
12
+ const WRAPPER_KEY = "__DEVTOOLS_WRAPPER__";
13
+ if (content.includes(PAYLOAD_KEY))
14
+ return content;
15
+ const snippets = `
16
+ globalThis.${PAYLOAD_KEY} = []
17
+ function ${WRAPPER_KEY} (plugin, src) {
18
+ if (!plugin)
19
+ return plugin
20
+
21
+ return defineNuxtPlugin(async (...args) => {
22
+ const start = performance.now()
23
+ const result = await plugin(...args)
24
+ const end = performance.now()
25
+ globalThis.${PAYLOAD_KEY}.push({
26
+ src,
27
+ duration: end - start,
28
+ })
29
+ return result
30
+ })
31
+ }
32
+ `;
33
+ const imports = Array.from(content.matchAll(/(?:\n|^)import (.*) from ['"](.*)['"]/g)).map(([, name, path]) => ({ name, path }));
34
+ content = content.replace(/\nexport default\s*\[([\s\S]*)\]/, (_, itemsRaw) => {
35
+ const items = itemsRaw.split(",").map((i2) => i2.trim()).map((i2) => {
36
+ const importItem = imports.find(({ name }) => name === i2);
37
+ if (!importItem)
38
+ return i2;
39
+ return `${WRAPPER_KEY}(${i2}, ${JSON.stringify(importItem.path)})`;
40
+ });
41
+ return `
42
+ ${snippets}
43
+ export default [
44
+ ${items.join(",\n")}
45
+ ]
46
+ `;
47
+ });
48
+ return content;
49
+ };
50
+ });
51
+ });
52
+ }
53
+
54
+ export { setup };
@@ -1,24 +1,23 @@
1
1
  import { addVitePlugin } from '@nuxt/kit';
2
2
  import Inspect from 'vite-plugin-inspect';
3
+ import { addCustomTab } from '@nuxt/devtools-kit';
3
4
 
4
- async function setup(nuxt, _functions) {
5
+ async function setup({ nuxt, rpc }) {
5
6
  const plugin = Inspect();
6
7
  addVitePlugin(plugin);
7
8
  let api;
8
9
  nuxt.hook("vite:serverCreated", () => {
9
10
  api = plugin.api;
10
11
  });
11
- nuxt.hook("devtools:customTabs", (tabs) => {
12
- tabs.push({
13
- name: "builtin-vite-inspect",
14
- title: "Inspect",
15
- icon: "carbon-search",
16
- view: {
17
- type: "iframe",
18
- src: `${nuxt.options.app.baseURL}/_nuxt/__inspect/`.replace(/\/\//g, "/")
19
- }
20
- });
21
- });
12
+ addCustomTab(() => ({
13
+ name: "builtin-vite-inspect",
14
+ title: "Inspect",
15
+ icon: "carbon-ibm-watson-discovery",
16
+ view: {
17
+ type: "iframe",
18
+ src: `${nuxt.options.app.baseURL}/_nuxt/__inspect/`.replace(/\/\//g, "/")
19
+ }
20
+ }), nuxt);
22
21
  async function getComponentsRelationships() {
23
22
  const modules = (await api?.rpc.list())?.modules || [];
24
23
  const vueModules = modules.filter((i) => i.id.match(/\.vue($|\?v=)/));
@@ -43,7 +42,7 @@ async function setup(nuxt, _functions) {
43
42
  });
44
43
  return graph;
45
44
  }
46
- _functions.getComponentsRelationships = getComponentsRelationships;
45
+ rpc.functions.getComponentsRelationships = getComponentsRelationships;
47
46
  }
48
47
 
49
48
  export { setup };
@@ -1,9 +1,8 @@
1
- import require$$1$2, { hostname } from 'os';
1
+ import { networkInterfaces, hostname } from 'node:os';
2
2
  import { logger } from '@nuxt/kit';
3
3
  import { execa } from 'execa';
4
4
  import { createServer } from 'node:net';
5
- import { networkInterfaces } from 'node:os';
6
- import fs__default from 'fs';
5
+ import require$$0__default from 'fs';
7
6
  import require$$1 from 'path';
8
7
  import require$$1$1 from 'util';
9
8
  import require$$0 from 'url';
@@ -13,22 +12,32 @@ import require$$1$3 from 'http';
13
12
  import require$$0$2 from 'stream';
14
13
  import require$$4 from 'assert';
15
14
  import require$$0$1 from 'tty';
15
+ import require$$1$2 from 'os';
16
16
  import require$$0$3 from 'zlib';
17
+ import { startSubprocess } from '@nuxt/devtools-kit';
17
18
  import { L as LOG_PREFIX } from './module-main.mjs';
19
+ import 'node:path';
20
+ import 'node:fs';
18
21
  import 'buffer';
19
22
  import 'tls';
20
23
  import 'crypto';
21
24
  import 'events';
22
25
  import 'vite';
23
26
  import 'querystring';
24
- import '../shared/devtools.b6178134.mjs';
27
+ import '../shared/devtools.30090c6e.mjs';
25
28
  import 'birpc';
26
- import 'unimport';
29
+ import 'node:fs/promises';
27
30
  import 'pathe';
28
- import 'fs/promises';
31
+ import 'image-meta';
32
+ import 'fast-glob';
33
+ import 'is-installed-globally';
34
+ import 'node:child_process';
35
+ import 'node:module';
29
36
  import 'pkg-types';
37
+ import 'local-pkg';
38
+ import 'unimport';
30
39
  import '../dirs.mjs';
31
- import 'is-installed-globally';
40
+ import 'node:url';
32
41
  import '../shared/devtools.95cf6023.mjs';
33
42
 
34
43
 
@@ -313,7 +322,7 @@ function requireWindows () {
313
322
  windows = isexe;
314
323
  isexe.sync = sync;
315
324
 
316
- var fs = fs__default;
325
+ var fs = require$$0__default;
317
326
 
318
327
  function checkPathExt (path, options) {
319
328
  var pathext = options.pathExt !== undefined ?
@@ -364,7 +373,7 @@ function requireMode () {
364
373
  mode = isexe;
365
374
  isexe.sync = sync;
366
375
 
367
- var fs = fs__default;
376
+ var fs = require$$0__default;
368
377
 
369
378
  function isexe (path, options, cb) {
370
379
  fs.stat(path, function (er, stat) {
@@ -30731,7 +30740,7 @@ function requireForm_data () {
30731
30740
  var http = require$$1$3;
30732
30741
  var https = require$$2$1;
30733
30742
  var parseUrl = require$$0.parse;
30734
- var fs = fs__default;
30743
+ var fs = require$$0__default;
30735
30744
  var Stream = require$$0$2.Stream;
30736
30745
  var mime = requireMimeTypes();
30737
30746
  var asynckit = requireAsynckit();
@@ -41168,7 +41177,7 @@ race$1.race = race;
41168
41177
 
41169
41178
  } (operators));
41170
41179
 
41171
- const fs = fs__default;
41180
+ const fs = require$$0__default;
41172
41181
  const { promisify } = require$$1$1;
41173
41182
  const Joi = requireLib();
41174
41183
  const https = require$$2$1;
@@ -41568,16 +41577,17 @@ function negateAsync(asyncFn) {
41568
41577
 
41569
41578
  var waitOn_1 = waitOn;
41570
41579
 
41571
- async function setup(nuxt, _functions, options) {
41580
+ async function setup({ nuxt, options }) {
41572
41581
  const installed = !!await lib$4("code-server").catch(() => null);
41573
- let port = options?.port || 3080;
41582
+ const vsOptions = options?.vscode || {};
41583
+ let port = vsOptions?.port || 3080;
41574
41584
  let url = `http://localhost:${port}`;
41575
41585
  let loaded = false;
41576
41586
  let promise = null;
41577
- const mode = options?.mode || "local-serve";
41578
- const computerHostName = options.tunnel?.name || hostname().split(".").join("");
41587
+ const mode = vsOptions?.mode || "local-serve";
41588
+ const computerHostName = vsOptions.tunnel?.name || hostname().split(".").join("");
41579
41589
  async function startCodeServer() {
41580
- if (options?.reuseExistingServer && !await checkPort(port)) {
41590
+ if (vsOptions?.reuseExistingServer && !await checkPort(port)) {
41581
41591
  loaded = true;
41582
41592
  url = `http://localhost:${port}/?folder=${encodeURIComponent(nuxt.options.rootDir)}`;
41583
41593
  logger.info(LOG_PREFIX, `Existing VS Code Server found at port ${port}...`);
@@ -41586,15 +41596,23 @@ async function setup(nuxt, _functions, options) {
41586
41596
  port = await getPort({ port });
41587
41597
  url = `http://localhost:${port}/?folder=${encodeURIComponent(nuxt.options.rootDir)}`;
41588
41598
  logger.info(LOG_PREFIX, `Starting VS Code Server at ${url} ...`);
41589
- const command = execa("code-server", [
41590
- "serve-local",
41591
- "--accept-server-license-terms",
41592
- "--without-connection-token",
41593
- `--port=${port}`
41594
- ]);
41595
- nuxt.hook("close", () => {
41596
- command.kill();
41597
- });
41599
+ startSubprocess(
41600
+ {
41601
+ command: "code-server",
41602
+ args: [
41603
+ "serve-local",
41604
+ "--accept-server-license-terms",
41605
+ "--without-connection-token",
41606
+ `--port=${port}`
41607
+ ]
41608
+ },
41609
+ {
41610
+ id: "devtools:vscode",
41611
+ name: "VS Code Server",
41612
+ icon: "logos-visual-studio-code"
41613
+ },
41614
+ nuxt
41615
+ );
41598
41616
  await waitOn_1({
41599
41617
  resources: [url],
41600
41618
  timeout: 2e4,
@@ -41661,7 +41679,7 @@ Once installed, restart Nuxt and visit this tab again.`,
41661
41679
  }
41662
41680
  });
41663
41681
  });
41664
- if (options?.startOnBoot)
41682
+ if (vsOptions?.startOnBoot)
41665
41683
  promise = promise || start();
41666
41684
  }
41667
41685
 
@@ -1,11 +1,11 @@
1
1
  import { addVitePlugin } from '@nuxt/kit';
2
2
  import VueInspector from 'vite-plugin-vue-inspector';
3
3
 
4
- async function setup(nuxt, _functions) {
4
+ async function setup({ nuxt }) {
5
5
  if (!nuxt.options.dev)
6
6
  return;
7
7
  addVitePlugin(VueInspector({
8
- appendTo: "entry.mjs",
8
+ appendTo: /\/entry\.m?js$/,
9
9
  toggleComboKey: "",
10
10
  toggleButtonVisibility: "never"
11
11
  }));
package/dist/cli.mjs CHANGED
@@ -1,11 +1,12 @@
1
- import fs__default from 'fs';
1
+ import fs from 'node:fs';
2
2
  import consola from 'consola';
3
3
  import { execa } from 'execa';
4
4
  import { readUser, writeUser } from 'rc9';
5
5
  import require$$1 from 'path';
6
6
  import require$$1$1 from 'os';
7
+ import require$$0__default from 'fs';
7
8
  import { resolve } from 'pathe';
8
- import { n as name } from './shared/devtools.b6178134.mjs';
9
+ import { n as name } from './shared/devtools.30090c6e.mjs';
9
10
 
10
11
  var globalDirs = {};
11
12
 
@@ -219,7 +220,7 @@ var ini = {
219
220
  (function (exports) {
220
221
  const path = require$$1;
221
222
  const os = require$$1$1;
222
- const fs = fs__default;
223
+ const fs = require$$0__default;
223
224
  const ini$1 = ini;
224
225
 
225
226
  const isWindows = process.platform === 'win32';
@@ -343,7 +344,7 @@ const RC_PATH = ".nuxtrc";
343
344
  function enable(rc, path) {
344
345
  const modulePath = resolve(globalDirs.npm.packages, name);
345
346
  const targetPath = resolve(modulePath, "module.cjs").replace(/\\/g, "/");
346
- if (!fs__default.existsSync(targetPath))
347
+ if (!fs.existsSync(targetPath))
347
348
  throw new Error("Failed to locate the global Nuxt Devtools module. You may try it again");
348
349
  removeModule(rc);
349
350
  if (!rc.modules?.includes(targetPath))
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html>
2
2
  <html >
3
3
  <head><meta charset="utf-8">
4
- <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/entry.53ee6248.js"><link rel="preload" as="style" href="/__nuxt_devtools__/client/_nuxt/entry.27ee4abf.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/default.2963fb37.js"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/NSectionBlock.891fa081.css"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/NButton.a7fda268.css"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/StateEditor.ce27b0a9.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/context.c1f50e17.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NuxtLogo.3b286105.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/_plugin-vue_export-helper.c27b6911.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NButton.vue.1aeb67fb.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NIcon.vue.6416325d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/nuxt-link.bdfe480b.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/StateEditor.vue.b4b0d299.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/composables.8ff5f6b6.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/TabIcon.vue.dd710d5f.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/state.647f0c35.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/asyncData.f4eab2cf.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/none.fa32461d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/unocss-runtime.6f823b2d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/error-component.1a84e289.js"><link rel="stylesheet" href="/__nuxt_devtools__/client/_nuxt/entry.27ee4abf.css"><script>"use strict";const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"system";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
4
+ <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/entry.91db41b9.js"><link rel="preload" as="style" href="/__nuxt_devtools__/client/_nuxt/entry.654353dc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/index.3b3b7aca.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/default.a8c4c373.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/context.c8f67be1.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/TabIcon.vue.d87fc756.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/none.d95ed4cd.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/unocss-runtime.f654b492.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/error-component.a0e84e89.js"><link rel="stylesheet" href="/__nuxt_devtools__/client/_nuxt/entry.654353dc.css"><script>"use strict";const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"system";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
5
5
  </script></head>
6
- <body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{fixture4:"public runtime config from nuxt.config.ts"},app:{baseURL:"\u002F__nuxt_devtools__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_devtools__/client/_nuxt/entry.53ee6248.js" crossorigin></script></body>
6
+ <body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{fixture4:"public runtime config from nuxt.config.ts"},app:{baseURL:"\u002F__nuxt_devtools__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_devtools__/client/_nuxt/entry.91db41b9.js" crossorigin></script></body>
7
7
  </html>
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html>
2
2
  <html >
3
3
  <head><meta charset="utf-8">
4
- <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/entry.53ee6248.js"><link rel="preload" as="style" href="/__nuxt_devtools__/client/_nuxt/entry.27ee4abf.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/default.2963fb37.js"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/NSectionBlock.891fa081.css"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/NButton.a7fda268.css"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/StateEditor.ce27b0a9.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/context.c1f50e17.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NuxtLogo.3b286105.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/_plugin-vue_export-helper.c27b6911.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NButton.vue.1aeb67fb.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NIcon.vue.6416325d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/nuxt-link.bdfe480b.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/StateEditor.vue.b4b0d299.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/composables.8ff5f6b6.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/TabIcon.vue.dd710d5f.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/state.647f0c35.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/asyncData.f4eab2cf.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/none.fa32461d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/unocss-runtime.6f823b2d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/error-component.1a84e289.js"><link rel="stylesheet" href="/__nuxt_devtools__/client/_nuxt/entry.27ee4abf.css"><script>"use strict";const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"system";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
4
+ <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/entry.91db41b9.js"><link rel="preload" as="style" href="/__nuxt_devtools__/client/_nuxt/entry.654353dc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/index.3b3b7aca.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/default.a8c4c373.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/context.c8f67be1.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/TabIcon.vue.d87fc756.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/none.d95ed4cd.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/unocss-runtime.f654b492.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/error-component.a0e84e89.js"><link rel="stylesheet" href="/__nuxt_devtools__/client/_nuxt/entry.654353dc.css"><script>"use strict";const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"system";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
5
5
  </script></head>
6
- <body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{fixture4:"public runtime config from nuxt.config.ts"},app:{baseURL:"\u002F__nuxt_devtools__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_devtools__/client/_nuxt/entry.53ee6248.js" crossorigin></script></body>
6
+ <body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{fixture4:"public runtime config from nuxt.config.ts"},app:{baseURL:"\u002F__nuxt_devtools__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_devtools__/client/_nuxt/entry.91db41b9.js" crossorigin></script></body>
7
7
  </html>
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html>
2
2
  <html >
3
3
  <head><meta charset="utf-8">
4
- <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/entry.53ee6248.js"><link rel="preload" as="style" href="/__nuxt_devtools__/client/_nuxt/entry.27ee4abf.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/default.2963fb37.js"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/NSectionBlock.891fa081.css"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/NButton.a7fda268.css"><link rel="prefetch" as="style" href="/__nuxt_devtools__/client/_nuxt/StateEditor.ce27b0a9.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/context.c1f50e17.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NuxtLogo.3b286105.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/_plugin-vue_export-helper.c27b6911.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NButton.vue.1aeb67fb.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/NIcon.vue.6416325d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/nuxt-link.bdfe480b.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/StateEditor.vue.b4b0d299.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/composables.8ff5f6b6.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/TabIcon.vue.dd710d5f.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/state.647f0c35.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/asyncData.f4eab2cf.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/none.fa32461d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/unocss-runtime.6f823b2d.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/error-component.1a84e289.js"><link rel="stylesheet" href="/__nuxt_devtools__/client/_nuxt/entry.27ee4abf.css"><script>"use strict";const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"system";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
4
+ <meta name="viewport" content="width=device-width, initial-scale=1"><link rel="modulepreload" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/entry.91db41b9.js"><link rel="preload" as="style" href="/__nuxt_devtools__/client/_nuxt/entry.654353dc.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/index.3b3b7aca.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/default.a8c4c373.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/context.c8f67be1.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/TabIcon.vue.d87fc756.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/none.d95ed4cd.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/unocss-runtime.f654b492.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt_devtools__/client/_nuxt/error-component.a0e84e89.js"><link rel="stylesheet" href="/__nuxt_devtools__/client/_nuxt/entry.654353dc.css"><script>"use strict";const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"system";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
5
5
  </script></head>
6
- <body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{fixture4:"public runtime config from nuxt.config.ts"},app:{baseURL:"\u002F__nuxt_devtools__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_devtools__/client/_nuxt/entry.53ee6248.js" crossorigin></script></body>
6
+ <body ><div id="__nuxt"></div><script>window.__NUXT__={serverRendered:false,config:{public:{fixture4:"public runtime config from nuxt.config.ts"},app:{baseURL:"\u002F__nuxt_devtools__\u002Fclient",buildAssetsDir:"\u002F_nuxt\u002F",cdnURL:""}},data:{},state:{}}</script><script type="module" src="/__nuxt_devtools__/client/_nuxt/entry.91db41b9.js" crossorigin></script></body>
7
7
  </html>
@@ -0,0 +1 @@
1
+ import{aj as n,o,f as s,J as t}from"./entry.91db41b9.js";const c={},r={class:"text-xs rounded whitespace-nowrap px-1.5 py-0.5 mx-0.5 select-none"};function a(e,_){return o(),s("span",r,[t(e.$slots,"default")])}const l=n(c,[["render",a]]);export{l as _};
@@ -0,0 +1 @@
1
+ import{_ as i}from"./NIconButton.vue.9bdc7adc.js";import{a as u,E as m,Y as f,Z as d,o as l,c as p,w as _,a0 as b,f as v,i as h,h as x,J as y,a1 as g,u as k,y as B}from"./entry.91db41b9.js";const C={"w-full":"","of-auto":"","h-full":"",relative:""},V={inheritAttrs:!1},N=u({...V,__name:"DrawerRight",props:{modelValue:{type:Boolean},navbar:null,autoClose:{type:Boolean}},emits:["close"],setup(o,{emit:r}){const e=o,a=m(),{height:n}=f(()=>e.navbar,void 0,{box:"border-box"});return d(a,()=>{e.modelValue&&e.autoClose&&r("close")},{ignore:["a","button","summary"]}),(t,s)=>{const c=i;return l(),p(b,{"enter-active-class":"duration-200 ease-in","enter-from-class":"transform translate-x-1/1","enter-to-class":"opacity-100","leave-active-class":"duration-200 ease-out","leave-from-class":"opacity-100","leave-to-class":"transform translate-x-1/1"},{default:_(()=>[o.modelValue?(l(),v("div",g({key:0,ref_key:"el",ref:a,border:"l base",flex:"~ col gap-1","text-sm":"",absolute:"","of-auto":"","right-0":"","bottom-0":"","glass-effect":"","z-10":"","z-20":"",style:{top:`${k(n)}px`}},t.$attrs),[h(c,{absolute:"","z-20":"","text-xl":"","right-2":"","top-2":"",icon:"carbon-close",onClick:s[0]||(s[0]=$=>t.$emit("close"))}),x("div",C,[y(t.$slots,"default")])],16)):B("",!0)]),_:3})}}});export{N as _};
@@ -0,0 +1 @@
1
+ import{a,o as s,f as i,l as u,t as f,x as c,h as x}from"./entry.91db41b9.js";const l=x("span",{op50:"","text-xs":"","ml-1":""},"ms",-1),p=a({__name:"DurationDisplay",props:{duration:null,factor:{default:1}},setup(e){const r=e;function o(t){return t?(t=t*r.factor,t<.5?"text-gray:50":t>1e3?"text-red-400":t>500?"text-orange-400":t>200?"text-yellow-400":""):"text-gray-400"}function n(t){return t?t<1?"<1":t.toFixed(2):"-"}return(t,m)=>(s(),i("div",{class:c(o(e.duration))},[u(f(n(e.duration)),1),l],2))}});export{p as _};
@@ -0,0 +1 @@
1
+ import{a as u,A as d,m as h,ac as c,o,f as n,u as e,F as m,h as f,t as l,y as k,l as y,x as B}from"./entry.91db41b9.js";import{o as N}from"./editor.e302ec86.js";const g=["title"],v={key:0,op50:""},I=u({__name:"FilepathItem",props:{filepath:null,lineBreak:{type:Boolean},subpath:{type:Boolean}},setup(a){const s=a,i=d(),t=h(()=>s.filepath&&i.value?c(s.filepath,i.value.rootDir):{path:s.filepath});return(r,p)=>(o(),n("button",{"font-mono":"","hover:underline":"",class:B(a.lineBreak?"":"ws-nowrap of-hidden truncate"),title:a.filepath,onClick:p[0]||(p[0]=C=>("openInEditor"in r?r.openInEditor:e(N))(a.filepath))},[e(t).moduleName?(o(),n(m,{key:0},[f("span",null,l(e(t).moduleName),1),a.subpath?(o(),n("span",v,l(e(t).path.slice(e(t).moduleName.length)),1)):k("",!0)],64)):(o(),n(m,{key:1},[y(l(e(t).path),1)],64))],10,g))}});export{I as _};
@@ -0,0 +1 @@
1
+ import{_ as f}from"./TabIcon.vue.d87fc756.js";import{_ as p}from"./NMarkdown.vue.725d1f67.js";import{a as k,o as n,f as s,i as h,h as c,t as i,c as a,y as l,F as g,v as x,w as b,l as y,a1 as N,I as w,k as B}from"./entry.91db41b9.js";const C={flex:"~ col gap2","h-full":"","items-center":"","justify-center":""},$={"text-xl":""},v={flex:"~ gap2 wrap"},P=k({__name:"LaunchPage",props:{icon:null,title:null,description:null,actions:null},emits:["action"],setup(e){return(r,V)=>{const m=f,d=p,_=w,u=B;return n(),s("div",C,[h(m,{"text-5xl":"",mb4:"",icon:e.icon||e.icon,title:e.title},null,8,["icon","title"]),c("h1",$,i(e.title),1),e.description?(n(),a(d,{key:0,op50:"","text-center":"","text-base":"","mt--1":"",mb2:"",markdown:e.description},null,8,["markdown"])):l("",!0),c("div",v,[(n(!0),s(g,null,x(e.actions,(t,o)=>(n(),a(u,N({key:o,n:"solid primary",disabled:t.pending,to:t.src,target:t.src?"_blank":void 0},t.attrs,{onClick:()=>{t.handle?.(),r.$emit("action",o)}}),{default:b(()=>[t.pending?(n(),a(_,{key:0,icon:"carbon-circle-dash","animate-spin":""})):l("",!0),y(" "+i(t.label),1)]),_:2},1040,["disabled","to","target","onClick"]))),128))])])}}});export{P as _};
@@ -0,0 +1 @@
1
+ import{a as i,ay as r,o as b,f as p,aD as u,aM as h,u as a,h as n,H as k,av as f,i as m,J as v,x,I as _}from"./entry.91db41b9.js";const y=["checked","disabled"],V=["disabled"],B={class:"n-transition n-checkbox-box n-checked:n-checkbox-box-checked peer-active:n-active-base peer-focus-visible:n-focus-base"},M=i({__name:"NCheckbox",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(o,{emit:l}){const e=r(o,"modelValue",l,{passive:!0});return(t,s)=>{const d=_;return b(),p("label",{class:"items-center select-none n-disabled:n-disabled n-checkbox hover:n-checkbox-hover",checked:a(e)||null,disabled:o.disabled||null},[u(n("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>k(e)?e.value=c:null),type:"checkbox",class:"absolute op0 peer",disabled:o.disabled,onKeypress:s[1]||(s[1]=f(c=>e.value=!a(e),["enter"]))},null,40,V),[[h,a(e)]]),n("span",B,[m(d,{class:"n-transition op0 n-checkbox-icon transform scale-0 n-checked:op100 n-checked:scale-100"})]),n("span",{class:x([a(e)?"":"op50","n-transition"])},[v(t.$slots,"default")],2)],8,y)}}});export{M as _};
@@ -0,0 +1 @@
1
+ import{a,m as d,aw as r,u as l,o as t,f as s,x as c,t as i}from"./entry.91db41b9.js";const u=["innerHTML"],p=["textContent"],C=a({__name:"NCodeBlock",props:{code:null,lang:null,lines:{type:Boolean,default:!0}},setup(e){const n=e,o=d(()=>r.value?.devtools.renderCodeHighlight(n.code,n.lang)||{code:n.code,supported:!1});return(k,m)=>e.lang&&l(o).supported?(t(),s("pre",{key:0,class:c(["n-code-block",e.lines?"n-code-block-lines":""]),innerHTML:l(o).code},null,10,u)):(t(),s("pre",{key:1,class:c(["n-code-block",e.lines?"n-code-block-lines":""]),textContent:i(e.code)},null,10,p))}});export{C as _};
@@ -0,0 +1 @@
1
+ import{a as e,o as c,c as s,w as r,i,a1 as u,X as l,u as m,af as _,I as p}from"./entry.91db41b9.js";const x=e({__name:"NIconButton",props:{to:null,icon:null},setup(n){const o=n;return(t,f)=>{const a=p;return c(),s(l(n.to?m(_):"button"),u({to:n.to},t.$attrs,{class:"n-transition n-icon-button"}),{default:r(()=>[i(a,{icon:o.icon},null,8,["icon"])]),_:1},16,["to"])}}});export{x as _};
@@ -0,0 +1 @@
1
+ import{a as s,o as t,f as a,x as l,y as o,J as c,h as i,t as r}from"./entry.91db41b9.js";const m={class:"items-center flex flex-gap2"},f=s({__name:"NIconTitle",props:{icon:null,text:null},setup(e){return(n,d)=>(t(),a("div",m,[e.icon?(t(),a("div",{key:0,class:l(e.icon)},null,2)):o("",!0),c(n.$slots,"default",{},()=>[i("div",null,r(e.text),1)])]))}});export{f as _};
@@ -0,0 +1 @@
1
+ import{a as s,u as a,aw as e,o,c as t,X as r,t as l}from"./entry.91db41b9.js";const c=s({__name:"NMarkdown",props:{markdown:null,tag:null},setup(n){return(d,k)=>n.markdown&&a(e)?.devtools?.renderMarkdown?(o(),t(r(n.tag||"span"),{key:0,class:"n-markdown",innerHTML:a(e).devtools.renderMarkdown(n.markdown)},null,8,["innerHTML"])):(o(),t(r(n.tag||"span"),{key:1,class:"n-markdown",textContent:l(n.markdown)},null,8,["textContent"]))}});export{c as _};
@@ -0,0 +1 @@
1
+ import{a as f,o as a,f as l,h as o,x as n,i as m,w as v,J as s,F as x,l as c,t as i,y as d,c as h,aB as b,aC as g,I as y,aj as B}from"./entry.91db41b9.js";import{_ as $}from"./NIconTitle.vue.f40c1405.js";const r=e=>(b("data-v-dcb9bb68"),e=e(),g(),e),C=["open"],I={key:0,class:"op50 text-sm"},N=r(()=>o("div",{class:"flex-auto"},null,-1)),S=r(()=>o("div",{class:"x-divider"},null,-1)),k=f({__name:"NSectionBlock",props:{icon:null,text:null,description:null,containerClass:{default:""},collapse:{type:Boolean,default:!0},open:{type:Boolean,default:!0},padding:{type:[Boolean,String],default:!0}},setup(e){return(t,_)=>{const u=y,p=$;return a(),l(x,null,[o("details",{open:e.open},[o("summary",{class:n(["select-none cursor-pointer p4 hover:bg-active",e.collapse?"":"pointer-events-none"])},[m(p,{icon:e.icon,text:e.text,class:"text-xl op75"},{default:v(()=>[o("div",null,[s(t.$slots,"text",{},()=>[c(i(e.text),1)],!0),e.description||t.$slots.description?(a(),l("div",I,[s(t.$slots,"description",{},()=>[c(i(e.description),1)],!0)])):d("",!0)]),N,s(t.$slots,"actions",{},void 0,!0),e.collapse?(a(),h(u,{key:0,icon:"carbon-chevron-down",class:"op50 cursor-pointer text-base transition duration-500 place-self-start chevron"})):d("",!0)]),_:3},8,["icon","text"])],2),o("div",{class:n(["flex flex-col flex-gap2 pt2 pb6",typeof e.padding=="string"?e.padding:e.padding?"px8":""])},[s(t.$slots,"details",{},void 0,!0),o("div",{class:n([e.containerClass,"mt1"])},[s(t.$slots,"default",{},void 0,!0)],2),s(t.$slots,"footer",{},void 0,!0)],2)],8,C),S],64)}}}),F=B(k,[["__scopeId","data-v-dcb9bb68"]]);export{F as _};
@@ -0,0 +1 @@
1
+ import{a as r,ay as f,o as s,f as l,J as n,aD as m,aN as p,u as b,h,t as v,y as d,H as x,c as y,I as V}from"./entry.91db41b9.js";const k={class:"flex items-center flex n-bg-base rounded py-1 border n-border-base px-2 n-text-input focus-within:n-focus-base focus-within:border-context"},B=["disabled"],N={key:0,value:"",disabled:"",hidden:""},g=r({__name:"NSelect",props:{modelValue:{default:void 0},placeholder:{default:""},icon:{default:""},disabled:{type:Boolean,default:!1}},setup(e,{emit:c}){const o=f(e,"modelValue",c,{passive:!0});return(t,a)=>{const i=V;return s(),l("div",k,[n(t.$slots,"icon",{},()=>[e.icon?(s(),y(i,{key:0,icon:e.icon,class:"op50 mr-0.4em text-1.1em"},null,8,["icon"])):d("",!0)]),m(h("select",{"onUpdate:modelValue":a[0]||(a[0]=u=>x(o)?o.value=u:null),disabled:e.disabled,class:"n-bg-base flex-auto w-full !outline-none"},[e.placeholder?(s(),l("option",N,v(e.placeholder),1)):d("",!0),n(t.$slots,"default")],8,B),[[p,b(o)]])])}}});export{g as _};
@@ -0,0 +1 @@
1
+ import{a as o,ay as c,o as u,f as r,aD as h,aM as b,u as t,h as l,H as p,av as f,J as v}from"./entry.91db41b9.js";const k=["checked","disabled"],m=["disabled"],w=l("div",{class:"n-transition peer-active:n-active-base peer-focus-visible:n-focus-base n-switch-slider n-checked:n-switch-slider-checked"},[l("div",{class:"n-transition n-switch-thumb n-checked:n-switch-thumb-checked"})],-1),V=o({__name:"NSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(a,{emit:d}){const e=c(a,"modelValue",d,{passive:!0});return(i,s)=>(u(),r("label",{class:"n-disabled:n-disabled n-switch n-switch-base",checked:t(e)||null,disabled:a.disabled||null},[h(l("input",{"onUpdate:modelValue":s[0]||(s[0]=n=>p(e)?e.value=n:null),type:"checkbox",class:"absolute op0 peer",disabled:a.disabled,onKeypress:s[1]||(s[1]=f(n=>e.value=!t(e),["enter"]))},null,40,m),[[b,t(e)]]),w,v(i.$slots,"default")],8,k))}});export{V as _};
@@ -0,0 +1 @@
1
+ import{a as d,ay as i,o as a,f as u,J as r,aD as p,aL as f,u as m,h as b,H as x,c as y,y as h,I as V}from"./entry.91db41b9.js";const v={class:"n-bg-base rounded py-1 border n-border-base flex items-center flex n-text-input focus-within:n-focus-base focus-within:border-context px-2"},B=["type","disabled","placeholder"],N=d({__name:"NTextInput",props:{modelValue:{default:""},placeholder:null,icon:null,disabled:{type:Boolean,default:!1},type:{default:"text"}},setup(e,{emit:n}){const t=i(e,"modelValue",n,{passive:!0});return(l,o)=>{const s=V;return a(),u("div",v,[r(l.$slots,"icon",{},()=>[e.icon?(a(),y(s,{key:0,icon:e.icon,class:"op50 mr-0.4em text-1.1em"},null,8,["icon"])):h("",!0)]),p(b("input",{"onUpdate:modelValue":o[0]||(o[0]=c=>x(t)?t.value=c:null),class:"flex-auto n-bg-base w-full !outline-none",type:e.type,disabled:e.disabled,placeholder:e.placeholder},null,8,B),[[f,m(t)]])])}}});export{N as _};
@@ -0,0 +1 @@
1
+ import{a as t,o,f as a,J as s,h as i,c as l,y as r,I as m}from"./entry.91db41b9.js";const p={class:"n-tip n-tip-base"},u=t({__name:"NTip",props:{icon:null},setup(e){return(n,_)=>{const c=m;return o(),a("div",p,[s(n.$slots,"icon",{},()=>[e.icon?(o(),l(c,{key:0,icon:e.icon,class:"n-tip-icon"},null,8,["icon"])):r("",!0)]),i("div",null,[s(n.$slots,"default")])])}}});export{u as _};
@@ -0,0 +1 @@
1
+ import{_ as S}from"./Badge.0f8d5f6f.js";import{_ as A}from"./NCodeBlock.vue.431c1fae.js";import{ak as G,al as H,E as x,C as k,a as J,V as M,am as W,an as q,o as f,f as y,J as z,u as e,i as n,w as d,F as B,t as D,y as R,c as K,h as v,H as I,l as _,k as L,ao as O}from"./entry.91db41b9.js";import{_ as Q}from"./NCheckbox.vue.4b9ea1cc.js";import{_ as X}from"./NTip.vue.130b714b.js";const N=new Map;function Y(t,a){const l=t;return N.has(l)||N.set(l,Z(t,a)),N.get(l)}function Z(t,a){const l=G(),u=H(`npm:check:${t}`,()=>k.checkForUpdateFor(t)).data,i=x("idle"),c=x();l.hook("devtools:terminal:exit",({id:s,code:o})=>{s!==c||!c||(i.value=o===0?"updated":"idle")});async function C(s){if(i.value!=="idle")return;const o=await k.getNpmCommand("update",t,a);if(o&&await s(o.join(" ")))return i.value="running",c.value=(await k.runNpmCommand("update",t,a))?.processId,c.value}async function h(){i.value==="updated"&&await k.restartNuxt()}return{info:u,state:i,update:C,restart:h,processId:c}}const ee={key:0},te={p4:"",flex:"~ col gap-1"},ae={class:"text-lg font-medium leading-6"},oe=v("p",{op50:""}," The following command will be executed in your terminal: ",-1),ne={flex:"~ gap-3","justify-end":"",mt2:""},ce=J({__name:"NpmVersionCheck",props:{packageName:null,options:null,showVersion:{type:Boolean,default:!0}},setup(t){const a=t,l=M(),{info:u,update:i,state:c,processId:C,restart:h}=Y(a.packageName,a.options),s=x(!0),o=x(!0),P=W(),w=q();async function V(){const p=await i(async r=>w.start(r));p&&o.value&&P.value.push({id:p,message:`${a.packageName} has been updated. Do you want to restart the Nuxt server now?`}),p&&s.value&&l.push(`/modules/terminals?id=${encodeURIComponent(p)}`)}return(p,r)=>{const $=S,T=A,b=Q,F=X,U=L,j=O;return f(),y(B,null,[z(p.$slots,"default",{id:e(C),info:e(u),update:V,state:e(c),restart:e(h)},()=>[e(u)&&t.showVersion?(f(),y("code",ee,D(`v${e(u).current}`),1)):R("",!0),e(u)?.latest?(f(),y(B,{key:1},[e(u).needsUpdate?(f(),y("button",{key:0,onClick:r[0]||(r[0]=g=>V())},[n($,{"bg-green-400:10":"","text-green-400":"",title:"updates available",textContent:"updates available"})])):(f(),K($,{key:1,"bg-gray-400:10":"","text-gray-400":"",title:"latest",textContent:"latest"}))],64)):R("",!0)]),n(e(w),null,{default:d(({resolve:g,args:E})=>[n(j,{"model-value":!0,onClose:m=>g(!1)},{default:d(()=>[v("div",te,[v("h3",ae," Update "+D(a.packageName)+"? ",1),oe,n(T,{code:E[0],lang:"bash",px4:"",py2:"",my3:"",border:"~ base rounded",lines:!1},null,8,["code"]),n(b,{modelValue:e(s),"onUpdate:modelValue":r[1]||(r[1]=m=>I(s)?s.value=m:null),n:"primary"},{default:d(()=>[_(" Navigate to terminal ")]),_:1},8,["modelValue"]),n(b,{modelValue:e(o),"onUpdate:modelValue":r[2]||(r[2]=m=>I(o)?o.value=m:null),n:"primary"},{default:d(()=>[_(" Restart Nuxt server after update ")]),_:1},8,["modelValue"]),v("div",ne,[n(F,{n:"sm purple","flex-auto":"",icon:"carbon-chemistry"},{default:d(()=>[_(" Experimental feature. Please make sure to backup your project first. ")]),_:1}),n(U,{onClick:m=>g(!1)},{default:d(()=>[_(" Cancel ")]),_:2},1032,["onClick"]),n(U,{n:"solid primary",onClick:m=>g(!0)},{default:d(()=>[_(" Update ")]),_:2},1032,["onClick"])])])]),_:2},1032,["onClose"])]),_:1})],64)}}});export{ce as _};
@@ -0,0 +1 @@
1
+ import{aj as o,o as e,f as t,h as C}from"./entry.91db41b9.js";const n={},s={viewBox:"0 0 566 154",fill:"none",xmlns:"http://www.w3.org/2000/svg"},H=C("path",{d:"M74.2283 119.873H123.414C124.977 119.874 126.511 119.475 127.864 118.717C129.217 117.959 130.341 116.869 131.121 115.557C131.902 114.244 132.313 112.755 132.312 111.24C132.312 109.725 131.899 108.236 131.118 106.924L98.0856 51.4278C97.3048 50.1156 96.1817 49.0259 94.829 48.2683C93.4764 47.5107 91.942 47.1118 90.38 47.1118C88.8181 47.1118 87.2836 47.5107 85.931 48.2683C84.5784 49.0259 83.4552 50.1156 82.6745 51.4278L74.2283 65.6274L57.7148 37.8605C56.9334 36.5484 55.8097 35.4589 54.4567 34.7014C53.1037 33.9439 51.569 33.5451 50.0068 33.5451C48.4446 33.5451 46.9099 33.9439 45.5569 34.7014C44.2039 35.4589 43.0803 36.5484 42.2989 37.8605L1.1947 106.924C0.41273 108.236 0.000680577 109.725 8.42355e-07 111.24C-0.000678893 112.755 0.410035 114.244 1.19083 115.557C1.97163 116.869 3.09498 117.959 4.44789 118.717C5.80081 119.475 7.33558 119.874 8.89785 119.873H39.7727C52.0057 119.873 61.0271 114.661 67.2346 104.493L82.3054 79.1761L90.3776 65.6274L114.604 106.325H82.3054L74.2283 119.873ZM39.2694 106.311L17.7227 106.306L50.0212 52.0462L66.1369 79.1761L55.3468 97.3092C51.2244 103.907 46.5411 106.311 39.2694 106.311Z",fill:"#00DC82"},null,-1),_=C("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"},null,-1),c=[H,_];function r(L,l){return e(),t("svg",s,c)}const Z=o(n,[["render",r]]);export{Z as _};
@@ -0,0 +1 @@
1
+ import{aJ as v,o as x,f as S,J as d,q as f,a as g,m as M,E as C,c as E,w as p,u as l,aK as k,i as c}from"./entry.91db41b9.js";const y={name:"splitpanes",emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click"],props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:()=>({container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}),computed:{panesCount(){return this.panes.length},indexedPanes(){return this.panes.reduce((e,s)=>(e[s.id]=s)&&e,{})}},methods:{updatePaneComponents(){this.panes.forEach(e=>{e.update&&e.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[e.id].size}%`})})},bindEvents(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseDown(e,s){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=s},onMouseMove(e){this.touch.mouseDown&&(e.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(e)),this.$emit("resize",this.panes.map(s=>({min:s.min,max:s.max,size:s.size}))))},onMouseUp(){this.touch.dragging&&this.$emit("resized",this.panes.map(e=>({min:e.min,max:e.max,size:e.size}))),this.touch.mouseDown=!1,setTimeout(()=>{this.touch.dragging=!1,this.unbindEvents()},100)},onSplitterClick(e,s){"ontouchstart"in window&&(e.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===s?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(e,s),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=s,this.splitterTaps.timeoutId=setTimeout(()=>{this.splitterTaps.splitter=null},500)))),this.touch.dragging||this.$emit("splitter-click",this.panes[s])},onSplitterDblClick(e,s){let n=0;this.panes=this.panes.map((i,t)=>(i.size=t===s?i.max:i.min,t!==s&&(n+=i.min),i)),this.panes[s].size-=n,this.$emit("pane-maximize",this.panes[s]),this.$emit("resized",this.panes.map(i=>({min:i.min,max:i.max,size:i.size})))},onPaneClick(e,s){this.$emit("pane-click",this.indexedPanes[s])},getCurrentMouseDrag(e){const s=this.container.getBoundingClientRect(),{clientX:n,clientY:i}="ontouchstart"in window&&e.touches?e.touches[0]:e;return{x:n-s.left,y:i-s.top}},getCurrentDragPercentage(e){e=e[this.horizontal?"y":"x"];const s=this.container[this.horizontal?"clientHeight":"clientWidth"];return this.rtl&&!this.horizontal&&(e=s-e),e*100/s},calculatePanesSize(e){const s=this.touch.activeSplitter;let n={prevPanesSize:this.sumPrevPanesSize(s),nextPanesSize:this.sumNextPanesSize(s),prevReachedMinPanes:0,nextReachedMinPanes:0};const i=0+(this.pushOtherPanes?0:n.prevPanesSize),t=100-(this.pushOtherPanes?0:n.nextPanesSize),a=Math.max(Math.min(this.getCurrentDragPercentage(e),t),i);let o=[s,s+1],r=this.panes[o[0]]||null,h=this.panes[o[1]]||null;const u=r.max<100&&a>=r.max+n.prevPanesSize,P=h.max<100&&a<=100-(h.max+this.sumNextPanesSize(s+1));if(u||P){u?(r.size=r.max,h.size=Math.max(100-r.max-n.prevPanesSize-n.nextPanesSize,0)):(r.size=Math.max(100-h.max-n.prevPanesSize-this.sumNextPanesSize(s+1),0),h.size=h.max);return}if(this.pushOtherPanes){const m=this.doPushOtherPanes(n,a);if(!m)return;({sums:n,panesToResize:o}=m),r=this.panes[o[0]]||null,h=this.panes[o[1]]||null}r!==null&&(r.size=Math.min(Math.max(a-n.prevPanesSize-n.prevReachedMinPanes,r.min),r.max)),h!==null&&(h.size=Math.min(Math.max(100-a-n.nextPanesSize-n.nextReachedMinPanes,h.min),h.max))},doPushOtherPanes(e,s){const n=this.touch.activeSplitter,i=[n,n+1];return s<e.prevPanesSize+this.panes[i[0]].min&&(i[0]=this.findPrevExpandedPane(n).index,e.prevReachedMinPanes=0,i[0]<n&&this.panes.forEach((t,a)=>{a>i[0]&&a<=n&&(t.size=t.min,e.prevReachedMinPanes+=t.min)}),e.prevPanesSize=this.sumPrevPanesSize(i[0]),i[0]===void 0)?(e.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach((t,a)=>{a>0&&a<=n&&(t.size=t.min,e.prevReachedMinPanes+=t.min)}),this.panes[i[1]].size=100-e.prevReachedMinPanes-this.panes[0].min-e.prevPanesSize-e.nextPanesSize,null):s>100-e.nextPanesSize-this.panes[i[1]].min&&(i[1]=this.findNextExpandedPane(n).index,e.nextReachedMinPanes=0,i[1]>n+1&&this.panes.forEach((t,a)=>{a>n&&a<i[1]&&(t.size=t.min,e.nextReachedMinPanes+=t.min)}),e.nextPanesSize=this.sumNextPanesSize(i[1]-1),i[1]===void 0)?(e.nextReachedMinPanes=0,this.panes[this.panesCount-1].size=this.panes[this.panesCount-1].min,this.panes.forEach((t,a)=>{a<this.panesCount-1&&a>=n+1&&(t.size=t.min,e.nextReachedMinPanes+=t.min)}),this.panes[i[0]].size=100-e.prevPanesSize-e.nextReachedMinPanes-this.panes[this.panesCount-1].min-e.nextPanesSize,null):{sums:e,panesToResize:i}},sumPrevPanesSize(e){return this.panes.reduce((s,n,i)=>s+(i<e?n.size:0),0)},sumNextPanesSize(e){return this.panes.reduce((s,n,i)=>s+(i>e+1?n.size:0),0)},findPrevExpandedPane(e){return[...this.panes].reverse().find(s=>s.index<e&&s.size>s.min)||{}},findNextExpandedPane(e){return this.panes.find(s=>s.index>e+1&&s.size>s.min)||{}},checkSplitpanesNodes(){Array.from(this.container.children).forEach(e=>{const s=e.classList.contains("splitpanes__pane"),n=e.classList.contains("splitpanes__splitter");!s&&!n&&(e.parentNode.removeChild(e),console.warn("Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed."))})},addSplitter(e,s,n=!1){const i=e-1,t=document.createElement("div");t.classList.add("splitpanes__splitter"),n||(t.onmousedown=a=>this.onMouseDown(a,i),typeof window<"u"&&"ontouchstart"in window&&(t.ontouchstart=a=>this.onMouseDown(a,i)),t.onclick=a=>this.onSplitterClick(a,i+1)),this.dblClickSplitter&&(t.ondblclick=a=>this.onSplitterDblClick(a,i+1)),s.parentNode.insertBefore(t,s)},removeSplitter(e){e.onmousedown=void 0,e.onclick=void 0,e.ondblclick=void 0,e.parentNode.removeChild(e)},redoSplitters(){const e=Array.from(this.container.children);e.forEach(n=>{n.className.includes("splitpanes__splitter")&&this.removeSplitter(n)});let s=0;e.forEach(n=>{n.className.includes("splitpanes__pane")&&(!s&&this.firstSplitter?this.addSplitter(s,n,!0):s&&this.addSplitter(s,n),s++)})},requestUpdate({target:e,...s}){const n=this.indexedPanes[e._.uid];Object.entries(s).forEach(([i,t])=>n[i]=t)},onPaneAdd(e){let s=-1;Array.from(e.$el.parentNode.children).some(t=>(t.className.includes("splitpanes__pane")&&s++,t===e.$el));const n=parseFloat(e.minSize),i=parseFloat(e.maxSize);this.panes.splice(s,0,{id:e._.uid,index:s,min:isNaN(n)?0:n,max:isNaN(i)?100:i,size:e.size===null?null:parseFloat(e.size),givenSize:e.size,update:e.update}),this.panes.forEach((t,a)=>t.index=a),this.ready&&this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({addedPane:this.panes[s]}),this.$emit("pane-add",{index:s,panes:this.panes.map(t=>({min:t.min,max:t.max,size:t.size}))})})},onPaneRemove(e){const s=this.panes.findIndex(i=>i.id===e._.uid),n=this.panes.splice(s,1)[0];this.panes.forEach((i,t)=>i.index=t),this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({removedPane:{...n,index:s}}),this.$emit("pane-remove",{removed:n,panes:this.panes.map(i=>({min:i.min,max:i.max,size:i.size}))})})},resetPaneSizes(e={}){!e.addedPane&&!e.removedPane?this.initialPanesSizing():this.panes.some(s=>s.givenSize!==null||s.min||s.max<100)?this.equalizeAfterAddOrRemove(e):this.equalize(),this.ready&&this.$emit("resized",this.panes.map(s=>({min:s.min,max:s.max,size:s.size})))},equalize(){const e=100/this.panesCount;let s=0;const n=[],i=[];this.panes.forEach(t=>{t.size=Math.max(Math.min(e,t.max),t.min),s-=t.size,t.size>=t.max&&n.push(t.id),t.size<=t.min&&i.push(t.id)}),s>.1&&this.readjustSizes(s,n,i)},initialPanesSizing(){let e=100;const s=[],n=[];let i=0;this.panes.forEach(a=>{e-=a.size,a.size!==null&&i++,a.size>=a.max&&s.push(a.id),a.size<=a.min&&n.push(a.id)});let t=100;e>.1&&(this.panes.forEach(a=>{a.size===null&&(a.size=Math.max(Math.min(e/(this.panesCount-i),a.max),a.min)),t-=a.size}),t>.1&&this.readjustSizes(e,s,n))},equalizeAfterAddOrRemove({addedPane:e,removedPane:s}={}){let n=100/this.panesCount,i=0;const t=[],a=[];e&&e.givenSize!==null&&(n=(100-e.givenSize)/(this.panesCount-1)),this.panes.forEach(o=>{i-=o.size,o.size>=o.max&&t.push(o.id),o.size<=o.min&&a.push(o.id)}),!(Math.abs(i)<.1)&&(this.panes.forEach(o=>{e&&e.givenSize!==null&&e.id===o.id||(o.size=Math.max(Math.min(n,o.max),o.min)),i-=o.size,o.size>=o.max&&t.push(o.id),o.size<=o.min&&a.push(o.id)}),i>.1&&this.readjustSizes(i,t,a))},readjustSizes(e,s,n){let i;e>0?i=e/(this.panesCount-s.length):i=e/(this.panesCount-n.length),this.panes.forEach((t,a)=>{if(e>0&&!s.includes(t.id)){const o=Math.max(Math.min(t.size+i,t.max),t.min),r=o-t.size;e-=r,t.size=o}else if(!n.includes(t.id)){const o=Math.max(Math.min(t.size+i,t.max),t.min),r=o-t.size;e-=r,t.size=o}t.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[t.id].size}%`})}),Math.abs(e)>.1&&this.$nextTick(()=>{this.ready&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})}},watch:{panes:{deep:!0,immediate:!1,handler(){this.updatePaneComponents()}},horizontal(){this.updatePaneComponents()},firstSplitter(){this.redoSplitters()},dblClickSplitter(e){[...this.container.querySelectorAll(".splitpanes__splitter")].forEach((s,n)=>{s.ondblclick=e?i=>this.onSplitterDblClick(i,n):void 0})}},beforeUnmount(){this.ready=!1},mounted(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit("ready"),this.ready=!0},render(){return v("div",{ref:"container",class:["splitpanes",`splitpanes--${this.horizontal?"horizontal":"vertical"}`,{"splitpanes--dragging":this.touch.dragging}]},this.$slots.default())}},b=(e,s)=>{const n=e.__vccOpts||e;for(const[i,t]of s)n[i]=t;return n},w={name:"pane",inject:["requestUpdate","onPaneAdd","onPaneRemove","onPaneClick"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:()=>({style:{}}),mounted(){this.onPaneAdd(this)},beforeUnmount(){this.onPaneRemove(this)},methods:{update(e){this.style=e}},computed:{sizeNumber(){return this.size||this.size===0?parseFloat(this.size):null},minSizeNumber(){return parseFloat(this.minSize)},maxSizeNumber(){return parseFloat(this.maxSize)}},watch:{sizeNumber(e){this.requestUpdate({target:this,size:e})},minSizeNumber(e){this.requestUpdate({target:this,min:e})},maxSizeNumber(e){this.requestUpdate({target:this,max:e})}}};function N(e,s,n,i,t,a){return x(),S("div",{class:"splitpanes__pane",onClick:s[0]||(s[0]=o=>a.onPaneClick(o,e._.uid)),style:f(e.style)},[d(e.$slots,"default")],4)}const z=b(w,[["render",N]]),R=g({__name:"PanelLeftRight",props:{storageKey:null},setup(e){const s=e,n=30,i=k(),t=s.storageKey,a=t?M({get:()=>i.value[t]||n,set:o=>{i.value[t]=o}}):C(n);return(o,r)=>(x(),E(l(y),{"h-full":"","of-hidden":"",onResize:r[0]||(r[0]=h=>a.value=h[0].size)},{default:p(()=>[c(l(z),{border:"r base","h-full":"",class:"of-auto!",size:l(a),"min-size":"10"},{default:p(()=>[d(o.$slots,"left")]),_:3},8,["size"]),c(l(z),{"h-full":"",relative:"",class:"of-auto!","min-size":"10"},{default:p(()=>[d(o.$slots,"right")]),_:3})]),_:3}))}});export{R as _};
@@ -0,0 +1 @@
1
+ import{_ as h}from"./NIconButton.vue.9bdc7adc.js";import{a as N,ay as S,L as x,E as B,az as O,o as i,f as c,h as u,x as d,u as s,t as V,y as m,J as C,n as w,g as J,c as v,F as j,a1 as z,H as P,aA as $,a4 as A}from"./entry.91db41b9.js";const E=["open"],M={flex:"~ gap2","select-none":"","items-center":"",px4:""},R={key:1,p5:"","bg-active":"",italic:""},F=u("span",{op50:""},"No data",-1),D=[F],L=N({__name:"StateEditor",props:{name:null,open:{type:Boolean},state:null,readonly:{type:Boolean}},emits:["update:open"],setup(t,{emit:k}){const r=t,n=S(r,"open",k,{passive:!0}),g=x(),l=B();l.value=JSON.parse(JSON.stringify(r.state));const y=O(l,e=>{p(e,r.state)},{deep:!0});function p(e,o){for(const a in e)e[a]===null?o[a]=null:Array.isArray(e[a])?o[a]=e[a].slice():typeof e[a]=="object"?p(e[a],o[a]):o[a]=e[a]}async function b(){y.pause(),l.value=JSON.parse(JSON.stringify(r.state)),await A(),y.resume()}return(e,o)=>{const a=h;return i(),c("div",{class:"state-editor-details",open:t.name?s(n):!0},[u("div",M,[t.name?(i(),c("button",{key:0,flex:"~","items-center":"","cursor-pointer":"",class:d(s(n)?"":"op50"),onClick:o[0]||(o[0]=f=>n.value=!s(n))},[u("div",{transition:"","i-carbon-chevron-right":"",class:d(s(n)?"rotate-90 op0":"")},null,2),u("code",{py1:"","font-mono":"",px3:"",class:d(s(n)?"bg-[#8881] rounded-t":"rounded hover:bg-active")},V(t.name),3)],2)):m("",!0),C(e.$slots,"actions",w(J({isOpen:s(n),name:t.name,state:t.state}))),s(n)?(i(),v(a,{key:1,title:"Refresh View",icon:"carbon-renew",onClick:b})):m("",!0)]),s(n)||!t.name?(i(),c(j,{key:0},[t.state&&Object.keys(t.state).length>0?(i(),v(s($),z({key:0,modelValue:s(l),"onUpdate:modelValue":o[1]||(o[1]=f=>P(l)?l.value=f:null)},e.$attrs,{class:["json-editor-vue",[s(g).value==="dark"?"jse-theme-dark":"",(t.name,"")]],"main-menu-bar":!1,"navigation-bar":!1,"status-bar":!1,"read-only":t.readonly,indentation:2,"tab-size":2}),null,16,["modelValue","class","read-only"])):(i(),c("div",R,D))],64)):m("",!0)],8,E)}}});export{L as _};
@@ -0,0 +1 @@
1
+ import{a as l,o as n,f as i,a1 as a}from"./entry.91db41b9.js";const c=["src","alt"],o=["title"],m=l({__name:"TabIcon",props:{icon:null,title:null},setup(t){return(e,s)=>t.icon&&(t.icon.startsWith("/")||t.icon.match(/^https?:/))?(n(),i("img",a({key:0,style:{width:"1em",height:"1em"}},e.$attrs,{src:t.icon,alt:t.title}),null,16,c)):(n(),i("div",a({key:1,style:{width:"1em",height:"1em"}},e.$attrs,{class:t.icon||"carbon-bring-forward",title:t.title}),null,16,o))}});export{m as _};
@@ -1 +1 @@
1
- import{a as o,b as c,e as a,f as i,h as e,o as r}from"./entry.53ee6248.js";const p={flex:"~","items-center":"","justify-center":"","bg-base":"","h-screen":"",px5:""},l=e("div",null," Inspecting Vue components ",-1),f=o({__name:"__inspecting",setup(_){const s=c();a("keydown",n=>{n.key==="Escape"&&t()});function t(){s.value?.inspector?.disable()}return(n,u)=>(r(),i("div",p,[e("div",{absolute:"","right-0":"","top-0":"",p2:""},[e("button",{"text-xl":"",op50:"","hover:op100":"",ma:"","carbon-close":"",onClick:t})]),l]))}});export{f as default};
1
+ import{a as o,b as c,e as a,o as i,f as r,h as e}from"./entry.91db41b9.js";const p={flex:"~","items-center":"","justify-center":"","bg-base":"","h-screen":"",px5:""},l=e("div",null," Inspecting Vue components ",-1),f=o({__name:"__inspecting",setup(_){const s=c();a("keydown",n=>{n.key==="Escape"&&t()});function t(){s.value?.inspector?.disable()}return(n,u)=>(i(),r("div",p,[e("div",{absolute:"","right-0":"","top-0":"",p2:""},[e("button",{"text-xl":"",op50:"","hover:op100":"",ma:"","carbon-close":"",onClick:t})]),l]))}});export{f as default};
@@ -0,0 +1,16 @@
1
+ import{_ as G}from"./NTextInput.vue.543d16d0.js";import{a as P,m as h,p as K,o,f as l,q,u as n,c as m,h as e,t as u,s as H,r as U,F as $,v as B,x as V,w as A,l as F,y as _,k as R,z as T,A as W,B as J,i as w,C as L,D as Q,E as z,G as X,H as Y,I as Z}from"./entry.91db41b9.js";import{h as ee}from"./index.c769634a.js";import{_ as te}from"./NSectionBlock.aae79980.js";import{_ as ne}from"./FilepathItem.vue.e8c3a52c.js";import{_ as se}from"./NIconButton.vue.9bdc7adc.js";import{_ as oe}from"./NCodeBlock.vue.431c1fae.js";import{u as M,o as ae}from"./editor.e302ec86.js";import{_ as ie}from"./DrawerRight.vue.6b933252.js";import{F as le}from"./fuse.esm.88e2763d.js";import"./NIconTitle.vue.f40c1405.js";import"./context.c8f67be1.js";const re=P({__name:"AssetFontPreview",props:{asset:null},setup(a){const s=a,t=h(()=>`devtools-assets-${ee(s.asset)}`);return K(h(()=>`
2
+ @font-face {
3
+ font-family: '${t.value}';
4
+ src: url('${s.asset.publicPath}');
5
+ }
6
+ `)),(f,v)=>(o(),l("div",{"of-hidden":"",style:q({fontFamily:`'${n(t)}'`})}," Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz ",4))}}),ce={"items-center":"","of-hidden":"","justify-center":"",flex:"",p1:"","bg-active":"","object-cover":""},de=["src"],ue={key:2,op20:"","text-3xl":"","i-carbon-document":""},pe={key:3,"w-full":"",p4:"","self-start":""},me=["textContent"],he={key:4,op20:"","text-3xl":"","i-carbon-help":""},O=P({__name:"AssetPreview",props:{asset:null,textContent:null},setup(a){return(s,t)=>{const f=re;return o(),l("div",ce,[a.asset.type==="image"?(o(),l("img",{key:0,src:a.asset.publicPath},null,8,de)):a.asset.type==="font"?(o(),m(f,{key:a.asset.publicPath,asset:a.asset,p2:"","self-stretch":"","text-2xl":""},null,8,["asset"])):a.asset.type==="text"&&!a.textContent?(o(),l("div",ue)):a.asset.type==="text"&&a.textContent?(o(),l("div",pe,[e("pre",{"of-hidden":"","font-mono":"","text-xs":"","max-h-10rem":"",textContent:u(a.textContent)},null,8,me)])):(o(),l("div",he))])}}}),_e={key:0,"n-code-block":"",relative:""},fe={flex:"~ wrap","w-full":""},ve=["onClick"],xe=e("div",{"flex-auto":""},null,-1),ge=e("div",{"x-divider":""},null,-1),be=P({__name:"CodeSnippets",props:{codeSnippets:null},setup(a){const s=a,t=H(s.codeSnippets[0]),f=M();return U(()=>{s.codeSnippets.includes(t.value)||(t.value=s.codeSnippets[0])}),(v,g)=>{const d=R,y=oe;return a.codeSnippets.length?(o(),l("div",_e,[e("div",fe,[(o(!0),l($,null,B(a.codeSnippets,(b,S)=>(o(),l("button",{key:S,p2:"",border:"r base",hover:"bg-active",class:V(b===n(t)?"bg-active":""),onClick:x=>t.value=b},[e("div",{class:V(b===n(t)?"":"op50")},u(b.name),3)],10,ve))),128)),xe,n(t)?.docs?(o(),m(d,{key:0,to:n(t).docs,target:"_blank",icon:"carbon-help",n:"sm primary",border:"none",my1:"","px-2":""},{default:A(()=>[F(" Docs ")]),_:1},8,["to"])):_("",!0),n(t)?(o(),m(d,{key:1,icon:"carbon-copy",n:"sm primary",border:"none","px-2":"",my1:"",mr1:"",onClick:g[0]||(g[0]=b=>n(f)(n(t).code))},{default:A(()=>[F(" Copy ")]),_:1})):_("",!0)]),ge,n(t)?(o(),m(y,{key:0,code:n(t).code,lang:n(t).lang,lines:!1,"w-full":"","of-auto":"",p3:""},null,8,["code","lang"])):_("",!0)])):_("",!0)}}}),we={flex:"~ col gap-4","w-full":"","of-hidden":"","min-h-full":"",p4:""},ye=e("div",{flex:"~ gap2",op50:"","items-center":"","mb--2":""},[e("div",{"x-divider":""}),e("div",{"flex-none":""}," Preview "),e("div",{"x-divider":""})],-1),$e={flex:"~","items-center":"","justify-center":""},ke=e("div",{op50:"","mb--2":"",flex:"~ gap2","items-center":""},[e("div",{"x-divider":""}),e("div",{"flex-none":""}," Details "),e("div",{"x-divider":""})],-1),Ce={"w-full":"","max-w-full":"","table-fixed":""},Pe=e("td",{op50:"","text-right":"",pr5:"","ws-nowrap":"","w-30":""}," Filepath ",-1),Se={flex:"~ gap-1","items-center":""},Ae=e("div",{"flex-auto":""},null,-1),Ie=e("td",{"text-right":"",op50:"",pr5:"","w-30":"","ws-nowrap":""}," Public Path ",-1),Ne={flex:"~ gap-1","items-center":""},Be={"font-mono":""},Fe=e("div",{"flex-auto":""},null,-1),De=e("td",{"text-right":"",op50:"",pr5:"","w-30":"","ws-nowrap":""}," Type ",-1),ze={capitalize:""},je=e("td",{"text-right":"",op50:"",pr5:"","w-30":"","ws-nowrap":""}," Image Size ",-1),Ee={key:0},Ve=e("td",{"text-right":"",op50:"",pr5:"","w-30":"","ws-nowrap":""}," Aspect Ratio ",-1),Te=e("td",{"text-right":"",op50:"",pr5:"","w-30":"","ws-nowrap":""}," File size ",-1),Le=e("td",{"text-right":"",op50:"",pr5:"","w-30":"","ws-nowrap":""}," Last modified ",-1),Re={op70:""},Me=e("div",{op50:"","mb--2":"",flex:"~ gap2","items-center":""},[e("div",{"x-divider":""}),e("div",{"flex-none":""}," Actions "),e("div",{"x-divider":""})],-1),Oe={flex:"~ gap2 wrap"},Ge=e("div",{"flex-auto":""},null,-1),Ke=P({__name:"AssetDetails",props:{asset:null},setup(a){const s=a,t=T(()=>{if(s.asset.type==="image")return L.getImageMeta(s.asset.filePath)}),f=T(()=>{if(s.asset.type==="text")return L.getTextAssetContent(s.asset.filePath)}),v=W(),g=h(()=>(v.value?._installedModules||[]).some(r=>r.meta?.name==="@nuxt/image"||r.meta?.name==="@nuxt/image-edge")),d=h(()=>{const i=[];if(s.asset.type==="image"){const r=t.value?.width?`
7
+ width="${t.value.width}"
8
+ height="${t.value.height}" `:" ";return i.push({lang:"vue-html",code:`<img${r}
9
+ src="${s.asset.publicPath}"
10
+ />`,name:"Plain Image"}),g.value&&i.push({lang:"vue-html",code:`<NuxtImage${r}
11
+ src="${s.asset.publicPath}"
12
+ />`,name:"Nuxt Image",docs:"https://image.nuxtjs.org/components/nuxt-img"},{lang:"vue-html",code:`<NuxtPicture${r}
13
+ src="${s.asset.publicPath}"
14
+ />`,name:"Nuxt Picture",docs:"https://image.nuxtjs.org/components/nuxt-picture"}),i}return i.push({lang:"html",code:`<a download href="${s.asset.publicPath}">
15
+ Download ${s.asset.path.split("/").slice(-1)[0]}
16
+ </a>`,name:"Download link"}),i}),y=M(),b=J(()=>s.asset.mtime),S=h(()=>{const i=s.asset.size;return i<1024?`${i} B`:i<1024*1024?`${(i/1024).toFixed(2)} KB`:`${(i/1024/1024).toFixed(2)} MB`}),x=h(()=>{if(!t.value?.width||!t.value?.height)return"";const i=(k,C)=>C?i(C,k%C):k,r=i(t.value.width,t.value.height);return r>3?`${t.value.width/r}:${t.value.height/r}`:""}),p=h(()=>["image","text","video","font"].includes(s.asset.type));return(i,r)=>{const k=O,C=ne,I=se,D=R,j=be;return o(),l("div",we,[n(p)?(o(),l($,{key:0},[ye,e("div",$e,[w(k,{rounded:"","max-h-80":"","w-auto":"","min-h-20":"","min-w-20":"",border:"~ base",asset:a.asset,"text-content":n(f)},null,8,["asset","text-content"])])],64)):_("",!0),ke,e("table",Ce,[e("tbody",null,[e("tr",null,[Pe,e("td",null,[e("div",Se,[w(C,{filepath:a.asset.filePath,"w-full":"","line-break":"","ws-normal":"","text-left":""},null,8,["filepath"]),Ae,w(I,{title:"Open in Editor",icon:"carbon-launch",onClick:r[0]||(r[0]=c=>("openInEditor"in i?i.openInEditor:n(ae))(a.asset.filePath))})])])]),e("tr",null,[Ie,e("td",null,[e("div",Ne,[e("div",Be,u(a.asset.publicPath),1),Fe,w(I,{to:a.asset.publicPath,icon:"carbon-launch",target:"_blank",title:"Open in browser"},null,8,["to"]),w(I,{title:"Copy public path",icon:"carbon-copy",onClick:r[1]||(r[1]=c=>n(y)(a.asset.publicPath))})])])]),e("tr",null,[De,e("td",ze,u(a.asset.type),1)]),n(t)?.width?(o(),l($,{key:0},[e("tr",null,[je,e("td",null,u(n(t).width)+" x "+u(n(t).height),1)]),n(x)?(o(),l("tr",Ee,[Ve,e("td",null,u(n(x)),1)])):_("",!0)],64)):_("",!0),e("tr",null,[Te,e("td",null,u(n(S)),1)]),e("tr",null,[Le,e("td",null,[F(u(new Date(a.asset.mtime).toLocaleString())+" ",1),e("span",Re,"("+u(n(b))+")",1)])])])]),Me,e("div",Oe,[w(D,{to:a.asset.publicPath,download:"",target:"_blank",icon:"carbon-download"},{default:A(()=>[F(" Download ")]),_:1},8,["to"]),a.asset.type==="image"?(o(),m(D,{key:0,disabled:"",icon:"carbon-image-service"},{default:A(()=>[F(" Optimize image (Coming soon) ")]),_:1})):_("",!0)]),Ge,n(d).length?(o(),m(j,{key:1,border:"t base","mx--4":"","mb--4":"","code-snippets":n(d)},null,8,["code-snippets"])):_("",!0)])}}}),qe={flex:"~ col gap-1",hover:"bg-active",rounded:"","of-hidden":"","items-center":"",p2:""},He={"of-hidden":"","w-full":"","ws-nowrap":"","text-center":"",truncate:"","text-xs":""},Ue=P({__name:"AssetGridItem",props:{asset:null,folder:null},setup(a){const s=a,t=h(()=>s.folder&&s.asset.path.startsWith(s.folder)?s.asset.path.slice(s.folder.length):s.asset.path);return(f,v)=>{const g=O;return o(),l("button",qe,[w(g,{rounded:"","w-30":"","h-30":"",border:"~ base",asset:a.asset},null,8,["asset"]),e("div",He,u(n(t)),1)])}}}),We={flex:"~ gap-1","w-full":"","items-center":"",hover:"bg-active",rounded:"",px4:"",py2:""},Je={"text-center":"","ws-nowrap":"","of-hidden":"",truncate:""},Qe=P({__name:"AssetListItem",props:{asset:null},setup(a){const s=a,t=h(()=>s.asset.type==="image"?"i-carbon-image":s.asset.type==="video"?"i-carbon-video":s.asset.type==="audio"?"i-carbon-volume-up":s.asset.type==="font"?"i-carbon-text-small-caps":s.asset.type==="text"?"i-carbon-document":s.asset.type==="json"?"i-carbon-json":"i-carbon-document-blank");return(f,v)=>(o(),l("button",We,[e("div",{class:V(n(t))},null,2),e("div",Je,u(a.asset.path),1)]))}}),Xe={"h-full":"","of-auto":""},Ye={flex:"~ gap4"},Ze={"flex-none":"",flex:"~ gap4"},et={op50:""},tt={key:0},nt={px2:"","mt--4":"",grid:"~ cols-minmax-8rem"},st={key:1,p2:"",grid:"~ cols-minmax-8rem"},ot={key:1},xt=P({__name:"assets",setup(a){const s=Q(),t=z(""),f=h(()=>new le(s.value||[],{keys:["path"]})),v=h(()=>t.value?f.value.search(t.value).map(p=>p.item):s.value||[]),g=h(()=>{const x={};for(const p of v.value){const i=`${p.path.split("/").slice(0,-1).join("/")}/`;x[i]||(x[i]=[]),x[i].push(p)}return Object.entries(x).sort(([p],[i])=>p.localeCompare(i))}),d=z(),y=z("grid");function b(){y.value=y.value==="list"?"grid":"list"}X("Escape",()=>{d.value=void 0});const S=z();return(x,p)=>{const i=G,r=Z,k=Ue,C=te,I=Qe,D=Ke,j=ie;return o(),l("div",Xe,[e("div",{ref_key:"navbar",ref:S,flex:"~ col gap-2",border:"b base",p4:"","navbar-glass":"","flex-1":"",pb2:""},[e("div",Ye,[w(i,{modelValue:n(t),"onUpdate:modelValue":p[0]||(p[0]=c=>Y(t)?t.value=c:null),placeholder:"Search...",icon:"carbon-search","flex-auto":"",p:"x5 y2",n:"primary"},null,8,["modelValue"]),e("div",Ze,[e("button",{title:"Toggle view",onClick:b},[n(y)==="grid"?(o(),m(r,{key:0,icon:"i-carbon-list"})):(o(),m(r,{key:1,icon:"i-carbon-grid"}))])])]),e("div",et,[n(t)?(o(),l("span",tt,u(n(v).length)+" matched · ",1)):_("",!0),e("span",null,u(n(s)?.length)+" assets in total",1)])],512),n(y)==="grid"?(o(),l($,{key:0},[n(g).length>1?(o(!0),l($,{key:0},B(n(g),([c,N])=>(o(),m(C,{key:c,text:c,description:`${N.length} items`,open:N.length<30,padding:!1},{default:A(()=>[e("div",nt,[(o(!0),l($,null,B(N,E=>(o(),m(k,{key:E.path,asset:E,folder:c,onClick:at=>d.value=E},null,8,["asset","folder","onClick"]))),128))])]),_:2},1032,["text","description","open"]))),128)):(o(),l("div",st,[(o(!0),l($,null,B(n(v),c=>(o(),m(k,{key:c.path,asset:c,onClick:N=>d.value=c},null,8,["asset","onClick"]))),128))]))],64)):(o(),l("div",ot,[(o(!0),l($,null,B(n(v),c=>(o(),m(I,{key:c.path,asset:c,onClick:N=>d.value=c},null,8,["asset","onClick"]))),128))])),w(j,{"model-value":!!n(d),"w-120":"","auto-close":"",navbar:n(S),onClose:p[1]||(p[1]=c=>d.value=void 0)},{default:A(()=>[n(d)?(o(),m(D,{key:0,asset:n(d)},null,8,["asset"])):_("",!0)]),_:1},8,["model-value","navbar"])])}}});export{xt as default};