@qwik.dev/devtools 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -47
  3. package/dist/component/_virtual/_commonjsHelpers.qwik.cjs +6 -0
  4. package/dist/component/_virtual/_commonjsHelpers.qwik.mjs +6 -0
  5. package/dist/component/devtools.css.qwik.cjs +3 -0
  6. package/dist/component/devtools.css.qwik.mjs +4 -0
  7. package/dist/component/devtools.qwik.cjs +537 -0
  8. package/dist/component/devtools.qwik.mjs +537 -0
  9. package/dist/component/index.qwik.cjs +4 -0
  10. package/dist/component/index.qwik.mjs +4 -0
  11. package/dist/component/lib-types/devtools/src/index.d.ts +1 -0
  12. package/dist/component/lib-types/devtools/src/utils/location.d.ts +1 -0
  13. package/dist/component/node_modules/.pnpm/@qwikest_icons@0.0.13_@builder.io_qwik@1.11.0_vite@5.4.10_@types_node@20.14.11__/node_modules/@qwikest/icons/lib/hi.qwik.qwik.cjs +60 -0
  14. package/dist/component/node_modules/.pnpm/@qwikest_icons@0.0.13_@builder.io_qwik@1.11.0_vite@5.4.10_@types_node@20.14.11__/node_modules/@qwikest/icons/lib/hi.qwik.qwik.mjs +60 -0
  15. package/dist/component/node_modules/.pnpm/@qwikest_icons@0.0.13_@builder.io_qwik@1.11.0_vite@5.4.10_@types_node@20.14.11__/node_modules/@qwikest/icons/lib/lu.qwik.qwik.cjs +32 -0
  16. package/dist/component/node_modules/.pnpm/@qwikest_icons@0.0.13_@builder.io_qwik@1.11.0_vite@5.4.10_@types_node@20.14.11__/node_modules/@qwikest/icons/lib/lu.qwik.qwik.mjs +32 -0
  17. package/dist/component/node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.qwik.cjs +54 -0
  18. package/dist/component/node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.qwik.mjs +54 -0
  19. package/dist/component/node_modules/.pnpm/birpc@0.2.19/node_modules/birpc/dist/index.qwik.cjs +128 -0
  20. package/dist/component/node_modules/.pnpm/birpc@0.2.19/node_modules/birpc/dist/index.qwik.mjs +128 -0
  21. package/dist/component/node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.qwik.cjs +149 -0
  22. package/dist/component/node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.qwik.mjs +150 -0
  23. package/dist/component/node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.qwik.cjs +36 -0
  24. package/dist/component/node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.qwik.mjs +36 -0
  25. package/dist/component/node_modules/.pnpm/dree@5.1.5/node_modules/dree/bundled/lib/esm/index.esm.qwik.cjs +12 -0
  26. package/dist/component/node_modules/.pnpm/dree@5.1.5/node_modules/dree/bundled/lib/esm/index.esm.qwik.mjs +12 -0
  27. package/dist/component/node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.qwik.cjs +17 -0
  28. package/dist/component/node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.qwik.mjs +17 -0
  29. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/assert-valid-pattern.qwik.cjs +12 -0
  30. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/assert-valid-pattern.qwik.mjs +12 -0
  31. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/ast.qwik.cjs +513 -0
  32. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/ast.qwik.mjs +513 -0
  33. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/brace-expressions.qwik.cjs +110 -0
  34. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/brace-expressions.qwik.mjs +110 -0
  35. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/escape.qwik.cjs +6 -0
  36. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/escape.qwik.mjs +6 -0
  37. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/index.qwik.cjs +738 -0
  38. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/index.qwik.mjs +738 -0
  39. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/unescape.qwik.cjs +6 -0
  40. package/dist/component/node_modules/.pnpm/minimatch@10.0.1/node_modules/minimatch/dist/esm/unescape.qwik.mjs +6 -0
  41. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/accessDeep.qwik.cjs +120 -0
  42. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/accessDeep.qwik.mjs +120 -0
  43. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/class-registry.qwik.cjs +23 -0
  44. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/class-registry.qwik.mjs +23 -0
  45. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/custom-transformer-registry.qwik.cjs +18 -0
  46. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/custom-transformer-registry.qwik.mjs +18 -0
  47. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/double-indexed-kv.qwik.cjs +23 -0
  48. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/double-indexed-kv.qwik.mjs +23 -0
  49. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/index.qwik.cjs +91 -0
  50. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/index.qwik.mjs +91 -0
  51. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/is.qwik.cjs +51 -0
  52. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/is.qwik.mjs +51 -0
  53. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/pathstringifier.qwik.cjs +30 -0
  54. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/pathstringifier.qwik.mjs +30 -0
  55. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/plainer.qwik.cjs +148 -0
  56. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/plainer.qwik.mjs +148 -0
  57. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/registry.qwik.cjs +28 -0
  58. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/registry.qwik.mjs +28 -0
  59. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/transformer.qwik.cjs +203 -0
  60. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/transformer.qwik.mjs +203 -0
  61. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/util.qwik.cjs +47 -0
  62. package/dist/component/node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/util.qwik.mjs +47 -0
  63. package/dist/component/node_modules/.pnpm/vite-hot-client@0.2.4_vite@5.4.10_@types_node@20.14.11_/node_modules/vite-hot-client/dist/index.qwik.cjs +35 -0
  64. package/dist/component/node_modules/.pnpm/vite-hot-client@0.2.4_vite@5.4.10_@types_node@20.14.11_/node_modules/vite-hot-client/dist/index.qwik.mjs +35 -0
  65. package/dist/component/packages/kit/src/client.qwik.cjs +18 -0
  66. package/dist/component/packages/kit/src/client.qwik.mjs +18 -0
  67. package/dist/component/packages/kit/src/context.qwik.cjs +20 -0
  68. package/dist/component/packages/kit/src/context.qwik.mjs +20 -0
  69. package/dist/component/packages/kit/src/globals.qwik.cjs +6 -0
  70. package/dist/component/packages/kit/src/globals.qwik.mjs +6 -0
  71. package/dist/plugin/index.cjs +10504 -0
  72. package/dist/plugin/index.mjs +10492 -0
  73. package/package.json +24 -43
  74. package/lib/index.qwik.cjs +0 -4
  75. package/lib/index.qwik.mjs +0 -4
  76. package/lib/kit/context.qwik.cjs +0 -16
  77. package/lib/kit/context.qwik.mjs +0 -16
  78. package/lib/kit/globals.qwik.cjs +0 -6
  79. package/lib/kit/globals.qwik.mjs +0 -6
  80. package/lib/kit/server.qwik.cjs +0 -18
  81. package/lib/kit/server.qwik.mjs +0 -18
  82. package/lib/plugin/assets/index.qwik.cjs +0 -67
  83. package/lib/plugin/assets/index.qwik.mjs +0 -67
  84. package/lib/plugin/index.qwik.cjs +0 -49
  85. package/lib/plugin/index.qwik.mjs +0 -49
  86. package/lib/plugin/npm/index.qwik.cjs +0 -19
  87. package/lib/plugin/npm/index.qwik.mjs +0 -19
  88. package/lib/plugin/routes/index.qwik.cjs +0 -17
  89. package/lib/plugin/routes/index.qwik.mjs +0 -17
  90. package/lib/plugin/rpc/index.qwik.cjs +0 -14
  91. package/lib/plugin/rpc/index.qwik.mjs +0 -14
  92. package/lib-types/index.d.ts +0 -1
  93. package/lib-types/plugin/assets/index.d.ts +0 -5
  94. package/lib-types/plugin/components/index.d.ts +0 -0
  95. package/lib-types/plugin/index.d.ts +0 -2
  96. package/lib-types/plugin/npm/index.d.ts +0 -5
  97. package/lib-types/plugin/routes/index.d.ts +0 -5
  98. package/lib-types/plugin/rpc/index.d.ts +0 -3
  99. package/lib-types/plugin/types/index.d.ts +0 -5
  100. package/src/devtools.css +0 -558
  101. package/src/devtools.tsx +0 -411
  102. package/src/entry.dev.tsx +0 -17
  103. package/src/entry.ssr.tsx +0 -25
  104. package/src/index.ts +0 -1
  105. package/src/kit/client.ts +0 -21
  106. package/src/kit/constants.ts +0 -1
  107. package/src/kit/context.ts +0 -42
  108. package/src/kit/globals.ts +0 -22
  109. package/src/kit/index.ts +0 -4
  110. package/src/kit/server.ts +0 -21
  111. package/src/kit/shared.ts +0 -11
  112. package/src/kit/types.ts +0 -48
  113. package/src/plugin/assets/index.ts +0 -126
  114. package/src/plugin/components/index.ts +0 -0
  115. package/src/plugin/index.ts +0 -50
  116. package/src/plugin/npm/index.ts +0 -24
  117. package/src/plugin/routes/index.ts +0 -16
  118. package/src/plugin/rpc/index.ts +0 -14
  119. package/src/plugin/types/index.ts +0 -6
  120. package/src/root.tsx +0 -15
  121. /package/{lib-types → dist/component/lib-types/devtools/src}/devtools.d.ts +0 -0
  122. /package/{lib-types → dist/component/lib-types/devtools/src}/entry.dev.d.ts +0 -0
  123. /package/{lib-types → dist/component/lib-types/devtools/src}/entry.ssr.d.ts +0 -0
  124. /package/{lib-types → dist/component/lib-types/devtools/src}/root.d.ts +0 -0
  125. /package/{lib-types/kit → dist/component/lib-types/kit/src}/client.d.ts +0 -0
  126. /package/{lib-types/kit → dist/component/lib-types/kit/src}/constants.d.ts +0 -0
  127. /package/{lib-types/kit → dist/component/lib-types/kit/src}/context.d.ts +0 -0
  128. /package/{lib-types/kit → dist/component/lib-types/kit/src}/globals.d.ts +0 -0
  129. /package/{lib-types/kit → dist/component/lib-types/kit/src}/index.d.ts +0 -0
  130. /package/{lib-types/kit → dist/component/lib-types/kit/src}/server.d.ts +0 -0
  131. /package/{lib-types/kit → dist/component/lib-types/kit/src}/shared.d.ts +0 -0
  132. /package/{lib-types/kit → dist/component/lib-types/kit/src}/types.d.ts +0 -0
  133. /package/{lib/kit → dist/component/packages/kit/src}/constants.qwik.cjs +0 -0
  134. /package/{lib/kit → dist/component/packages/kit/src}/constants.qwik.mjs +0 -0
  135. /package/{lib/kit → dist/component/packages/kit/src}/shared.qwik.cjs +0 -0
  136. /package/{lib/kit → dist/component/packages/kit/src}/shared.qwik.mjs +0 -0
@@ -0,0 +1,537 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("@qwik.dev/core/jsx-runtime");
4
+ const core = require("@qwik.dev/core");
5
+ const index = require("./node_modules/.pnpm/vite-hot-client@0.2.4_vite@5.4.10_@types_node@20.14.11_/node_modules/vite-hot-client/dist/index.qwik.cjs");
6
+ const hi_qwik = require("./node_modules/.pnpm/@qwikest_icons@0.0.13_@builder.io_qwik@1.11.0_vite@5.4.10_@types_node@20.14.11__/node_modules/@qwikest/icons/lib/hi.qwik.qwik.cjs");
7
+ const lu_qwik = require("./node_modules/.pnpm/@qwikest_icons@0.0.13_@builder.io_qwik@1.11.0_vite@5.4.10_@types_node@20.14.11__/node_modules/@qwikest/icons/lib/lu.qwik.qwik.cjs");
8
+ const client = require("./packages/kit/src/client.qwik.cjs");
9
+ require("./node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/index.qwik.cjs");
10
+ const context = require("./packages/kit/src/context.qwik.cjs");
11
+ const index_esm = require("./node_modules/.pnpm/dree@5.1.5/node_modules/dree/bundled/lib/esm/index.esm.qwik.cjs");
12
+ const devtools = require("./devtools.css.qwik.cjs");
13
+ const router = require("@qwik.dev/router");
14
+ function getClientRpcFunctions() {
15
+ return {
16
+ healthCheck: () => true
17
+ };
18
+ }
19
+ const QwikDevtools = core.component$(() => {
20
+ core.useStyles$(devtools);
21
+ const state = core.useStore({
22
+ isOpen: false,
23
+ activeTab: "overview",
24
+ npmPackages: [],
25
+ assets: [],
26
+ routes: void 0
27
+ });
28
+ const panelRef = core.useSignal();
29
+ const location = router.useLocation();
30
+ core.useVisibleTask$(async ({ cleanup, track }) => {
31
+ const hot = await index.tryCreateHotContext(void 0, [
32
+ "/"
33
+ ]);
34
+ if (!hot) {
35
+ throw new Error("Vite Hot Context not connected");
36
+ }
37
+ context.setViteClientContext(hot);
38
+ client.createClientRpc(getClientRpcFunctions());
39
+ track(() => {
40
+ if (state.isOpen) {
41
+ const rpc = context.getViteClientRpc();
42
+ rpc.getAssetsFromPublicDir().then((data) => {
43
+ state.assets = data;
44
+ });
45
+ rpc.getRoutes().then((data) => {
46
+ const children = data.children || [];
47
+ const directories = children.filter((child) => child.type === "directory");
48
+ const values = [
49
+ {
50
+ relativePath: "",
51
+ name: "index",
52
+ type: index_esm.Type.DIRECTORY,
53
+ path: "",
54
+ isSymbolicLink: false,
55
+ children: void 0
56
+ },
57
+ ...directories
58
+ ];
59
+ state.routes = core.noSerialize(values);
60
+ });
61
+ rpc.getQwikPackages().then((data) => {
62
+ state.npmPackages = data;
63
+ });
64
+ }
65
+ });
66
+ const handleKeyPress = (e) => {
67
+ if (e.key === "`" && e.metaKey) {
68
+ state.isOpen = !state.isOpen;
69
+ }
70
+ if (e.key === "Escape" && state.isOpen) {
71
+ state.isOpen = false;
72
+ }
73
+ };
74
+ const handleClickOutside = (e) => {
75
+ if (state.isOpen && panelRef.value && !panelRef.value.contains(e.target)) {
76
+ state.isOpen = false;
77
+ }
78
+ };
79
+ window.addEventListener("keydown", handleKeyPress);
80
+ window.addEventListener("mousedown", handleClickOutside);
81
+ cleanup(() => {
82
+ window.removeEventListener("keydown", handleKeyPress);
83
+ window.removeEventListener("mousedown", handleClickOutside);
84
+ });
85
+ });
86
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
87
+ class: {
88
+ "devtools-container": true,
89
+ "devtools-open": state.isOpen
90
+ },
91
+ children: [
92
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
93
+ class: {
94
+ "devtools-toggle": true,
95
+ "is-open": state.isOpen
96
+ },
97
+ onClick$: () => state.isOpen = !state.isOpen,
98
+ children: /* @__PURE__ */ jsxRuntime.jsx("img", {
99
+ width: 20,
100
+ height: 20,
101
+ src: "https://qwik.dev/logos/qwik-logo.svg",
102
+ alt: "Qwik Logo",
103
+ class: "toggle-icon"
104
+ })
105
+ }),
106
+ state.isOpen && /* @__PURE__ */ jsxRuntime.jsxs("div", {
107
+ ref: panelRef,
108
+ class: "devtools-panel",
109
+ children: [
110
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
111
+ class: "devtools-tabs",
112
+ children: [
113
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
114
+ class: {
115
+ "tab-active": state.activeTab === "overview"
116
+ },
117
+ onClick$: () => state.activeTab = "overview",
118
+ title: "Overview",
119
+ children: /* @__PURE__ */ jsxRuntime.jsx(hi_qwik.HiBoltOutline, {
120
+ width: 20,
121
+ height: 20
122
+ })
123
+ }),
124
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
125
+ class: {
126
+ "tab-active": state.activeTab === "components"
127
+ },
128
+ onClick$: () => state.activeTab = "components",
129
+ title: "Components",
130
+ children: /* @__PURE__ */ jsxRuntime.jsx(hi_qwik.HiCubeOutline, {
131
+ width: 20,
132
+ height: 20
133
+ })
134
+ }),
135
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
136
+ class: {
137
+ "tab-active": state.activeTab === "routes"
138
+ },
139
+ onClick$: () => state.activeTab = "routes",
140
+ title: "Routes",
141
+ children: /* @__PURE__ */ jsxRuntime.jsx(lu_qwik.LuFolderTree, {
142
+ width: 20,
143
+ height: 20
144
+ })
145
+ }),
146
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
147
+ class: {
148
+ "tab-active": state.activeTab === "state"
149
+ },
150
+ onClick$: () => state.activeTab = "state",
151
+ title: "State",
152
+ children: /* @__PURE__ */ jsxRuntime.jsxs("svg", {
153
+ width: "20",
154
+ height: "20",
155
+ viewBox: "0 0 24 24",
156
+ fill: "none",
157
+ xmlns: "http://www.w3.org/2000/svg",
158
+ children: [
159
+ /* @__PURE__ */ jsxRuntime.jsx("path", {
160
+ d: "M12 2a7 7 0 0 1 7 7c0 2.38-1.19 4.47-3 5.74V17a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1v-2.26C6.19 13.47 5 11.38 5 9a7 7 0 0 1 7-7zm0 2a5 5 0 0 0-5 5c0 2.05 1.23 3.81 3 4.58V16h4v-2.42c1.77-.77 3-2.53 3-4.58a5 5 0 0 0-5-5z",
161
+ fill: "currentColor"
162
+ }),
163
+ /* @__PURE__ */ jsxRuntime.jsx("path", {
164
+ d: "M8 20v1h8v-1H8z",
165
+ fill: "currentColor"
166
+ })
167
+ ]
168
+ })
169
+ }),
170
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
171
+ class: {
172
+ "tab-active": state.activeTab === "assets"
173
+ },
174
+ onClick$: () => state.activeTab = "assets",
175
+ title: "Assets",
176
+ children: /* @__PURE__ */ jsxRuntime.jsx(hi_qwik.HiPhotoOutline, {
177
+ width: 20,
178
+ height: 20
179
+ })
180
+ })
181
+ ]
182
+ }),
183
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
184
+ class: "devtools-content",
185
+ children: [
186
+ state.activeTab === "overview" && /* @__PURE__ */ jsxRuntime.jsxs("div", {
187
+ class: "tab-content overview",
188
+ children: [
189
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
190
+ class: "header-section",
191
+ children: [
192
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
193
+ class: "title-container",
194
+ children: [
195
+ /* @__PURE__ */ jsxRuntime.jsx("img", {
196
+ width: 32,
197
+ height: 32,
198
+ src: "https://qwik.dev/logos/qwik-logo.svg",
199
+ alt: "Qwik Logo",
200
+ class: "qwik-logo"
201
+ }),
202
+ /* @__PURE__ */ jsxRuntime.jsx("h1", {
203
+ children: "Qwik DevTools"
204
+ })
205
+ ]
206
+ }),
207
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
208
+ class: "version",
209
+ children: [
210
+ "v",
211
+ state.npmPackages.find(([name]) => name.includes("core"))?.[1] || "0.0.0"
212
+ ]
213
+ })
214
+ ]
215
+ }),
216
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
217
+ class: "metrics-grid",
218
+ children: [
219
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
220
+ class: "metric-card",
221
+ children: [
222
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
223
+ class: "metric-icon",
224
+ children: /* @__PURE__ */ jsxRuntime.jsx(lu_qwik.LuFolderTree, {
225
+ class: "icon"
226
+ })
227
+ }),
228
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
229
+ class: "metric-content",
230
+ children: [
231
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
232
+ class: "metric-value",
233
+ children: state.routes?.length
234
+ }),
235
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
236
+ class: "metric-label",
237
+ children: "pages"
238
+ })
239
+ ]
240
+ })
241
+ ]
242
+ }),
243
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
244
+ class: "metric-card",
245
+ children: [
246
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
247
+ class: "metric-icon",
248
+ children: /* @__PURE__ */ jsxRuntime.jsx(hi_qwik.HiCubeOutline, {
249
+ class: "icon"
250
+ })
251
+ }),
252
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
253
+ class: "metric-content",
254
+ children: [
255
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
256
+ class: "metric-value",
257
+ children: state.assets.length
258
+ }),
259
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
260
+ class: "metric-label",
261
+ children: "components"
262
+ })
263
+ ]
264
+ })
265
+ ]
266
+ }),
267
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
268
+ class: "metric-card",
269
+ children: [
270
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
271
+ class: "metric-icon",
272
+ children: /* @__PURE__ */ jsxRuntime.jsx(hi_qwik.HiPhotoOutline, {
273
+ class: "icon"
274
+ })
275
+ }),
276
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
277
+ class: "metric-content",
278
+ children: [
279
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
280
+ class: "metric-value",
281
+ children: state.assets.length || 0
282
+ }),
283
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
284
+ class: "metric-label",
285
+ children: "assets"
286
+ })
287
+ ]
288
+ })
289
+ ]
290
+ })
291
+ ]
292
+ }),
293
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
294
+ class: "packages-section",
295
+ children: [
296
+ /* @__PURE__ */ jsxRuntime.jsx("h3", {
297
+ children: "Installed Packages"
298
+ }),
299
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
300
+ class: "packages-grid",
301
+ children: state.npmPackages.map(([name, version]) => /* @__PURE__ */ jsxRuntime.jsxs("div", {
302
+ class: "package-item",
303
+ children: [
304
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
305
+ class: "package-name",
306
+ children: name
307
+ }),
308
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
309
+ class: "package-version",
310
+ children: [
311
+ "v",
312
+ version
313
+ ]
314
+ })
315
+ ]
316
+ }, name))
317
+ })
318
+ ]
319
+ }),
320
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
321
+ class: "performance-section",
322
+ children: [
323
+ /* @__PURE__ */ jsxRuntime.jsx("h3", {
324
+ children: "Performance"
325
+ }),
326
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
327
+ class: "performance-metrics",
328
+ children: [
329
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
330
+ class: "perf-item",
331
+ children: [
332
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
333
+ children: "SSR to full load"
334
+ }),
335
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
336
+ class: "perf-value",
337
+ children: "-"
338
+ })
339
+ ]
340
+ }),
341
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
342
+ class: "perf-item",
343
+ children: [
344
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
345
+ children: "Page load"
346
+ }),
347
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
348
+ class: "perf-value",
349
+ children: "-"
350
+ })
351
+ ]
352
+ }),
353
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
354
+ class: "perf-item",
355
+ children: [
356
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
357
+ children: "Navigation"
358
+ }),
359
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
360
+ class: "perf-value",
361
+ children: "-"
362
+ })
363
+ ]
364
+ })
365
+ ]
366
+ })
367
+ ]
368
+ })
369
+ ]
370
+ }),
371
+ state.activeTab === "assets" && /* @__PURE__ */ jsxRuntime.jsxs("div", {
372
+ class: "tab-content assets",
373
+ children: [
374
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
375
+ class: "header-section",
376
+ children: [
377
+ /* @__PURE__ */ jsxRuntime.jsx("h3", {
378
+ children: "Public Assets"
379
+ }),
380
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
381
+ class: "assets-stats",
382
+ children: [
383
+ /* @__PURE__ */ jsxRuntime.jsxs("span", {
384
+ class: "stat-item",
385
+ children: [
386
+ "Total Size:",
387
+ " ",
388
+ (state.assets?.reduce((acc, asset) => acc + asset.size, 0) / 1024).toFixed(2),
389
+ " ",
390
+ "KB"
391
+ ]
392
+ }),
393
+ /* @__PURE__ */ jsxRuntime.jsxs("span", {
394
+ class: "stat-item",
395
+ children: [
396
+ "Count: ",
397
+ state.assets?.length || 0
398
+ ]
399
+ })
400
+ ]
401
+ })
402
+ ]
403
+ }),
404
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
405
+ class: "assets-grid",
406
+ children: state.assets?.map((asset) => {
407
+ const isImage = asset.path.match(/\.(jpg|jpeg|png|gif|svg|webp)$/i);
408
+ const fileExt = asset.path.split(".").pop()?.toUpperCase();
409
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
410
+ class: "asset-card",
411
+ children: [
412
+ isImage ? /* @__PURE__ */ jsxRuntime.jsx("div", {
413
+ class: "asset-preview",
414
+ children: /* @__PURE__ */ jsxRuntime.jsx("img", {
415
+ width: 176,
416
+ height: 176,
417
+ src: asset.publicPath,
418
+ alt: asset.path
419
+ })
420
+ }) : /* @__PURE__ */ jsxRuntime.jsx("div", {
421
+ class: "file-preview",
422
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", {
423
+ class: "file-ext",
424
+ children: fileExt
425
+ })
426
+ }),
427
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
428
+ class: "asset-info",
429
+ children: [
430
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
431
+ class: "asset-path",
432
+ title: asset.path,
433
+ children: asset.path.split("/").pop()
434
+ }),
435
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
436
+ class: "asset-meta",
437
+ children: [
438
+ /* @__PURE__ */ jsxRuntime.jsxs("span", {
439
+ class: "asset-size",
440
+ children: [
441
+ (asset.size / 1024).toFixed(2),
442
+ " KB"
443
+ ]
444
+ }),
445
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
446
+ class: "asset-type",
447
+ children: fileExt
448
+ })
449
+ ]
450
+ })
451
+ ]
452
+ })
453
+ ]
454
+ }, asset.filePath);
455
+ })
456
+ })
457
+ ]
458
+ }),
459
+ state.activeTab === "components" && /* @__PURE__ */ jsxRuntime.jsx("div", {
460
+ class: "tab-content",
461
+ children: /* @__PURE__ */ jsxRuntime.jsx("h3", {
462
+ children: "Components"
463
+ })
464
+ }),
465
+ state.activeTab === "routes" && /* @__PURE__ */ jsxRuntime.jsxs("div", {
466
+ class: "tab-content",
467
+ children: [
468
+ /* @__PURE__ */ jsxRuntime.jsx("h3", {
469
+ children: "Application Routes"
470
+ }),
471
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
472
+ class: "routes-table",
473
+ children: [
474
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
475
+ class: "table-header",
476
+ children: [
477
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
478
+ class: "col-route",
479
+ children: "Route Path"
480
+ }),
481
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
482
+ class: "col-route",
483
+ children: "Name"
484
+ }),
485
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
486
+ class: "col-route",
487
+ children: "Middleware"
488
+ }),
489
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
490
+ class: "col-route",
491
+ children: "Layout"
492
+ })
493
+ ]
494
+ }),
495
+ state.routes?.map((route, i) => {
496
+ const children = route.children || [];
497
+ const layout = route.relativePath !== "" && route.type === "directory" && children.find((child) => child.name.startsWith("layout"));
498
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
499
+ class: "table-row",
500
+ children: [
501
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
502
+ class: "col-route",
503
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", {
504
+ class: location.url.pathname === "/" && route.relativePath === "" || location.url.pathname === `/${route.relativePath}/` ? "active-route" : "",
505
+ children: route.relativePath === "" ? "/" : `/${route.relativePath}/`
506
+ })
507
+ }),
508
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
509
+ class: "col-route",
510
+ children: route.name
511
+ }),
512
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
513
+ class: "col-route",
514
+ children: "-"
515
+ }),
516
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
517
+ class: "col-route",
518
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", {
519
+ class: layout && i > 0 ? "custom-layout" : "",
520
+ children: layout && i > 0 ? `${route.relativePath}/layout` : "default"
521
+ })
522
+ })
523
+ ]
524
+ }, route.relativePath);
525
+ })
526
+ ]
527
+ })
528
+ ]
529
+ })
530
+ ]
531
+ })
532
+ ]
533
+ })
534
+ ]
535
+ });
536
+ });
537
+ exports.QwikDevtools = QwikDevtools;