@qwik.dev/devtools 2.0.0-beta.43 → 2.0.0-beta.47

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 (87) hide show
  1. package/dist/kit/index.d.mts +6 -0
  2. package/dist/kit/index.mjs +4 -6
  3. package/dist/plugin/codegen.mjs +1 -1
  4. package/dist/plugin/{create-hook-runtime-ChnIePeB.mjs → create-hook-runtime-CAtQC5B3.mjs} +42 -22
  5. package/dist/plugin/index.mjs +15 -7
  6. package/dist/ui/{bundle-graph-CoI___e1.json → bundle-graph-DNRrO_5W.json} +1 -1
  7. package/dist/ui/entry.extension.qwik.mjs +3 -2
  8. package/dist/ui/lib-types/ui/src/features/HookTree/hookTreeHelpers.d.ts +1 -1
  9. package/dist/ui/node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/element.qwik.mjs +2 -2
  10. package/dist/ui/node_modules/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/index.qwik.mjs +1 -1
  11. package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/html.qwik.mjs +11 -1
  12. package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/svg.qwik.mjs +2 -0
  13. package/dist/ui/packages/devtools/kit/src/overlay-paths.qwik.mjs +4 -4
  14. package/dist/ui/packages/devtools/ui/src/components/DevtoolsButton/DevtoolsButton.qwik.mjs +21 -19
  15. package/dist/ui/packages/devtools/ui/src/components/DevtoolsContainer/DevtoolsContainer.qwik.mjs +4 -1
  16. package/dist/ui/packages/devtools/ui/src/components/DevtoolsPanel/DevtoolsPanel.qwik.mjs +91 -78
  17. package/dist/ui/packages/devtools/ui/src/components/IconButton/IconButton.qwik.mjs +3 -2
  18. package/dist/ui/packages/devtools/ui/src/components/Icons/Icons.qwik.mjs +178 -96
  19. package/dist/ui/packages/devtools/ui/src/components/InfoBanner/InfoBanner.qwik.mjs +4 -2
  20. package/dist/ui/packages/devtools/ui/src/components/Tab/Tab.qwik.mjs +5 -6
  21. package/dist/ui/packages/devtools/ui/src/components/TabContent/TabContent.qwik.mjs +1 -1
  22. package/dist/ui/packages/devtools/ui/src/components/TabTitle/TabTitle.qwik.mjs +1 -1
  23. package/dist/ui/packages/devtools/ui/src/components/ThemeToggle/QwikThemeToggle.qwik.mjs +4 -4
  24. package/dist/ui/packages/devtools/ui/src/components/ThemeToggle/theme-script.qwik.mjs +1 -1
  25. package/dist/ui/packages/devtools/ui/src/components/Tree/Tree.qwik.mjs +41 -24
  26. package/dist/ui/packages/devtools/ui/src/devtools/CommandPalette.qwik.mjs +49 -35
  27. package/dist/ui/packages/devtools/ui/src/devtools/CustomizeTabsPanel.qwik.mjs +46 -35
  28. package/dist/ui/packages/devtools/ui/src/devtools/DevtoolsContent.qwik.mjs +30 -45
  29. package/dist/ui/packages/devtools/ui/src/devtools/DevtoolsSidebar.qwik.mjs +28 -22
  30. package/dist/ui/packages/devtools/ui/src/devtools/QwikDevtools.qwik.mjs +10 -10
  31. package/dist/ui/packages/devtools/ui/src/devtools/QwikDevtoolsExtension.qwik.mjs +5 -4
  32. package/dist/ui/packages/devtools/ui/src/devtools/command-palette.qwik.mjs +24 -12
  33. package/dist/ui/packages/devtools/ui/src/devtools/page-data-source.qwik.mjs +4 -2
  34. package/dist/ui/packages/devtools/ui/src/devtools/rpc.qwik.mjs +6 -4
  35. package/dist/ui/packages/devtools/ui/src/devtools/sidebar-tabs.qwik.mjs +24 -13
  36. package/dist/ui/packages/devtools/ui/src/devtools/tabs.qwik.mjs +10 -10
  37. package/dist/ui/packages/devtools/ui/src/features/Assets/Assets.qwik.mjs +2 -2
  38. package/dist/ui/packages/devtools/ui/src/features/BuildAnalysis/BuildAnalysis.qwik.mjs +15 -13
  39. package/dist/ui/packages/devtools/ui/src/features/CodeBreak/CodeBreak.qwik.mjs +19 -21
  40. package/dist/ui/packages/devtools/ui/src/features/CodeBreak/HtmlParser.qwik.mjs +13 -11
  41. package/dist/ui/packages/devtools/ui/src/features/CodeBreak/StateParser.qwik.mjs +13 -11
  42. package/dist/ui/packages/devtools/ui/src/features/HookTree/HookTree.qwik.mjs +82 -71
  43. package/dist/ui/packages/devtools/ui/src/features/HookTree/hookTreeHelpers.qwik.mjs +7 -4
  44. package/dist/ui/packages/devtools/ui/src/features/Inspect/Inspect.qwik.mjs +12 -11
  45. package/dist/ui/packages/devtools/ui/src/features/Inspect/iframe-theme.qwik.mjs +2 -1
  46. package/dist/ui/packages/devtools/ui/src/features/Overview/Overview.qwik.mjs +20 -16
  47. package/dist/ui/packages/devtools/ui/src/features/Packages/Packages.qwik.mjs +37 -36
  48. package/dist/ui/packages/devtools/ui/src/features/Packages/components/DependencyCard/DependencyCard.qwik.mjs +38 -28
  49. package/dist/ui/packages/devtools/ui/src/features/Packages/components/DependencyOperationFeedback/DependencyOperationFeedback.qwik.mjs +4 -3
  50. package/dist/ui/packages/devtools/ui/src/features/Packages/components/DependencyToolbar/DependencyToolbar.qwik.mjs +19 -18
  51. package/dist/ui/packages/devtools/ui/src/features/Packages/components/InstalledDependencyList/InstalledDependencyList.qwik.mjs +4 -4
  52. package/dist/ui/packages/devtools/ui/src/features/Packages/components/PackageIcon/PackageIcon.qwik.mjs +4 -4
  53. package/dist/ui/packages/devtools/ui/src/features/Packages/components/PackageSearchResults/PackageSearchResults.qwik.mjs +6 -5
  54. package/dist/ui/packages/devtools/ui/src/features/Packages/components/SearchResultCard/SearchResultCard.qwik.mjs +25 -14
  55. package/dist/ui/packages/devtools/ui/src/features/Performance/Performance.qwik.mjs +24 -20
  56. package/dist/ui/packages/devtools/ui/src/features/Performance/components/ComponentCard.qwik.mjs +3 -1
  57. package/dist/ui/packages/devtools/ui/src/features/Performance/components/HookDetailsPanel.qwik.mjs +10 -6
  58. package/dist/ui/packages/devtools/ui/src/features/Performance/components/PerformanceOverview.qwik.mjs +11 -9
  59. package/dist/ui/packages/devtools/ui/src/features/Performance/components/StatCard.qwik.mjs +2 -2
  60. package/dist/ui/packages/devtools/ui/src/features/Performance/computePerfViewModel.qwik.mjs +4 -2
  61. package/dist/ui/packages/devtools/ui/src/features/Preloads/Preloads.qwik.mjs +94 -82
  62. package/dist/ui/packages/devtools/ui/src/features/RenderTree/RenderTree.qwik.mjs +36 -32
  63. package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/HighlightedCodeList.qwik.mjs +2 -1
  64. package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/HookFiltersCard.qwik.mjs +17 -18
  65. package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/RenderTreeTabs.qwik.mjs +4 -2
  66. package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/StateTreeNodeLabel.qwik.mjs +8 -7
  67. package/dist/ui/packages/devtools/ui/src/features/Routes/Routes.qwik.mjs +10 -6
  68. package/dist/ui/q-manifest.json +187 -187
  69. package/package.json +8 -8
  70. /package/dist/ui/node_modules/.pnpm/{debug@4.4.3_supports-color@10.2.2 → debug@4.4.3_supports-color@11.0.0}/node_modules/debug/src/browser.qwik.mjs +0 -0
  71. /package/dist/ui/node_modules/.pnpm/{debug@4.4.3_supports-color@10.2.2 → debug@4.4.3_supports-color@11.0.0}/node_modules/debug/src/common.qwik.mjs +0 -0
  72. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/index.qwik.mjs +0 -0
  73. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/aria.qwik.mjs +0 -0
  74. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/find.qwik.mjs +0 -0
  75. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/normalize.qwik.mjs +0 -0
  76. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/case-insensitive-transform.qwik.mjs +0 -0
  77. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/case-sensitive-transform.qwik.mjs +0 -0
  78. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/create.qwik.mjs +0 -0
  79. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/defined-info.qwik.mjs +0 -0
  80. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/info.qwik.mjs +0 -0
  81. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/merge.qwik.mjs +0 -0
  82. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/schema.qwik.mjs +0 -0
  83. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/util/types.qwik.mjs +0 -0
  84. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/xlink.qwik.mjs +0 -0
  85. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/xml.qwik.mjs +0 -0
  86. /package/dist/ui/node_modules/.pnpm/{property-information@7.1.0 → property-information@7.2.0}/node_modules/property-information/lib/xmlns.qwik.mjs +0 -0
  87. /package/dist/ui/node_modules/.pnpm/{vite-hot-client@2.1.0_vite@8.2.1_@types_node@24.10.0_esbuild@0.28.2_jiti@2.6.1_terser@5.46.0_tsx@4.21.0_yaml@2.8.3_ → vite-hot-client@2.2.0_vite@8.2.1_@types_node@25.6.0_esbuild@0.28.2_jiti@2.7.0_terser@5.46.0_tsx@4.21.0_yaml@2.9.0_}/node_modules/vite-hot-client/dist/index.qwik.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  import { StateParser } from "./StateParser.qwik.mjs";
2
2
  import { HtmlParser } from "./HtmlParser.qwik.mjs";
3
- import { _jsxSorted, componentQrl, inlinedQrl, useSignal, useStylesQrl } from "@qwik.dev/core";
3
+ import { _capturesObj, _jsxSorted, componentQrl, inlinedQrl, useSignal, useStylesQrl } from "@qwik.dev/core";
4
4
  var CodeBreak = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
5
5
  useStylesQrl(/*#__PURE__*/ inlinedQrl(`
6
6
  .code-output-container {
@@ -18,25 +18,23 @@ var CodeBreak = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
18
18
  `, "CodeBreak_component_useStyles_lHrOlzOysW0"));
19
19
  const currentTab = useSignal("state");
20
20
  return /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full space-y-6 overflow-hidden" }, [
21
- /*#__PURE__*/ _jsxSorted("div", null, { class: "flex justify-center" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg inline-flex rounded-xl border p-0.5" }, [/*#__PURE__*/ _jsxSorted("button", {
22
- class: {
23
- "rounded-lg px-3 py-2 text-sm font-medium transition-colors md:px-4": true,
24
- "bg-accent text-white shadow": currentTab.value === "state",
25
- "text-muted-foreground hover:bg-foreground/5": currentTab.value !== "state"
26
- },
27
- "q-e:click": /*#__PURE__*/ inlinedQrl((_, _1, currentTab) => currentTab.value = "state", "CodeBreak_component_div_div_div_button_q_e_click_xWgXsjQPkqw").m(),
28
- "q:p": currentTab
29
- }, null, "State Parser", 6, null), /*#__PURE__*/ _jsxSorted("button", {
30
- class: {
31
- "rounded-lg px-3 py-2 text-sm font-medium transition-colors md:px-4": true,
32
- "bg-accent text-white shadow": currentTab.value === "html",
33
- "text-muted-foreground hover:bg-foreground/5": currentTab.value !== "html"
34
- },
35
- "q-e:click": /*#__PURE__*/ inlinedQrl((_, _1, currentTab) => currentTab.value = "html", "CodeBreak_component_div_div_div_button_q_e_click_1_LC2WyereJ0c").m(),
36
- "q:p": currentTab
37
- }, null, "HTML Parser", 6, null)], 1, null), 1, null),
38
- currentTab.value === "state" && /*#__PURE__*/ _jsxSorted(StateParser, null, null, null, 3, "on_0"),
39
- currentTab.value === "html" && /*#__PURE__*/ _jsxSorted(HtmlParser, null, null, null, 3, "on_1")
40
- ], 1, "on_2");
21
+ /*#__PURE__*/ _jsxSorted("div", null, { class: "flex justify-center" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg inline-flex rounded-xl border p-0.5" }, [/*#__PURE__*/ _jsxSorted("button", { class: {
22
+ "rounded-lg px-3 py-2 text-sm font-medium transition-colors md:px-4": true,
23
+ "bg-accent text-white shadow": currentTab.value === "state",
24
+ "text-muted-foreground hover:bg-foreground/5": currentTab.value !== "state"
25
+ } }, { "q-e:click": /*#__PURE__*/ inlinedQrl(() => {
26
+ let currentTab = _capturesObj._[0];
27
+ return currentTab.value = "state";
28
+ }, "CodeBreak_component_div_div_div_button_q_e_click_xWgXsjQPkqw", [currentTab]) }, "State Parser", 3, null), /*#__PURE__*/ _jsxSorted("button", { class: {
29
+ "rounded-lg px-3 py-2 text-sm font-medium transition-colors md:px-4": true,
30
+ "bg-accent text-white shadow": currentTab.value === "html",
31
+ "text-muted-foreground hover:bg-foreground/5": currentTab.value !== "html"
32
+ } }, { "q-e:click": /*#__PURE__*/ inlinedQrl(() => {
33
+ let currentTab = _capturesObj._[0];
34
+ return currentTab.value = "html";
35
+ }, "CodeBreak_component_div_div_div_button_q_e_click_1_LC2WyereJ0c", [currentTab]) }, "HTML Parser", 3, null)], 1, null), 1, null),
36
+ currentTab.value === "state" && /*#__PURE__*/ _jsxSorted(StateParser, null, null, null, 3, "Qk_0"),
37
+ currentTab.value === "html" && /*#__PURE__*/ _jsxSorted(HtmlParser, null, null, null, 3, "Qk_1")
38
+ ], 1, "Qk_2");
41
39
  }, "CodeBreak_component_TGxTKTmWfNE"));
42
40
  export { CodeBreak };
@@ -1,7 +1,8 @@
1
1
  import { getHighlighter } from "../../utils/shiki.qwik.mjs";
2
- import { _captures, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useSignal, useStylesQrl, useVisibleTaskQrl } from "@qwik.dev/core";
2
+ import { _capturesObj, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useSignal, useStylesQrl, useVisibleTaskQrl } from "@qwik.dev/core";
3
3
  import { _getDomContainer, _vnode_toString } from "@qwik.dev/core/internal";
4
4
  var _hf0 = (p0) => p0.value || "";
5
+ var _hf0_str = "p0.value||\"\"";
5
6
  var HtmlParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
6
7
  useStylesQrl(/*#__PURE__*/ inlinedQrl(`
7
8
  pre.shiki { overflow: auto; padding: 10px; height: 100%; }
@@ -11,7 +12,7 @@ var HtmlParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
11
12
  const htmlResult = useSignal("");
12
13
  const highlightedHtml = useSignal("");
13
14
  const onParseHtml$ = /*#__PURE__*/ inlinedQrl(() => {
14
- const htmlResult = _captures[0], inputHtml = _captures[1], parsingTime = _captures[2];
15
+ let htmlResult = _capturesObj._[0], inputHtml = _capturesObj._[1], parsingTime = _capturesObj._[2];
15
16
  if (!inputHtml.value.trim()) {
16
17
  parsingTime.value = null;
17
18
  htmlResult.value = "// Paste HTML on the left to parse";
@@ -52,7 +53,7 @@ var HtmlParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
52
53
  ]);
53
54
  const shikiRef = useSignal(null);
54
55
  useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(async ({ track }) => {
55
- const highlightedHtml = _captures[0], htmlResult = _captures[1], shikiRef = _captures[2];
56
+ let highlightedHtml = _capturesObj._[0], htmlResult = _capturesObj._[1], shikiRef = _capturesObj._[2];
56
57
  track(() => htmlResult.value);
57
58
  if (!htmlResult.value) {
58
59
  highlightedHtml.value = "";
@@ -68,19 +69,20 @@ var HtmlParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
68
69
  htmlResult,
69
70
  shikiRef
70
71
  ]));
71
- return /*#__PURE__*/ _jsxSorted("div", null, { class: "grid grid-cols-1 gap-4 md:grid-cols-2" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "Input HTML", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "la_0")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "min-h-0 flex-1 flex-col space-y-3 p-3" }, [/*#__PURE__*/ _jsxSorted("textarea", {
72
- "q-e:input": /*#__PURE__*/ inlinedQrl((e, t, inputHtml) => inputHtml.value = t.value, "HtmlParser_component_div_div_div_textarea_q_e_input_XIyjbAjuy8w").m(),
73
- "q:p": inputHtml
74
- }, {
72
+ return /*#__PURE__*/ _jsxSorted("div", null, { class: "grid grid-cols-1 gap-4 md:grid-cols-2" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "Input HTML", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "nu_0")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "min-h-0 flex-1 flex-col space-y-3 p-3" }, [/*#__PURE__*/ _jsxSorted("textarea", null, {
75
73
  value: _wrapProp(inputHtml),
74
+ "q-e:input": /*#__PURE__*/ inlinedQrl((e, t) => {
75
+ let inputHtml = _capturesObj._[0];
76
+ return inputHtml.value = t.value;
77
+ }, "HtmlParser_component_div_div_div_textarea_q_e_input_XIyjbAjuy8w", [inputHtml]),
76
78
  placeholder: "Paste HTML and click to parse/format.",
77
79
  class: "border-glass-border bg-card-item-bg text-foreground placeholder:text-muted-foreground h-full min-h-0 w-full flex-1 resize-none rounded-md border p-3 font-mono text-sm"
78
- }, null, 6, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-center gap-3" }, /*#__PURE__*/ _jsxSorted("button", null, {
80
+ }, null, 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-center gap-3" }, /*#__PURE__*/ _jsxSorted("button", null, {
79
81
  "q-e:click": onParseHtml$,
80
82
  class: "bg-accent rounded-md px-3 py-1.5 text-sm text-white hover:opacity-90"
81
- }, "Parse HTML", 3, null), 3, null)], 1, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col overflow-hidden rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "VNode Tree", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "la_1")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full min-h-0 flex-1" }, /*#__PURE__*/ _jsxSorted("pre", null, {
83
+ }, "Parse HTML", 3, null), 3, null)], 3, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col overflow-hidden rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "VNode Tree", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "nu_1")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full min-h-0 flex-1" }, /*#__PURE__*/ _jsxSorted("pre", null, {
82
84
  class: "h-full overflow-auto",
83
- dangerouslySetInnerHTML: _fnSignal(_hf0, [highlightedHtml])
84
- }, null, 3, null), 3, null)], 1, null)], 1, "la_2");
85
+ dangerouslySetInnerHTML: _fnSignal(_hf0, [highlightedHtml], _hf0_str)
86
+ }, null, 3, null), 3, null)], 1, null)], 1, "nu_2");
85
87
  }, "HtmlParser_component_9YnEezFEUMA"));
86
88
  export { HtmlParser };
@@ -1,7 +1,8 @@
1
1
  import { getHighlighter } from "../../utils/shiki.qwik.mjs";
2
- import { _captures, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useSignal, useStylesQrl, useVisibleTaskQrl } from "@qwik.dev/core";
2
+ import { _capturesObj, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useSignal, useStylesQrl, useVisibleTaskQrl } from "@qwik.dev/core";
3
3
  import { _dumpState, _preprocessState } from "@qwik.dev/core/internal";
4
4
  var _hf0 = (p0) => p0.value || "";
5
+ var _hf0_str = "p0.value||\"\"";
5
6
  var StateParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
6
7
  useStylesQrl(/*#__PURE__*/ inlinedQrl(`
7
8
  pre.shiki { overflow: auto; padding: 10px; height: 100%; }
@@ -11,7 +12,7 @@ var StateParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
11
12
  const stateResult = useSignal("");
12
13
  const highlightedState = useSignal("");
13
14
  const onParseState$ = /*#__PURE__*/ inlinedQrl(() => {
14
- const inputState = _captures[0], parsingTime = _captures[1], stateResult = _captures[2];
15
+ let inputState = _capturesObj._[0], parsingTime = _capturesObj._[1], stateResult = _capturesObj._[2];
15
16
  if (!inputState.value.trim()) {
16
17
  parsingTime.value = null;
17
18
  stateResult.value = "// Paste state on the left to parse";
@@ -67,7 +68,7 @@ var StateParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
67
68
  ]);
68
69
  const shikiRef = useSignal(null);
69
70
  useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(async ({ track }) => {
70
- const highlightedState = _captures[0], shikiRef = _captures[1], stateResult = _captures[2];
71
+ let highlightedState = _capturesObj._[0], shikiRef = _capturesObj._[1], stateResult = _capturesObj._[2];
71
72
  track(() => stateResult?.value);
72
73
  const currentState = stateResult?.value ?? "";
73
74
  if (!currentState) {
@@ -94,19 +95,20 @@ var StateParser = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
94
95
  shikiRef,
95
96
  stateResult
96
97
  ]));
97
- return /*#__PURE__*/ _jsxSorted("div", null, { class: "grid grid-cols-1 gap-4 md:grid-cols-2" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between gap-3 border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-center gap-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "Input State", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "O4_0")], 1, null), /*#__PURE__*/ _jsxSorted("button", null, {
98
+ return /*#__PURE__*/ _jsxSorted("div", null, { class: "grid grid-cols-1 gap-4 md:grid-cols-2" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between gap-3 border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-center gap-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "Input State", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "97_0")], 1, null), /*#__PURE__*/ _jsxSorted("button", null, {
98
99
  "q-e:click": onParseState$,
99
100
  class: "bg-accent rounded-md px-3 py-1.5 text-sm text-white hover:opacity-90"
100
- }, "Parse State", 3, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "flex min-h-0 flex-1 flex-col p-3" }, /*#__PURE__*/ _jsxSorted("textarea", {
101
- "q-e:input": /*#__PURE__*/ inlinedQrl((e, t, inputState) => inputState.value = t.value, "StateParser_component_div_div_div_textarea_q_e_input_kcp2t0mamTI").m(),
102
- "q:p": inputState
103
- }, {
101
+ }, "Parse State", 3, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "flex min-h-0 flex-1 flex-col p-3" }, /*#__PURE__*/ _jsxSorted("textarea", null, {
104
102
  value: _wrapProp(inputState),
103
+ "q-e:input": /*#__PURE__*/ inlinedQrl((e, t) => {
104
+ let inputState = _capturesObj._[0];
105
+ return inputState.value = t.value;
106
+ }, "StateParser_component_div_div_div_textarea_q_e_input_kcp2t0mamTI", [inputState]),
105
107
  placeholder: "Paste Qwik state and click to parse/format.",
106
108
  class: "border-glass-border bg-card-item-bg text-foreground placeholder:text-muted-foreground min-h-0 w-full flex-1 resize-none rounded-md border p-3 font-mono text-sm"
107
- }, null, 6, null), 1, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col overflow-hidden rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "Parsed State", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "O4_1")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full min-h-0 flex-1" }, /*#__PURE__*/ _jsxSorted("pre", null, {
109
+ }, null, 3, null), 3, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex h-[60vh] min-h-0 flex-col overflow-hidden rounded-xl border" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-sm font-medium" }, "Parsed State", 3, null), parsingTime.value !== null && /*#__PURE__*/ _jsxSorted("span", null, { class: "border-glass-border text-muted-foreground rounded-full border px-2 py-0.5 text-xs" }, [_wrapProp(parsingTime), "ms"], 3, "97_1")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full min-h-0 flex-1" }, /*#__PURE__*/ _jsxSorted("pre", null, {
108
110
  class: "h-full overflow-auto",
109
- dangerouslySetInnerHTML: _fnSignal(_hf0, [highlightedState])
110
- }, null, 3, null), 3, null)], 1, null)], 1, "O4_2");
111
+ dangerouslySetInnerHTML: _fnSignal(_hf0, [highlightedState], _hf0_str)
112
+ }, null, 3, null), 3, null)], 1, null)], 1, "97_2");
111
113
  }, "StateParser_component_WYGTcR6czK0"));
112
114
  export { StateParser };
@@ -6,10 +6,13 @@ import { RenderTreeTabs } from "../RenderTree/components/RenderTreeTabs.qwik.mjs
6
6
  import { StateTreeNodeLabel } from "../RenderTree/components/StateTreeNodeLabel.qwik.mjs";
7
7
  import { HookFiltersCard } from "../RenderTree/components/HookFiltersCard.qwik.mjs";
8
8
  import { IconButton } from "../../components/IconButton/IconButton.qwik.mjs";
9
- import { _captures, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useComputedQrl, useSignal, useVisibleTaskQrl } from "@qwik.dev/core";
9
+ import { _capturesObj, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useComputedQrl, useSignal, useVisibleTaskQrl } from "@qwik.dev/core";
10
10
  var _hf0 = (p0) => p0.value ? "Picking..." : "Pick";
11
+ var _hf0_str = "p0.value?\"Picking...\":\"Pick\"";
11
12
  var _hf1 = (p0) => p0.value ? "Collapse all" : "Expand all";
13
+ var _hf1_str = "p0.value?\"Collapse all\":\"Expand all\"";
12
14
  var _hf2 = (p0) => p0.value ? "Collapse" : "Expand";
15
+ var _hf2_str = "p0.value?\"Collapse\":\"Expand\"";
13
16
  var EXPAND_ANIMATION_DELAY_MS = 250;
14
17
  var HIGHLIGHT_FLASH_MS = 1500;
15
18
  var LOAD_RETRY_DELAY_MS = 300;
@@ -110,7 +113,8 @@ function buildDetailTree(entries) {
110
113
  }
111
114
  return result;
112
115
  }
113
- /** DOM helpers for expand/scroll/highlight */ function expandAndScrollToNode(targetName) {
116
+ /** DOM helpers for expand/scroll/highlight */
117
+ function expandAndScrollToNode(targetName) {
114
118
  requestAnimationFrame(() => {
115
119
  const container = document.getElementById("hook-tree-left");
116
120
  if (!container) return;
@@ -150,7 +154,7 @@ function buildDetailTree(entries) {
150
154
  }
151
155
  var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => {
152
156
  const revealNode = useComputedQrl(/*#__PURE__*/ inlinedQrl(() => {
153
- return _captures[0].state.componentReveal;
157
+ return _capturesObj._[0].state.componentReveal;
154
158
  }, "HookTree_component_revealNode_useComputed_tpsp3UJyFJs", [_rawProps]));
155
159
  const treeData = useSignal([]);
156
160
  const treeVersion = useSignal(0);
@@ -165,7 +169,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
165
169
  const editValue = useSignal("");
166
170
  const inspecting = useSignal(false);
167
171
  const handleElementPicked = /*#__PURE__*/ inlinedQrl((payload) => {
168
- const inspecting = _captures[0], treeData = _captures[1];
172
+ let inspecting = _capturesObj._[0], onNodeClick = _capturesObj._[1], treeData = _capturesObj._[2];
169
173
  inspecting.value = false;
170
174
  let found = null;
171
175
  if (payload.treeNodeId) found = findNodeById(treeData.value, payload.treeNodeId);
@@ -174,13 +178,17 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
174
178
  onNodeClick(found);
175
179
  expandAndScrollToNode(found.label || found.name || "");
176
180
  }
177
- }, "HookTree_component_handleElementPicked_Tg1fX7eTA88", [inspecting, treeData]);
181
+ }, "HookTree_component_handleElementPicked_Tg1fX7eTA88", [
182
+ inspecting,
183
+ onNodeClick,
184
+ treeData
185
+ ]);
178
186
  const applyFilters = /*#__PURE__*/ inlinedQrl((tree, filters) => {
179
187
  if (filters.length === 0) return tree;
180
188
  return tree.filter((node) => filters.some((f) => f.key === node.label && f.display));
181
189
  }, "HookTree_component_applyFilters_BI0rmhS6jV0");
182
190
  const refreshSelectedDetail = /*#__PURE__*/ inlinedQrl(async () => {
183
- const applyFilters = _captures[0], fullStateTree = _captures[1], hookFilters = _captures[2], selectedNode = _captures[3], stateTree = _captures[4];
191
+ let applyFilters = _capturesObj._[0], fullStateTree = _capturesObj._[1], hookFilters = _capturesObj._[2], selectedNode = _capturesObj._[3], stateTree = _capturesObj._[4];
184
192
  const sel = selectedNode.value;
185
193
  if (!sel) return;
186
194
  const source = getPageDataSource();
@@ -209,7 +217,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
209
217
  stateTree
210
218
  ]);
211
219
  useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(({ cleanup }) => {
212
- const handleElementPicked = _captures[0], lastTreeIds = _captures[1], refreshSelectedDetail = _captures[2], selectedNode = _captures[3], stateTree = _captures[4], treeData = _captures[5], treeVersion = _captures[6];
220
+ let handleElementPicked = _capturesObj._[0], lastTreeIds = _capturesObj._[1], refreshSelectedDetail = _capturesObj._[2], selectedNode = _capturesObj._[3], stateTree = _capturesObj._[4], treeData = _capturesObj._[5], treeVersion = _capturesObj._[6];
213
221
  const source = getPageDataSource();
214
222
  const loadInitial = async (retries = 3) => {
215
223
  const vnodeTree = await source.readVNodeTree();
@@ -288,7 +296,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
288
296
  treeVersion
289
297
  ]));
290
298
  const onNodeClick = /*#__PURE__*/ inlinedQrl(async (node) => {
291
- const fullStateTree = _captures[0], hookFilters = _captures[1], selectedNode = _captures[2], stateTree = _captures[3];
299
+ let fullStateTree = _capturesObj._[0], hookFilters = _capturesObj._[1], selectedNode = _capturesObj._[2], stateTree = _capturesObj._[3];
292
300
  const source = getPageDataSource();
293
301
  const name = node.name || node.label || "";
294
302
  if (!name) {
@@ -329,7 +337,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
329
337
  stateTree
330
338
  ]);
331
339
  const onStateNodeClick = /*#__PURE__*/ inlinedQrl(async (node) => {
332
- const editValue = _captures[0], editingNodeId = _captures[1];
340
+ let editValue = _capturesObj._[0], editingNodeId = _capturesObj._[1];
333
341
  if (node.children && node.children.length > 0) return;
334
342
  const match = (node.label || "").match(/^let (\S+) = : (.+)$/);
335
343
  if (!match) return;
@@ -338,7 +346,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
338
346
  editValue.value = rawVal.startsWith("\"") && rawVal.endsWith("\"") ? rawVal.slice(1, -1) : rawVal;
339
347
  }, "HookTree_component_onStateNodeClick_w05LL5ft0xI", [editValue, editingNodeId]);
340
348
  const commitEdit = /*#__PURE__*/ inlinedQrl(async () => {
341
- const editValue = _captures[0], editingNodeId = _captures[1], refreshSelectedDetail = _captures[2], selectedNode = _captures[3], stateTree = _captures[4];
349
+ let editValue = _capturesObj._[0], editingNodeId = _capturesObj._[1], refreshSelectedDetail = _capturesObj._[2], selectedNode = _capturesObj._[3], stateTree = _capturesObj._[4];
342
350
  if (!editingNodeId.value || !selectedNode.value) return;
343
351
  const sel = selectedNode.value;
344
352
  const source = getPageDataSource();
@@ -364,11 +372,11 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
364
372
  stateTree
365
373
  ]);
366
374
  const cancelEdit = /*#__PURE__*/ inlinedQrl(() => {
367
- const editingNodeId = _captures[0];
375
+ let editingNodeId = _capturesObj._[0];
368
376
  editingNodeId.value = null;
369
377
  }, "HookTree_component_cancelEdit_T9PZ4ZUP0kg", [editingNodeId]);
370
378
  const handleSelectAll = /*#__PURE__*/ inlinedQrl(async () => {
371
- const applyFilters = _captures[0], fullStateTree = _captures[1], hookFilters = _captures[2], stateTree = _captures[3];
379
+ let applyFilters = _capturesObj._[0], fullStateTree = _capturesObj._[1], hookFilters = _capturesObj._[2], stateTree = _capturesObj._[3];
372
380
  hookFilters.value = hookFilters.value.map((f) => ({
373
381
  ...f,
374
382
  display: true
@@ -381,7 +389,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
381
389
  stateTree
382
390
  ]);
383
391
  const handleClear = /*#__PURE__*/ inlinedQrl(async () => {
384
- const applyFilters = _captures[0], fullStateTree = _captures[1], hookFilters = _captures[2], stateTree = _captures[3];
392
+ let applyFilters = _capturesObj._[0], fullStateTree = _capturesObj._[1], hookFilters = _capturesObj._[2], stateTree = _capturesObj._[3];
385
393
  hookFilters.value = hookFilters.value.map((f) => ({
386
394
  ...f,
387
395
  display: false
@@ -394,7 +402,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
394
402
  stateTree
395
403
  ]);
396
404
  const handleFilterChange = /*#__PURE__*/ inlinedQrl(async (index, checked) => {
397
- const applyFilters = _captures[0], fullStateTree = _captures[1], hookFilters = _captures[2], stateTree = _captures[3];
405
+ let applyFilters = _capturesObj._[0], fullStateTree = _capturesObj._[1], hookFilters = _capturesObj._[2], stateTree = _capturesObj._[3];
398
406
  hookFilters.value = hookFilters.value.map((f, i) => i === index ? {
399
407
  ...f,
400
408
  display: checked
@@ -407,7 +415,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
407
415
  stateTree
408
416
  ]);
409
417
  const startInspect = /*#__PURE__*/ inlinedQrl(() => {
410
- const inspecting = _captures[0];
418
+ let inspecting = _capturesObj._[0];
411
419
  const port = window.__devtools_port;
412
420
  if (port) {
413
421
  inspecting.value = true;
@@ -415,7 +423,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
415
423
  }
416
424
  }, "HookTree_component_startInspect_ivplr7Kh8Cg", [inspecting]);
417
425
  const stopInspect = /*#__PURE__*/ inlinedQrl(() => {
418
- const inspecting = _captures[0];
426
+ let inspecting = _capturesObj._[0];
419
427
  const port = window.__devtools_port;
420
428
  if (port) {
421
429
  inspecting.value = false;
@@ -424,7 +432,7 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
424
432
  }, "HookTree_component_stopInspect_0GbFiCX0c2U", [inspecting]);
425
433
  const treeExpanded = useSignal(true);
426
434
  const toggleTreeExpand = /*#__PURE__*/ inlinedQrl(() => {
427
- const treeExpanded = _captures[0];
435
+ let treeExpanded = _capturesObj._[0];
428
436
  const container = document.getElementById("hook-tree-left");
429
437
  if (!container) return;
430
438
  const chevrons = Array.from(container.querySelectorAll("svg[class*=\"shrink-0\"]"));
@@ -441,81 +449,84 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
441
449
  }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "mb-2 flex items-center gap-1" }, [/*#__PURE__*/ _jsxSorted(IconButton, { onClick$: inspecting.value ? stopInspect : startInspect }, {
442
450
  active: _wrapProp(inspecting),
443
451
  title: "Select a component on the page"
444
- }, [/*#__PURE__*/ _jsxSorted(IconTarget, null, { class: "h-3.5 w-3.5" }, null, 3, "uB_0"), _fnSignal(_hf0, [inspecting])], 0, "uB_1"), /*#__PURE__*/ _jsxSorted(IconButton, null, {
452
+ }, [/*#__PURE__*/ _jsxSorted(IconTarget, null, { class: "h-3.5 w-3.5" }, null, 3, "n0_2"), _fnSignal(_hf0, [inspecting], _hf0_str)], 0, "n0_3"), /*#__PURE__*/ _jsxSorted(IconButton, null, {
445
453
  onClick$: toggleTreeExpand,
446
- title: _fnSignal(_hf1, [treeExpanded])
454
+ title: _fnSignal(_hf1, [treeExpanded], _hf1_str)
447
455
  }, [/*#__PURE__*/ _jsxSorted(IconExpandShrink, null, {
448
456
  class: "h-3.5 w-3.5",
449
457
  expanded: _wrapProp(treeExpanded)
450
- }, null, 3, "uB_2"), _fnSignal(_hf2, [treeExpanded])], 1, "uB_3")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, {
458
+ }, null, 3, "n0_4"), _fnSignal(_hf2, [treeExpanded], _hf2_str)], 1, "n0_5")], 1, null), /*#__PURE__*/ _jsxSorted("div", null, {
451
459
  id: "hook-tree-left",
452
460
  class: "min-h-0 flex-1 overflow-y-auto"
453
- }, treeData.value.length === 0 ? /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground flex h-full items-center justify-center text-sm" }, "Waiting for component tree...", 3, "uB_4") : /*#__PURE__*/ _jsxSorted(Tree, { onRevealed$: /*#__PURE__*/ inlinedQrl(() => {
454
- const _rawProps = _captures[0];
455
- return _rawProps.state.componentReveal = null;
456
- }, "HookTree_component_div_div_div_div_Tree_onRevealed_bBy7gH7s5cA", [_rawProps]) }, {
457
- data: treeData,
461
+ }, treeData.value.length === 0 ? /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground flex h-full items-center justify-center text-sm" }, "Waiting for component tree...", 3, "n0_6") : /*#__PURE__*/ _jsxSorted(Tree, {
458
462
  onNodeClick,
463
+ onRevealed$: /*#__PURE__*/ inlinedQrl(() => {
464
+ let _rawProps = _capturesObj._[0];
465
+ return _rawProps.state.componentReveal = null;
466
+ }, "HookTree_component_div_div_div_div_Tree_onRevealed_bBy7gH7s5cA", [_rawProps])
467
+ }, {
468
+ data: treeData,
459
469
  revealNode
460
470
  }, null, 2, treeVersion.value), 1, null)], 1, null),
461
471
  /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border border-l" }, null, 3, null),
462
472
  /*#__PURE__*/ _jsxSorted("div", null, { class: "flex h-full min-h-0 w-1/2 flex-col overflow-hidden p-4" }, [
463
- /*#__PURE__*/ _jsxSorted(RenderTreeTabs, {
464
- onCodeClick$: /*#__PURE__*/ inlinedQrl(() => {
465
- const currentTab = _captures[0];
466
- return currentTab.value = "code";
467
- }, "HookTree_component_div_div_div_RenderTreeTabs_onCodeClick_0lAe8vTbWRQ", [currentTab]),
473
+ /*#__PURE__*/ _jsxSorted(RenderTreeTabs, null, {
474
+ currentTab: _wrapProp(currentTab),
468
475
  onStateClick$: /*#__PURE__*/ inlinedQrl(() => {
469
- const currentTab = _captures[0];
476
+ let currentTab = _capturesObj._[0];
470
477
  return currentTab.value = "state";
471
- }, "HookTree_component_div_div_div_RenderTreeTabs_onStateClick_91eAngQRRXU", [currentTab])
472
- }, { currentTab: _wrapProp(currentTab) }, null, 2, "uB_5"),
473
- currentTab.value === "state" && /*#__PURE__*/ _jsxSorted("div", null, { class: "mt-5 flex min-h-0 flex-1 flex-col" }, [hookFilters.value.length > 0 && /*#__PURE__*/ _jsxSorted(HookFiltersCard, { onToggleOpen$: /*#__PURE__*/ inlinedQrl(() => {
474
- const hooksOpen = _captures[0];
475
- return hooksOpen.value = !hooksOpen.value;
476
- }, "HookTree_component_div_div_div_div_HookFiltersCard_onToggleOpen_wb4o4GAUjKQ", [hooksOpen]) }, {
478
+ }, "HookTree_component_div_div_div_RenderTreeTabs_onStateClick_91eAngQRRXU", [currentTab]),
479
+ onCodeClick$: /*#__PURE__*/ inlinedQrl(() => {
480
+ let currentTab = _capturesObj._[0];
481
+ return currentTab.value = "code";
482
+ }, "HookTree_component_div_div_div_RenderTreeTabs_onCodeClick_0lAe8vTbWRQ", [currentTab])
483
+ }, null, 3, "n0_7"),
484
+ currentTab.value === "state" && /*#__PURE__*/ _jsxSorted("div", null, { class: "mt-5 flex min-h-0 flex-1 flex-col" }, [hookFilters.value.length > 0 && /*#__PURE__*/ _jsxSorted(HookFiltersCard, null, {
477
485
  filters: _wrapProp(hookFilters),
478
486
  isOpen: _wrapProp(hooksOpen),
479
487
  onSelectAll$: handleSelectAll,
480
488
  onClear$: handleClear,
489
+ onToggleOpen$: /*#__PURE__*/ inlinedQrl(() => {
490
+ let hooksOpen = _capturesObj._[0];
491
+ return hooksOpen.value = !hooksOpen.value;
492
+ }, "HookTree_component_div_div_div_div_HookFiltersCard_onToggleOpen_wb4o4GAUjKQ", [hooksOpen]),
481
493
  onFilterChange$: handleFilterChange
482
- }, null, 2, "uB_6"), stateTree.value.length > 0 ? /*#__PURE__*/ _jsxSorted("div", null, { class: "mt-4 min-h-0 flex-1 overflow-y-auto p-2" }, /*#__PURE__*/ _jsxSorted(Tree, { renderNode: /*#__PURE__*/ inlinedQrl((node) => {
483
- const cancelEdit = _captures[0], commitEdit = _captures[1], editValue = _captures[2];
484
- if (_captures[3].value === node.id) return /*#__PURE__*/ _jsxSorted("form", null, {
485
- "preventdefault:submit": true,
486
- "q-e:submit": commitEdit,
487
- class: "inline-flex items-center gap-1"
488
- }, [/*#__PURE__*/ _jsxSorted("input", {
489
- "q-e:input": /*#__PURE__*/ inlinedQrl((_, el, _2, editValue) => {
490
- editValue.value = el.value;
491
- }, "HookTree_component_div_div_div_div_div_Tree_renderNode_form_input_q_e_input_z05hdrGPzhg").m(),
492
- "q-e:keydown": /*#__PURE__*/ inlinedQrl((e, _1, cancelEdit) => {
493
- if (e.key === "Escape") cancelEdit();
494
- }, "HookTree_component_div_div_div_div_div_Tree_renderNode_form_input_q_e_keydown_0AuxXsO3Wa0").m(),
495
- "q:ps": [cancelEdit, editValue]
496
- }, {
497
- type: "text",
498
- class: "border-primary/50 bg-card-item-hover-bg text-foreground focus:border-primary w-32 rounded border px-1.5 py-0.5 text-xs outline-none",
499
- value: _wrapProp(editValue),
500
- autoFocus: true
501
- }, null, 6, null), /*#__PURE__*/ _jsxSorted("button", null, {
502
- type: "submit",
503
- class: "bg-primary/20 text-primary hover:bg-primary/30 rounded px-1.5 py-0.5 text-xs"
504
- }, "ok", 3, null)], 1, "uB_7");
505
- return /*#__PURE__*/ _jsxSorted(StateTreeNodeLabel, { node }, null, null, 3, "uB_8");
506
- }, "HookTree_component_div_div_div_div_div_Tree_renderNode_vC6C4CEUHF8", [
507
- cancelEdit,
508
- commitEdit,
509
- editValue,
510
- editingNodeId
511
- ]) }, {
494
+ }, null, 3, "n0_8"), stateTree.value.length > 0 ? /*#__PURE__*/ _jsxSorted("div", null, { class: "mt-4 min-h-0 flex-1 overflow-y-auto p-2" }, /*#__PURE__*/ _jsxSorted(Tree, { onNodeClick: onStateNodeClick }, {
512
495
  data: stateTree,
513
496
  gap: 10,
514
497
  animate: true,
515
498
  animationDuration: 200,
516
499
  isHover: true,
517
- onNodeClick: onStateNodeClick
518
- }, null, 3, "uB_9"), 1, "uB_10") : /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground flex h-full items-center justify-center text-sm" }, "Select a component to inspect its state", 3, "uB_11")], 1, "uB_12"),
500
+ renderNode: /*#__PURE__*/ inlinedQrl((node) => {
501
+ let cancelEdit = _capturesObj._[0], commitEdit = _capturesObj._[1], editValue = _capturesObj._[2];
502
+ if (_capturesObj._[3].value === node.id) return /*#__PURE__*/ _jsxSorted("form", null, {
503
+ "preventdefault:submit": true,
504
+ "q-e:submit": commitEdit,
505
+ class: "inline-flex items-center gap-1"
506
+ }, [/*#__PURE__*/ _jsxSorted("input", { value: _wrapProp(editValue) }, {
507
+ type: "text",
508
+ class: "border-primary/50 bg-card-item-hover-bg text-foreground focus:border-primary w-32 rounded border px-1.5 py-0.5 text-xs outline-none",
509
+ "q-e:input": /*#__PURE__*/ inlinedQrl((_, el) => {
510
+ let editValue = _capturesObj._[0];
511
+ editValue.value = el.value;
512
+ }, "HookTree_component_div_div_div_div_div_Tree_renderNode_form_input_q_e_input_z05hdrGPzhg", [editValue]),
513
+ "q-e:keydown": /*#__PURE__*/ inlinedQrl((e) => {
514
+ let cancelEdit = _capturesObj._[0];
515
+ if (e.key === "Escape") cancelEdit();
516
+ }, "HookTree_component_div_div_div_div_div_Tree_renderNode_form_input_q_e_keydown_0AuxXsO3Wa0", [cancelEdit]),
517
+ autoFocus: true
518
+ }, null, 3, null), /*#__PURE__*/ _jsxSorted("button", null, {
519
+ type: "submit",
520
+ class: "bg-primary/20 text-primary hover:bg-primary/30 rounded px-1.5 py-0.5 text-xs"
521
+ }, "ok", 3, null)], 1, "n0_0");
522
+ return /*#__PURE__*/ _jsxSorted(StateTreeNodeLabel, { node }, null, null, 3, "n0_1");
523
+ }, "HookTree_component_div_div_div_div_div_Tree_renderNode_vC6C4CEUHF8", [
524
+ cancelEdit,
525
+ commitEdit,
526
+ editValue,
527
+ editingNodeId
528
+ ])
529
+ }, null, 3, "n0_9"), 1, "n0_10") : /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground flex h-full items-center justify-center text-sm" }, "Select a component to inspect its state", 3, "n0_11")], 1, "n0_12"),
519
530
  currentTab.value === "code" && /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg mt-4 flex min-h-0 flex-1 items-center justify-center rounded-xl border p-4" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "text-center" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-sm" }, [/*#__PURE__*/ _jsxSorted("span", null, { class: "font-medium" }, "Code", 3, null), " requires the Qwik DevTools Vite plugin."], 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground/60 mt-2 text-xs" }, [
520
531
  "Available in the in-app overlay when running",
521
532
  " ",
@@ -523,8 +534,8 @@ var HookTree = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
523
534
  " with",
524
535
  " ",
525
536
  /*#__PURE__*/ _jsxSorted("code", null, { class: "bg-card-item-hover-bg rounded px-1.5 py-0.5" }, "@qwik.dev/devtools", 3, null)
526
- ], 3, null)], 3, null), 3, "uB_13")
537
+ ], 3, null)], 3, null), 3, "n0_13")
527
538
  ], 1, null)
528
- ], 1, null), 1, "uB_14");
539
+ ], 1, null), 1, "n0_14");
529
540
  }, "HookTree_component_Q5wO3ucVIeA"));
530
541
  export { HookTree };
@@ -1,4 +1,5 @@
1
- /** VNodeTreeNode -> TreeNode conversion */ function toTreeNodes(vnodes) {
1
+ /** VNodeTreeNode -> TreeNode conversion */
2
+ function toTreeNodes(vnodes) {
2
3
  return vnodes.map((v) => ({
3
4
  id: v.id,
4
5
  name: v.name,
@@ -7,18 +8,20 @@
7
8
  children: v.children ? toTreeNodes(v.children) : void 0
8
9
  }));
9
10
  }
10
- /** Quick structural fingerprint from node IDs. */ function treeIdFingerprint(nodes) {
11
+ /** Includes names so collected source metadata refreshes existing nodes. */
12
+ function treeIdFingerprint(nodes) {
11
13
  const ids = [];
12
14
  const walk = (list) => {
13
15
  for (const n of list) {
14
- ids.push(n.id);
16
+ ids.push(n.name ? `${n.id}:${n.name}` : n.id);
15
17
  if (n.children) walk(n.children);
16
18
  }
17
19
  };
18
20
  walk(nodes);
19
21
  return ids.join(",");
20
22
  }
21
- /** Tree search helpers */ function findNodeById(nodes, id) {
23
+ /** Tree search helpers */
24
+ function findNodeById(nodes, id) {
22
25
  for (const node of nodes) {
23
26
  if (node.id === id) return node;
24
27
  if (node.children) {
@@ -5,24 +5,25 @@ import { _jsxSorted, componentQrl, inlinedQrl, isBrowser } from "@qwik.dev/core"
5
5
  * Inspect iframe must load under app root (Vite `BASE_URL` + origin), not `location.pathname`, so
6
6
  * deep routes do not produce `.../nested/route__inspect/`. SSR: no `location` — return empty until
7
7
  * the client runs.
8
- */ function getInspectIframeSrc() {
8
+ */
9
+ function getInspectIframeSrc() {
9
10
  if (!isBrowser) return "";
10
11
  const base = new URL("/", location.origin);
11
12
  return new URL(inspectorLink, base).href;
12
13
  }
13
14
  var Inspect = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
14
- return /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg h-full w-full flex-1 overflow-hidden rounded-2xl border" }, /*#__PURE__*/ _jsxSorted("iframe", { "q-e:load": /*#__PURE__*/ inlinedQrl((_, el) => {
15
- try {
16
- setupIframeThemeSync(el);
17
- } catch (err) {
18
- console.error("Failed to inject theme into inspect iframe:", err);
19
- }
20
- }, "Inspect_component_div_iframe_q_e_load_yjJo1Bx5M0w") }, {
21
- src: getInspectIframeSrc(),
15
+ return /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg h-full w-full flex-1 overflow-hidden rounded-2xl border" }, /*#__PURE__*/ _jsxSorted("iframe", { src: getInspectIframeSrc() }, {
22
16
  width: "100%",
23
17
  height: "100%",
24
18
  id: "inspect_qwik",
25
- class: "h-full w-full rounded-xl"
26
- }, null, 2, null), 1, "XI_0");
19
+ class: "h-full w-full rounded-xl",
20
+ "q-e:load": /*#__PURE__*/ inlinedQrl((_, el) => {
21
+ try {
22
+ setupIframeThemeSync(el);
23
+ } catch (err) {
24
+ console.error("Failed to inject theme into inspect iframe:", err);
25
+ }
26
+ }, "Inspect_component_div_iframe_q_e_load_yjJo1Bx5M0w")
27
+ }, null, 3, null), 1, "sh_0");
27
28
  }, "Inspect_component_domPlQHzbck"));
28
29
  export { Inspect };
@@ -26,7 +26,8 @@ var GLASSMORPHISM_CSS = `
26
26
  html.dark { color: #fafafa !important; }
27
27
  html, body, #app { overflow-x: hidden !important; max-width: 100vw !important; }
28
28
  `;
29
- /** 在 iframe onLoad 中调用,同步父主题 + 注入透明背景样式 */ function setupIframeThemeSync(iframe) {
29
+ /** 在 iframe onLoad 中调用,同步父主题 + 注入透明背景样式 */
30
+ function setupIframeThemeSync(iframe) {
30
31
  const doc = iframe.contentDocument;
31
32
  const win = iframe.contentWindow;
32
33
  if (!doc || !win) return;