@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.
- package/dist/kit/index.d.mts +6 -0
- package/dist/kit/index.mjs +4 -6
- package/dist/plugin/codegen.mjs +1 -1
- package/dist/plugin/{create-hook-runtime-ChnIePeB.mjs → create-hook-runtime-CAtQC5B3.mjs} +42 -22
- package/dist/plugin/index.mjs +15 -7
- package/dist/ui/{bundle-graph-CoI___e1.json → bundle-graph-DNRrO_5W.json} +1 -1
- package/dist/ui/entry.extension.qwik.mjs +3 -2
- package/dist/ui/lib-types/ui/src/features/HookTree/hookTreeHelpers.d.ts +1 -1
- 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
- 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
- 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
- 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
- package/dist/ui/packages/devtools/kit/src/overlay-paths.qwik.mjs +4 -4
- package/dist/ui/packages/devtools/ui/src/components/DevtoolsButton/DevtoolsButton.qwik.mjs +21 -19
- package/dist/ui/packages/devtools/ui/src/components/DevtoolsContainer/DevtoolsContainer.qwik.mjs +4 -1
- package/dist/ui/packages/devtools/ui/src/components/DevtoolsPanel/DevtoolsPanel.qwik.mjs +91 -78
- package/dist/ui/packages/devtools/ui/src/components/IconButton/IconButton.qwik.mjs +3 -2
- package/dist/ui/packages/devtools/ui/src/components/Icons/Icons.qwik.mjs +178 -96
- package/dist/ui/packages/devtools/ui/src/components/InfoBanner/InfoBanner.qwik.mjs +4 -2
- package/dist/ui/packages/devtools/ui/src/components/Tab/Tab.qwik.mjs +5 -6
- package/dist/ui/packages/devtools/ui/src/components/TabContent/TabContent.qwik.mjs +1 -1
- package/dist/ui/packages/devtools/ui/src/components/TabTitle/TabTitle.qwik.mjs +1 -1
- package/dist/ui/packages/devtools/ui/src/components/ThemeToggle/QwikThemeToggle.qwik.mjs +4 -4
- package/dist/ui/packages/devtools/ui/src/components/ThemeToggle/theme-script.qwik.mjs +1 -1
- package/dist/ui/packages/devtools/ui/src/components/Tree/Tree.qwik.mjs +41 -24
- package/dist/ui/packages/devtools/ui/src/devtools/CommandPalette.qwik.mjs +49 -35
- package/dist/ui/packages/devtools/ui/src/devtools/CustomizeTabsPanel.qwik.mjs +46 -35
- package/dist/ui/packages/devtools/ui/src/devtools/DevtoolsContent.qwik.mjs +30 -45
- package/dist/ui/packages/devtools/ui/src/devtools/DevtoolsSidebar.qwik.mjs +28 -22
- package/dist/ui/packages/devtools/ui/src/devtools/QwikDevtools.qwik.mjs +10 -10
- package/dist/ui/packages/devtools/ui/src/devtools/QwikDevtoolsExtension.qwik.mjs +5 -4
- package/dist/ui/packages/devtools/ui/src/devtools/command-palette.qwik.mjs +24 -12
- package/dist/ui/packages/devtools/ui/src/devtools/page-data-source.qwik.mjs +4 -2
- package/dist/ui/packages/devtools/ui/src/devtools/rpc.qwik.mjs +6 -4
- package/dist/ui/packages/devtools/ui/src/devtools/sidebar-tabs.qwik.mjs +24 -13
- package/dist/ui/packages/devtools/ui/src/devtools/tabs.qwik.mjs +10 -10
- package/dist/ui/packages/devtools/ui/src/features/Assets/Assets.qwik.mjs +2 -2
- package/dist/ui/packages/devtools/ui/src/features/BuildAnalysis/BuildAnalysis.qwik.mjs +15 -13
- package/dist/ui/packages/devtools/ui/src/features/CodeBreak/CodeBreak.qwik.mjs +19 -21
- package/dist/ui/packages/devtools/ui/src/features/CodeBreak/HtmlParser.qwik.mjs +13 -11
- package/dist/ui/packages/devtools/ui/src/features/CodeBreak/StateParser.qwik.mjs +13 -11
- package/dist/ui/packages/devtools/ui/src/features/HookTree/HookTree.qwik.mjs +82 -71
- package/dist/ui/packages/devtools/ui/src/features/HookTree/hookTreeHelpers.qwik.mjs +7 -4
- package/dist/ui/packages/devtools/ui/src/features/Inspect/Inspect.qwik.mjs +12 -11
- package/dist/ui/packages/devtools/ui/src/features/Inspect/iframe-theme.qwik.mjs +2 -1
- package/dist/ui/packages/devtools/ui/src/features/Overview/Overview.qwik.mjs +20 -16
- package/dist/ui/packages/devtools/ui/src/features/Packages/Packages.qwik.mjs +37 -36
- package/dist/ui/packages/devtools/ui/src/features/Packages/components/DependencyCard/DependencyCard.qwik.mjs +38 -28
- package/dist/ui/packages/devtools/ui/src/features/Packages/components/DependencyOperationFeedback/DependencyOperationFeedback.qwik.mjs +4 -3
- package/dist/ui/packages/devtools/ui/src/features/Packages/components/DependencyToolbar/DependencyToolbar.qwik.mjs +19 -18
- package/dist/ui/packages/devtools/ui/src/features/Packages/components/InstalledDependencyList/InstalledDependencyList.qwik.mjs +4 -4
- package/dist/ui/packages/devtools/ui/src/features/Packages/components/PackageIcon/PackageIcon.qwik.mjs +4 -4
- package/dist/ui/packages/devtools/ui/src/features/Packages/components/PackageSearchResults/PackageSearchResults.qwik.mjs +6 -5
- package/dist/ui/packages/devtools/ui/src/features/Packages/components/SearchResultCard/SearchResultCard.qwik.mjs +25 -14
- package/dist/ui/packages/devtools/ui/src/features/Performance/Performance.qwik.mjs +24 -20
- package/dist/ui/packages/devtools/ui/src/features/Performance/components/ComponentCard.qwik.mjs +3 -1
- package/dist/ui/packages/devtools/ui/src/features/Performance/components/HookDetailsPanel.qwik.mjs +10 -6
- package/dist/ui/packages/devtools/ui/src/features/Performance/components/PerformanceOverview.qwik.mjs +11 -9
- package/dist/ui/packages/devtools/ui/src/features/Performance/components/StatCard.qwik.mjs +2 -2
- package/dist/ui/packages/devtools/ui/src/features/Performance/computePerfViewModel.qwik.mjs +4 -2
- package/dist/ui/packages/devtools/ui/src/features/Preloads/Preloads.qwik.mjs +94 -82
- package/dist/ui/packages/devtools/ui/src/features/RenderTree/RenderTree.qwik.mjs +36 -32
- package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/HighlightedCodeList.qwik.mjs +2 -1
- package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/HookFiltersCard.qwik.mjs +17 -18
- package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/RenderTreeTabs.qwik.mjs +4 -2
- package/dist/ui/packages/devtools/ui/src/features/RenderTree/components/StateTreeNodeLabel.qwik.mjs +8 -7
- package/dist/ui/packages/devtools/ui/src/features/Routes/Routes.qwik.mjs +10 -6
- package/dist/ui/q-manifest.json +187 -187
- package/package.json +8 -8
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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, "
|
|
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,
|
|
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)],
|
|
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, "
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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, "
|
|
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,
|
|
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, "
|
|
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 {
|
|
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 */
|
|
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
|
|
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
|
-
|
|
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", [
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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, "
|
|
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, "
|
|
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, "
|
|
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
|
-
|
|
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
|
-
|
|
476
|
+
let currentTab = _capturesObj._[0];
|
|
470
477
|
return currentTab.value = "state";
|
|
471
|
-
}, "HookTree_component_div_div_div_RenderTreeTabs_onStateClick_91eAngQRRXU", [currentTab])
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
}, "
|
|
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,
|
|
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
|
-
|
|
518
|
-
|
|
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, "
|
|
537
|
+
], 3, null)], 3, null), 3, "n0_13")
|
|
527
538
|
], 1, null)
|
|
528
|
-
], 1, null), 1, "
|
|
539
|
+
], 1, null), 1, "n0_14");
|
|
529
540
|
}, "HookTree_component_Q5wO3ucVIeA"));
|
|
530
541
|
export { HookTree };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/** VNodeTreeNode -> TreeNode conversion */
|
|
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
|
-
/**
|
|
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 */
|
|
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
|
-
*/
|
|
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", {
|
|
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
|
-
|
|
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 中调用,同步父主题 + 注入透明背景样式 */
|
|
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;
|