@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
|
@@ -2,48 +2,54 @@ import { IconAdjustmentsHorizontal, IconEllipsisHorizontal } from "../components
|
|
|
2
2
|
import { getAvailableTabs, getVisibleTabs } from "./sidebar-tabs.qwik.mjs";
|
|
3
3
|
import { Tab } from "../components/Tab/Tab.qwik.mjs";
|
|
4
4
|
import { QwikThemeToggle } from "../components/ThemeToggle/QwikThemeToggle.qwik.mjs";
|
|
5
|
-
import { Slot,
|
|
5
|
+
import { Slot, _capturesObj, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useSignal } from "@qwik.dev/core";
|
|
6
6
|
import { Fragment } from "@qwik.dev/core/jsx-runtime";
|
|
7
7
|
var _hf0 = (p0, p1) => p1.value || p0;
|
|
8
|
-
|
|
8
|
+
var _hf0_str = "p1.value||p0";
|
|
9
|
+
/** A fixed bottom-action button matching the sidebar tab shell (Customize, More). */
|
|
10
|
+
var SidebarIconButton = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => /*#__PURE__*/ _jsxSorted("button", {
|
|
9
11
|
"aria-label": _wrapProp(_rawProps, "title"),
|
|
10
12
|
class: ["flex h-11 w-11 items-center justify-center rounded-xl transition-all", _rawProps.active ? "bg-primary/15 text-primary" : "text-muted-foreground hover:bg-foreground/5 hover:text-foreground"],
|
|
11
13
|
"q-e:click": _rawProps.onClick$,
|
|
12
14
|
title: _wrapProp(_rawProps, "title")
|
|
13
|
-
}, null, /*#__PURE__*/ _jsxSorted(Slot, null, null, null, 3, "
|
|
15
|
+
}, null, /*#__PURE__*/ _jsxSorted(Slot, null, null, null, 3, "BY_0"), 0, "BY_1"), "SidebarIconButton_component_aIUV3qUcOzY"));
|
|
14
16
|
var DevtoolsSidebar = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => {
|
|
15
17
|
const isMoreOpen = useSignal(false);
|
|
16
18
|
const moreTabs = getAvailableTabs(_rawProps.state.visibleTabIds);
|
|
17
19
|
const isMoreActive = moreTabs.some((tab) => tab.id === _rawProps.state.activeTab);
|
|
20
|
+
const DevtoolsSidebar_component_div_div_div_Fragment_div_button_q_e_click_UeLOkJekfd8 = /*#__PURE__*/ inlinedQrl((_, _1, id) => {
|
|
21
|
+
let _rawProps = _capturesObj._[0], isMoreOpen = _capturesObj._[1];
|
|
22
|
+
_rawProps.state.activeTab = id;
|
|
23
|
+
isMoreOpen.value = false;
|
|
24
|
+
}, "DevtoolsSidebar_component_div_div_div_Fragment_div_button_q_e_click_UeLOkJekfd8", [_rawProps, isMoreOpen]).m();
|
|
18
25
|
return /*#__PURE__*/ _jsxSorted("div", null, { class: "glass-bg border-glass-border shadow-r flex h-full w-16 flex-col items-center justify-start gap-3 border-r p-3 md:w-20" }, [getVisibleTabs(_rawProps.state.visibleTabIds, _rawProps.state.isExtension).map((tab) => /*#__PURE__*/ _jsxSorted(Tab, {
|
|
19
26
|
id: _wrapProp(tab, "id"),
|
|
20
27
|
title: _wrapProp(tab, "title")
|
|
21
28
|
}, { state: _wrapProp(_rawProps, "state") }, tab.renderIcon(), 1, tab.id)), /*#__PURE__*/ _jsxSorted("div", null, { class: "mt-auto flex flex-col items-center gap-2" }, [
|
|
22
|
-
moreTabs.length > 0 && /*#__PURE__*/ _jsxSorted("div", null, { class: "relative" }, [/*#__PURE__*/ _jsxSorted(SidebarIconButton, {
|
|
23
|
-
const isMoreOpen = _captures[0];
|
|
24
|
-
return isMoreOpen.value = !isMoreOpen.value;
|
|
25
|
-
}, "DevtoolsSidebar_component_div_div_div_SidebarIconButton_onClick_Ehnn3kErcX8", [isMoreOpen]) }, {
|
|
29
|
+
moreTabs.length > 0 && /*#__PURE__*/ _jsxSorted("div", null, { class: "relative" }, [/*#__PURE__*/ _jsxSorted(SidebarIconButton, { active: _fnSignal(_hf0, [isMoreActive, isMoreOpen], _hf0_str) }, {
|
|
26
30
|
title: "More tools",
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
}, { class: "
|
|
31
|
+
onClick$: /*#__PURE__*/ inlinedQrl(() => {
|
|
32
|
+
let isMoreOpen = _capturesObj._[0];
|
|
33
|
+
return isMoreOpen.value = !isMoreOpen.value;
|
|
34
|
+
}, "DevtoolsSidebar_component_div_div_div_SidebarIconButton_onClick_Ehnn3kErcX8", [isMoreOpen])
|
|
35
|
+
}, /*#__PURE__*/ _jsxSorted(IconEllipsisHorizontal, null, { class: "h-6 w-6" }, null, 3, "BY_2"), 1, "BY_3"), isMoreOpen.value && /*#__PURE__*/ _jsxSorted(Fragment, null, null, [/*#__PURE__*/ _jsxSorted("div", null, {
|
|
36
|
+
class: "fixed inset-0 z-20",
|
|
37
|
+
"q-e:click": /*#__PURE__*/ inlinedQrl(() => {
|
|
38
|
+
let isMoreOpen = _capturesObj._[0];
|
|
39
|
+
return isMoreOpen.value = false;
|
|
40
|
+
}, "DevtoolsSidebar_component_div_div_div_Fragment_div_q_e_click_90NEvxKYiKk", [isMoreOpen])
|
|
41
|
+
}, null, 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "glass-panel absolute bottom-0 left-full z-30 ml-2 flex min-w-40 flex-col gap-1 rounded-xl p-2" }, moreTabs.map((tab) => {
|
|
32
42
|
const id = tab.id;
|
|
33
43
|
return /*#__PURE__*/ _jsxSorted("button", {
|
|
34
|
-
"q-e:click":
|
|
35
|
-
const _rawProps = _captures[0], isMoreOpen = _captures[1];
|
|
36
|
-
_rawProps.state.activeTab = id;
|
|
37
|
-
isMoreOpen.value = false;
|
|
38
|
-
}, "DevtoolsSidebar_component_div_div_div_Fragment_div_button_q_e_click_UeLOkJekfd8", [_rawProps, isMoreOpen]).m(),
|
|
44
|
+
"q-e:click": DevtoolsSidebar_component_div_div_div_Fragment_div_button_q_e_click_UeLOkJekfd8,
|
|
39
45
|
"q:p": id
|
|
40
46
|
}, { class: "text-muted-foreground hover:bg-card-item-hover-bg hover:text-foreground flex items-center gap-3 rounded-lg px-2 py-1.5 text-left" }, [tab.renderIcon(), /*#__PURE__*/ _jsxSorted("span", null, { class: "text-foreground text-sm" }, _wrapProp(tab, "title"), 1, null)], 4, id);
|
|
41
|
-
}), 1, null)], 1, "
|
|
47
|
+
}), 1, null)], 1, "BY_4")], 1, "BY_5"),
|
|
42
48
|
!_rawProps.state.isExtension && /*#__PURE__*/ _jsxSorted(SidebarIconButton, { onClick$: /*#__PURE__*/ inlinedQrl(() => {
|
|
43
|
-
|
|
49
|
+
let _rawProps = _capturesObj._[0];
|
|
44
50
|
return _rawProps.state.isCustomizeOpen = true;
|
|
45
|
-
}, "DevtoolsSidebar_component_div_div_SidebarIconButton_onClick_h0rhNZi5Tq0", [_rawProps]) }, { title: "Customize Tabs" }, /*#__PURE__*/ _jsxSorted(IconAdjustmentsHorizontal, null, { class: "h-6 w-6" }, null, 3, "
|
|
46
|
-
/*#__PURE__*/ _jsxSorted("div", null, { class: "mb-2 opacity-80 transition-opacity hover:opacity-100" }, /*#__PURE__*/ _jsxSorted(QwikThemeToggle, null, null, null, 3, "
|
|
47
|
-
], 1, null)], 1, "
|
|
51
|
+
}, "DevtoolsSidebar_component_div_div_SidebarIconButton_onClick_h0rhNZi5Tq0", [_rawProps]) }, { title: "Customize Tabs" }, /*#__PURE__*/ _jsxSorted(IconAdjustmentsHorizontal, null, { class: "h-6 w-6" }, null, 3, "BY_6"), 0, "BY_7"),
|
|
52
|
+
/*#__PURE__*/ _jsxSorted("div", null, { class: "mb-2 opacity-80 transition-opacity hover:opacity-100" }, /*#__PURE__*/ _jsxSorted(QwikThemeToggle, null, null, null, 3, "BY_8"), 1, null)
|
|
53
|
+
], 1, null)], 1, "BY_9");
|
|
48
54
|
}, "DevtoolsSidebar_component_5rrdRzaEaiE"));
|
|
49
55
|
export { DevtoolsSidebar };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
/* empty css */
|
|
1
2
|
import { DevtoolsButton } from "../components/DevtoolsButton/DevtoolsButton.qwik.mjs";
|
|
2
3
|
import { DevtoolsContainer } from "../components/DevtoolsContainer/DevtoolsContainer.qwik.mjs";
|
|
3
4
|
import { DevtoolsPanel } from "../components/DevtoolsPanel/DevtoolsPanel.qwik.mjs";
|
|
4
5
|
import { ThemeScript } from "../components/ThemeToggle/theme-script.qwik.mjs";
|
|
5
|
-
/* empty css */
|
|
6
6
|
import { loadDevtoolsData } from "./rpc.qwik.mjs";
|
|
7
7
|
import { DevtoolsContent } from "./DevtoolsContent.qwik.mjs";
|
|
8
8
|
import { loadVisibleTabIds } from "./sidebar-tabs.qwik.mjs";
|
|
@@ -12,14 +12,14 @@ import { CustomizeTabsPanel } from "./CustomizeTabsPanel.qwik.mjs";
|
|
|
12
12
|
import { CommandPalette } from "./CommandPalette.qwik.mjs";
|
|
13
13
|
import { ensurePreloadRuntime } from "../runtime/preloads.qwik.mjs";
|
|
14
14
|
import { isExcludedPathname, normalizeExcludePathnames } from "../../../kit/src/overlay-paths.qwik.mjs";
|
|
15
|
-
import {
|
|
15
|
+
import { _capturesObj, _jsxSorted, componentQrl, inlinedQrl, useSignal, useStore, useVisibleTaskQrl } from "@qwik.dev/core";
|
|
16
16
|
import { QWIK_DEVTOOLS_GLOBAL, getQwikDevtoolsGlobal } from "@qwik.dev/devtools/kit";
|
|
17
17
|
var QwikDevtools = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((props) => {
|
|
18
18
|
const state = useStore(createDevtoolsState());
|
|
19
19
|
const excludePathnames = normalizeExcludePathnames(props.excludePathnames);
|
|
20
20
|
const shouldRender = useSignal(excludePathnames.length === 0);
|
|
21
21
|
useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(async () => {
|
|
22
|
-
|
|
22
|
+
let excludePathnames = _capturesObj._[0], shouldRender = _capturesObj._[1], state = _capturesObj._[2];
|
|
23
23
|
if (isExcludedPathname(location.pathname, excludePathnames)) {
|
|
24
24
|
shouldRender.value = false;
|
|
25
25
|
return;
|
|
@@ -37,7 +37,7 @@ var QwikDevtools = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((props) =
|
|
|
37
37
|
state
|
|
38
38
|
]), { strategy: "document-ready" });
|
|
39
39
|
useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(({ cleanup }) => {
|
|
40
|
-
|
|
40
|
+
let state = _capturesObj._[0];
|
|
41
41
|
const handleShortcut = (event) => {
|
|
42
42
|
if ((event.metaKey || event.ctrlKey) && (event.key === "k" || event.key === "K")) {
|
|
43
43
|
if (!state.isOpen) return;
|
|
@@ -48,11 +48,11 @@ var QwikDevtools = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((props) =
|
|
|
48
48
|
window.addEventListener("keydown", handleShortcut);
|
|
49
49
|
cleanup(() => window.removeEventListener("keydown", handleShortcut));
|
|
50
50
|
}, "QwikDevtools_component_useVisibleTask_1_Q0Inlj2aFY8", [state]), { strategy: "document-ready" });
|
|
51
|
-
if (!shouldRender.value) return /*#__PURE__*/ _jsxSorted("span", null, { style: { display: "contents" } }, null, 3, "
|
|
52
|
-
return /*#__PURE__*/ _jsxSorted("div", null, { class: "qwik-devtools" }, [/*#__PURE__*/ _jsxSorted(ThemeScript, null, null, null, 3, "
|
|
53
|
-
/*#__PURE__*/ _jsxSorted("div", null, { class: "custom-scrollbar h-full overflow-y-auto p-4" }, /*#__PURE__*/ _jsxSorted(DevtoolsContent, null, { state }, null, 3, "
|
|
54
|
-
!state.isExtension && state.isCustomizeOpen && /*#__PURE__*/ _jsxSorted(CustomizeTabsPanel, null, { state }, null, 3, "
|
|
55
|
-
state.isPaletteOpen && /*#__PURE__*/ _jsxSorted(CommandPalette, null, { state }, null, 3, "
|
|
56
|
-
], 1, null)], 1, "
|
|
51
|
+
if (!shouldRender.value) return /*#__PURE__*/ _jsxSorted("span", null, { style: { display: "contents" } }, null, 3, "xj_0");
|
|
52
|
+
return /*#__PURE__*/ _jsxSorted("div", null, { class: "qwik-devtools" }, [/*#__PURE__*/ _jsxSorted(ThemeScript, null, null, null, 3, "xj_1"), /*#__PURE__*/ _jsxSorted(DevtoolsContainer, null, null, [/*#__PURE__*/ _jsxSorted(DevtoolsButton, null, { state }, null, 3, "xj_2"), state.isOpen && /*#__PURE__*/ _jsxSorted(DevtoolsPanel, null, { state }, [/*#__PURE__*/ _jsxSorted(DevtoolsSidebar, null, { state }, null, 3, "xj_3"), /*#__PURE__*/ _jsxSorted("div", null, { class: "relative min-h-0 flex-1" }, [
|
|
53
|
+
/*#__PURE__*/ _jsxSorted("div", null, { class: "custom-scrollbar h-full overflow-y-auto p-4" }, /*#__PURE__*/ _jsxSorted(DevtoolsContent, null, { state }, null, 3, "xj_4"), 1, null),
|
|
54
|
+
!state.isExtension && state.isCustomizeOpen && /*#__PURE__*/ _jsxSorted(CustomizeTabsPanel, null, { state }, null, 3, "xj_5"),
|
|
55
|
+
state.isPaletteOpen && /*#__PURE__*/ _jsxSorted(CommandPalette, null, { state }, null, 3, "xj_6")
|
|
56
|
+
], 1, null)], 1, "xj_7")], 1, "xj_8")], 1, "xj_9");
|
|
57
57
|
}, "QwikDevtools_component_Jxy3rMAzQPw"));
|
|
58
58
|
export { QwikDevtools };
|
|
@@ -3,7 +3,7 @@ import { loadDevtoolsData } from "./rpc.qwik.mjs";
|
|
|
3
3
|
import { DevtoolsContent } from "./DevtoolsContent.qwik.mjs";
|
|
4
4
|
import { createDevtoolsState } from "./state.qwik.mjs";
|
|
5
5
|
import { DevtoolsSidebar } from "./DevtoolsSidebar.qwik.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { _capturesObj, _jsxSorted, componentQrl, inlinedQrl, useStore, useVisibleTaskQrl } from "@qwik.dev/core";
|
|
7
7
|
/**
|
|
8
8
|
* Extension-only devtools layout.
|
|
9
9
|
*
|
|
@@ -14,10 +14,11 @@ import { _captures, _jsxSorted, componentQrl, inlinedQrl, useStore, useVisibleTa
|
|
|
14
14
|
* The outer `.qwik-devtools` wrapper is required because the Tailwind utilities are scoped under
|
|
15
15
|
* `.qwik-devtools .{class}` in the CSS build. It must be a separate element so descendant selectors
|
|
16
16
|
* match.
|
|
17
|
-
*/
|
|
17
|
+
*/
|
|
18
|
+
var QwikDevtoolsExtension = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
|
|
18
19
|
const state = useStore(createDevtoolsState({ isExtension: true }));
|
|
19
20
|
useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(async () => {
|
|
20
|
-
|
|
21
|
+
let state = _capturesObj._[0];
|
|
21
22
|
await loadDevtoolsData(state);
|
|
22
23
|
}, "QwikDevtoolsExtension_component_useVisibleTask_uLhNm8VeHHc", [state]));
|
|
23
24
|
return /*#__PURE__*/ _jsxSorted("div", null, {
|
|
@@ -26,6 +27,6 @@ import { _captures, _jsxSorted, componentQrl, inlinedQrl, useStore, useVisibleTa
|
|
|
26
27
|
}, /*#__PURE__*/ _jsxSorted("div", null, {
|
|
27
28
|
class: "flex overflow-hidden",
|
|
28
29
|
style: "height: 100%; width: 100%;"
|
|
29
|
-
}, [/*#__PURE__*/ _jsxSorted(DevtoolsSidebar, null, { state }, null, 3, "
|
|
30
|
+
}, [/*#__PURE__*/ _jsxSorted(DevtoolsSidebar, null, { state }, null, 3, "jJ_0"), /*#__PURE__*/ _jsxSorted("div", null, { class: "custom-scrollbar min-h-0 flex-1 overflow-y-auto p-4" }, /*#__PURE__*/ _jsxSorted(DevtoolsContent, null, { state }, null, 3, "jJ_1"), 1, null)], 1, null), 1, "jJ_2");
|
|
30
31
|
}, "QwikDevtoolsExtension_component_EdZTDUSLNrE"));
|
|
31
32
|
export { QwikDevtoolsExtension };
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { devtoolsTabs } from "./tabs.qwik.mjs";
|
|
2
2
|
var RECENTS_STORAGE_KEY = "qwik-devtools:palette-recents";
|
|
3
3
|
var MAX_RECENTS = 5;
|
|
4
|
-
/** Categories always render in this order. */
|
|
4
|
+
/** Categories always render in this order. */
|
|
5
|
+
var CATEGORY_ORDER = [
|
|
5
6
|
"Tabs",
|
|
6
7
|
"Components",
|
|
7
8
|
"Routes",
|
|
8
9
|
"Packages",
|
|
9
10
|
"Actions"
|
|
10
11
|
];
|
|
11
|
-
/** Tabs reachable in the current context (Vite-only tabs are hidden in the extension). */
|
|
12
|
+
/** Tabs reachable in the current context (Vite-only tabs are hidden in the extension). */
|
|
13
|
+
function getTabResults(state) {
|
|
12
14
|
return devtoolsTabs.filter((tab) => !(state.isExtension && tab.viteOnly)).map((tab) => ({
|
|
13
15
|
id: `tab:${tab.id}`,
|
|
14
16
|
category: "Tabs",
|
|
@@ -31,7 +33,8 @@ function getComponentResults(state) {
|
|
|
31
33
|
}
|
|
32
34
|
}));
|
|
33
35
|
}
|
|
34
|
-
/** Routes live behind the Vite-only Routes tab, so they are excluded in the extension. */
|
|
36
|
+
/** Routes live behind the Vite-only Routes tab, so they are excluded in the extension. */
|
|
37
|
+
function getRouteResults(state) {
|
|
35
38
|
if (state.isExtension || !state.routes) return [];
|
|
36
39
|
return state.routes.map((route) => ({
|
|
37
40
|
id: `route:${route.relativePath}`,
|
|
@@ -44,7 +47,8 @@ function getComponentResults(state) {
|
|
|
44
47
|
}
|
|
45
48
|
}));
|
|
46
49
|
}
|
|
47
|
-
/** Packages live behind the Vite-only Packages tab, so they are excluded in the extension. */
|
|
50
|
+
/** Packages live behind the Vite-only Packages tab, so they are excluded in the extension. */
|
|
51
|
+
function getPackageResults(state) {
|
|
48
52
|
if (state.isExtension) return [];
|
|
49
53
|
return state.npmPackages.map(([name, version]) => ({
|
|
50
54
|
id: `package:${name}`,
|
|
@@ -57,7 +61,8 @@ function getComponentResults(state) {
|
|
|
57
61
|
}
|
|
58
62
|
}));
|
|
59
63
|
}
|
|
60
|
-
/** Common quick actions available in the current context. */
|
|
64
|
+
/** Common quick actions available in the current context. */
|
|
65
|
+
function getActionResults(state) {
|
|
61
66
|
const actions = [
|
|
62
67
|
{
|
|
63
68
|
id: "action:toggleTheme",
|
|
@@ -98,7 +103,8 @@ function getComponentResults(state) {
|
|
|
98
103
|
});
|
|
99
104
|
return actions;
|
|
100
105
|
}
|
|
101
|
-
/** Every searchable result for the current context (tabs, components, routes, packages). */
|
|
106
|
+
/** Every searchable result for the current context (tabs, components, routes, packages). */
|
|
107
|
+
function buildPaletteSources(state) {
|
|
102
108
|
return [
|
|
103
109
|
...getTabResults(state),
|
|
104
110
|
...getComponentResults(state),
|
|
@@ -106,12 +112,14 @@ function getComponentResults(state) {
|
|
|
106
112
|
...getPackageResults(state)
|
|
107
113
|
];
|
|
108
114
|
}
|
|
109
|
-
/** Filters results by a substring match against label and hint; an empty query returns nothing. */
|
|
115
|
+
/** Filters results by a substring match against label and hint; an empty query returns nothing. */
|
|
116
|
+
function filterResults(results, query) {
|
|
110
117
|
const normalized = query.trim().toLowerCase();
|
|
111
118
|
if (!normalized) return [];
|
|
112
119
|
return results.filter((result) => result.label.toLowerCase().includes(normalized) || (result.hint?.toLowerCase().includes(normalized) ?? false));
|
|
113
120
|
}
|
|
114
|
-
/** Groups results by category, preserving the fixed category order and dropping empty groups. */
|
|
121
|
+
/** Groups results by category, preserving the fixed category order and dropping empty groups. */
|
|
122
|
+
function groupResults(results) {
|
|
115
123
|
const groups = [];
|
|
116
124
|
for (const category of CATEGORY_ORDER) {
|
|
117
125
|
const inCategory = results.filter((result) => result.category === category);
|
|
@@ -122,7 +130,8 @@ function getComponentResults(state) {
|
|
|
122
130
|
}
|
|
123
131
|
return groups;
|
|
124
132
|
}
|
|
125
|
-
/** Reads the persisted recent-selection ids, newest first; empty when nothing valid is stored. */
|
|
133
|
+
/** Reads the persisted recent-selection ids, newest first; empty when nothing valid is stored. */
|
|
134
|
+
function loadRecentIds() {
|
|
126
135
|
try {
|
|
127
136
|
const raw = localStorage.getItem(RECENTS_STORAGE_KEY);
|
|
128
137
|
if (!raw) return [];
|
|
@@ -133,18 +142,21 @@ function getComponentResults(state) {
|
|
|
133
142
|
return [];
|
|
134
143
|
}
|
|
135
144
|
}
|
|
136
|
-
/** Persists the recent-selection ids. Storage failures (private mode, quota) are ignored. */
|
|
145
|
+
/** Persists the recent-selection ids. Storage failures (private mode, quota) are ignored. */
|
|
146
|
+
function saveRecentIds(ids) {
|
|
137
147
|
try {
|
|
138
148
|
localStorage.setItem(RECENTS_STORAGE_KEY, JSON.stringify(ids));
|
|
139
149
|
} catch {}
|
|
140
150
|
}
|
|
141
|
-
/** Returns a new list with `id` moved to the front, de-duped and capped at MAX_RECENTS. */
|
|
151
|
+
/** Returns a new list with `id` moved to the front, de-duped and capped at MAX_RECENTS. */
|
|
152
|
+
function addRecentId(recentIds, id) {
|
|
142
153
|
return [id, ...recentIds.filter((existing) => existing !== id)].slice(0, MAX_RECENTS);
|
|
143
154
|
}
|
|
144
155
|
/**
|
|
145
156
|
* Resolves persisted recent ids to their current results, dropping entries that no longer exist
|
|
146
157
|
* (e.g. a component that unmounted or a package that was removed). Actions are resolvable too.
|
|
147
|
-
*/
|
|
158
|
+
*/
|
|
159
|
+
function resolveRecents(recentIds, state) {
|
|
148
160
|
const byId = /* @__PURE__ */ new Map();
|
|
149
161
|
for (const result of [...buildPaletteSources(state), ...getActionResults(state)]) byId.set(result.id, result);
|
|
150
162
|
const resolved = [];
|
|
@@ -3,7 +3,8 @@ import { QWIK_DEVTOOLS_GLOBAL, createInPageBridge, getQwikDevtoolsGlobal } from
|
|
|
3
3
|
/**
|
|
4
4
|
* Default implementation that reads directly from `window` globals. Used when the devtools UI runs
|
|
5
5
|
* as an in-app overlay (same document).
|
|
6
|
-
*/
|
|
6
|
+
*/
|
|
7
|
+
var InPageDataSource = class {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.bridge = createInPageBridge({ isBrowser });
|
|
9
10
|
}
|
|
@@ -52,7 +53,8 @@ var defaultSource = new InPageDataSource();
|
|
|
52
53
|
*
|
|
53
54
|
* When the Qwik DevTools root has a `pageDataSource` (by the browser extension entry point), that
|
|
54
55
|
* source is used. Otherwise the default in-page source is returned.
|
|
55
|
-
*/
|
|
56
|
+
*/
|
|
57
|
+
function getPageDataSource() {
|
|
56
58
|
const source = isBrowser ? getQwikDevtoolsGlobal(window)?.[QWIK_DEVTOOLS_GLOBAL.props.pageDataSource] : void 0;
|
|
57
59
|
if (source) return source;
|
|
58
60
|
return defaultSource;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __toESM } from "../../../../../_virtual/_rolldown/runtime.qwik.mjs";
|
|
2
|
-
import { require_browser } from "../../../../../node_modules/.pnpm/debug@4.4.3_supports-color@
|
|
3
|
-
import { tryCreateHotContext } from "../../../../../node_modules/.pnpm/vite-hot-client@2.
|
|
2
|
+
import { require_browser } from "../../../../../node_modules/.pnpm/debug@4.4.3_supports-color@11.0.0/node_modules/debug/src/browser.qwik.mjs";
|
|
3
|
+
import { tryCreateHotContext } from "../../../../../node_modules/.pnpm/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";
|
|
4
4
|
import { noSerialize } from "@qwik.dev/core";
|
|
5
5
|
import { QWIK_DEVTOOLS_GLOBAL, RouteType, createClientRpc, getQwikDevtoolsGlobal, getViteClientRpc, setViteClientContext } from "@qwik.dev/devtools/kit";
|
|
6
6
|
var log = (0, (/* @__PURE__ */ __toESM(require_browser(), 1)).default)("qwik:devtools:devtools");
|
|
@@ -33,7 +33,8 @@ function getDevtoolsRpc() {
|
|
|
33
33
|
/**
|
|
34
34
|
* Default data provider that loads data via Vite HMR RPC. Used when the devtools UI runs as an
|
|
35
35
|
* in-app overlay.
|
|
36
|
-
*/
|
|
36
|
+
*/
|
|
37
|
+
var viteDataProvider = { async loadData(state) {
|
|
37
38
|
const rpc = await getDevtoolsRpc();
|
|
38
39
|
const primaryDataPromise = Promise.allSettled([
|
|
39
40
|
rpc.getAssetsFromPublicDir(),
|
|
@@ -65,7 +66,8 @@ function getDevtoolsRpc() {
|
|
|
65
66
|
*
|
|
66
67
|
* When the Qwik DevTools root has a `dataProvider` (e.g. from the browser extension entry point),
|
|
67
68
|
* that provider is used. Otherwise, falls back to the default Vite HMR RPC provider.
|
|
68
|
-
*/
|
|
69
|
+
*/
|
|
70
|
+
async function loadDevtoolsData(state) {
|
|
69
71
|
await (getQwikDevtoolsGlobal(window)?.[QWIK_DEVTOOLS_GLOBAL.props.dataProvider] ?? viteDataProvider).loadData(state);
|
|
70
72
|
}
|
|
71
73
|
export { getDevtoolsRpc, loadDevtoolsData };
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
import { devtoolsTabs } from "./tabs.qwik.mjs";
|
|
2
2
|
var STORAGE_KEY = "qwik-devtools:visible-tabs";
|
|
3
|
-
/** Tab configs keyed by id, for resolving an ordered id list. */
|
|
3
|
+
/** Tab configs keyed by id, for resolving an ordered id list. */
|
|
4
|
+
var tabsById = new Map(devtoolsTabs.map((tab) => [tab.id, tab]));
|
|
4
5
|
var KNOWN_TAB_IDS = new Set(devtoolsTabs.map((tab) => tab.id));
|
|
5
6
|
function isDevtoolsTabId(id) {
|
|
6
7
|
return KNOWN_TAB_IDS.has(id);
|
|
7
8
|
}
|
|
8
|
-
/** Default sidebar configuration: every tab visible, in registry order. */
|
|
9
|
+
/** Default sidebar configuration: every tab visible, in registry order. */
|
|
10
|
+
function getDefaultVisibleTabIds() {
|
|
9
11
|
return devtoolsTabs.map((tab) => tab.id);
|
|
10
12
|
}
|
|
11
|
-
/** Tabs not currently visible (reachable via the More panel), in registry order. */
|
|
13
|
+
/** Tabs not currently visible (reachable via the More panel), in registry order. */
|
|
14
|
+
function getAvailableTabIds(visibleTabIds) {
|
|
12
15
|
const visible = new Set(visibleTabIds);
|
|
13
16
|
return devtoolsTabs.map((tab) => tab.id).filter((id) => !visible.has(id));
|
|
14
17
|
}
|
|
15
|
-
/**
|
|
18
|
+
/** Hidden tabs resolved to their configs (the More panel contents), in registry order. */
|
|
19
|
+
function getAvailableTabs(visibleTabIds) {
|
|
20
|
+
return resolveTabs(getAvailableTabIds(visibleTabIds));
|
|
21
|
+
}
|
|
22
|
+
/** Moves `draggedId` to sit just before `targetId` in the list, returning a new list. */
|
|
23
|
+
function reorderVisibleTabs(visibleTabIds, draggedId, targetId) {
|
|
16
24
|
if (draggedId === targetId) return visibleTabIds;
|
|
17
25
|
const without = visibleTabIds.filter((id) => id !== draggedId);
|
|
18
26
|
const targetIndex = without.indexOf(targetId);
|
|
@@ -20,11 +28,13 @@ function isDevtoolsTabId(id) {
|
|
|
20
28
|
without.splice(targetIndex, 0, draggedId);
|
|
21
29
|
return without;
|
|
22
30
|
}
|
|
23
|
-
/** Adds (appends) or removes a tab from the ordered visible list, returning a new list. */
|
|
31
|
+
/** Adds (appends) or removes a tab from the ordered visible list, returning a new list. */
|
|
32
|
+
function setTabVisible(visibleTabIds, id, visible) {
|
|
24
33
|
if (visible) return visibleTabIds.includes(id) ? visibleTabIds : [...visibleTabIds, id];
|
|
25
34
|
return visibleTabIds.filter((tabId) => tabId !== id);
|
|
26
35
|
}
|
|
27
|
-
/** Drops ids no longer in the registry and de-dupes, preserving the stored order. */
|
|
36
|
+
/** Drops ids no longer in the registry and de-dupes, preserving the stored order. */
|
|
37
|
+
function normalizeVisibleTabIds(ids) {
|
|
28
38
|
const seen = /* @__PURE__ */ new Set();
|
|
29
39
|
const result = [];
|
|
30
40
|
for (const id of ids) if (isDevtoolsTabId(id) && !seen.has(id)) {
|
|
@@ -37,7 +47,8 @@ function isDevtoolsTabId(id) {
|
|
|
37
47
|
* Reads the persisted visible-tabs list, or null when nothing valid is stored so the caller falls
|
|
38
48
|
* back to the default. An empty list is honored (the user hid every tab). Tabs added to the
|
|
39
49
|
* registry since the last save stay hidden (reachable via the More panel) until opted in.
|
|
40
|
-
*/
|
|
50
|
+
*/
|
|
51
|
+
function loadVisibleTabIds() {
|
|
41
52
|
try {
|
|
42
53
|
const raw = localStorage.getItem(STORAGE_KEY);
|
|
43
54
|
if (!raw) return null;
|
|
@@ -48,12 +59,14 @@ function isDevtoolsTabId(id) {
|
|
|
48
59
|
return null;
|
|
49
60
|
}
|
|
50
61
|
}
|
|
51
|
-
/** Persists the visible-tabs list. Storage failures (private mode, quota) are ignored. */
|
|
62
|
+
/** Persists the visible-tabs list. Storage failures (private mode, quota) are ignored. */
|
|
63
|
+
function saveVisibleTabIds(visibleTabIds) {
|
|
52
64
|
try {
|
|
53
65
|
localStorage.setItem(STORAGE_KEY, JSON.stringify(visibleTabIds));
|
|
54
66
|
} catch {}
|
|
55
67
|
}
|
|
56
|
-
/** Resolves an ordered id list to its tab configs, dropping unknown ids. */
|
|
68
|
+
/** Resolves an ordered id list to its tab configs, dropping unknown ids. */
|
|
69
|
+
function resolveTabs(ids) {
|
|
57
70
|
const tabs = [];
|
|
58
71
|
for (const id of ids) {
|
|
59
72
|
const tab = tabsById.get(id);
|
|
@@ -61,13 +74,11 @@ function isDevtoolsTabId(id) {
|
|
|
61
74
|
}
|
|
62
75
|
return tabs;
|
|
63
76
|
}
|
|
64
|
-
/** Hidden tabs resolved to their configs (the More panel contents), in registry order. */ function getAvailableTabs(visibleTabIds) {
|
|
65
|
-
return resolveTabs(getAvailableTabIds(visibleTabIds));
|
|
66
|
-
}
|
|
67
77
|
/**
|
|
68
78
|
* Resolves the ordered visible ids to their tab configs, dropping, in the extension, tabs that
|
|
69
79
|
* require the Vite plugin.
|
|
70
|
-
*/
|
|
80
|
+
*/
|
|
81
|
+
function getVisibleTabs(visibleTabIds, isExtension) {
|
|
71
82
|
return resolveTabs(visibleTabIds).filter((tab) => !(isExtension && tab.viteOnly));
|
|
72
83
|
}
|
|
73
84
|
export { getAvailableTabIds, getAvailableTabs, getDefaultVisibleTabIds, getVisibleTabs, loadVisibleTabIds, reorderVisibleTabs, resolveTabs, saveVisibleTabIds, setTabVisible };
|
|
@@ -4,56 +4,56 @@ var devtoolsTabs = [
|
|
|
4
4
|
{
|
|
5
5
|
id: "overview",
|
|
6
6
|
title: "Overview",
|
|
7
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconBoltOutline, null, { class: "h-6 w-6" }, null, 3, "
|
|
7
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconBoltOutline, null, { class: "h-6 w-6" }, null, 3, "NS_0")
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
id: "packages",
|
|
11
11
|
title: "Packages",
|
|
12
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconCubeOutline, null, { class: "h-6 w-6" }, null, 3, "
|
|
12
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconCubeOutline, null, { class: "h-6 w-6" }, null, 3, "NS_1"),
|
|
13
13
|
viteOnly: true
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
id: "renderTree",
|
|
17
17
|
title: "Render Tree",
|
|
18
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconDiagram3, null, { class: "h-6 w-6" }, null, 3, "
|
|
18
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconDiagram3, null, { class: "h-6 w-6" }, null, 3, "NS_2")
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
id: "routes",
|
|
22
22
|
title: "Routes",
|
|
23
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconFolderTree, null, { class: "h-6 w-6" }, null, 3, "
|
|
23
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconFolderTree, null, { class: "h-6 w-6" }, null, 3, "NS_3"),
|
|
24
24
|
viteOnly: true
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
id: "assets",
|
|
28
28
|
title: "Assets",
|
|
29
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconPhotoOutline, null, { class: "h-6 w-6" }, null, 3, "
|
|
29
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconPhotoOutline, null, { class: "h-6 w-6" }, null, 3, "NS_4"),
|
|
30
30
|
viteOnly: true
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
id: "inspect",
|
|
34
34
|
title: "Inspect",
|
|
35
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconMegaphoneMini, null, { class: "h-6 w-6" }, null, 3, "
|
|
35
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconMegaphoneMini, null, { class: "h-6 w-6" }, null, 3, "NS_5"),
|
|
36
36
|
viteOnly: true
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
id: "codeBreak",
|
|
40
40
|
title: "Code Break",
|
|
41
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconCodeBracketSolid, null, { class: "h-6 w-6" }, null, 3, "
|
|
41
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconCodeBracketSolid, null, { class: "h-6 w-6" }, null, 3, "NS_6")
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
id: "performance",
|
|
45
45
|
title: "Performance",
|
|
46
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconClockOutline, null, { class: "h-6 w-6" }, null, 3, "
|
|
46
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconClockOutline, null, { class: "h-6 w-6" }, null, 3, "NS_7")
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
id: "preloads",
|
|
50
50
|
title: "Preloads",
|
|
51
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconArrowDownTray, null, { class: "h-6 w-6" }, null, 3, "
|
|
51
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconArrowDownTray, null, { class: "h-6 w-6" }, null, 3, "NS_8")
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
id: "buildAnalysis",
|
|
55
55
|
title: "Build Analysis",
|
|
56
|
-
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconChartBarOutline, null, { class: "h-6 w-6" }, null, 3, "
|
|
56
|
+
renderIcon: () => /*#__PURE__*/ _jsxSorted(IconChartBarOutline, null, { class: "h-6 w-6" }, null, 3, "NS_9"),
|
|
57
57
|
viteOnly: true
|
|
58
58
|
}
|
|
59
59
|
];
|
|
@@ -10,7 +10,7 @@ var Assets = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =>
|
|
|
10
10
|
width: 176,
|
|
11
11
|
height: 176,
|
|
12
12
|
class: "h-full w-full object-cover"
|
|
13
|
-
}, null, 3, null), 1, "
|
|
14
|
-
}), 1, "
|
|
13
|
+
}, null, 3, null), 1, "El_0") : /*#__PURE__*/ _jsxSorted("div", null, { class: "bg-foreground/5 flex aspect-square items-center justify-center" }, /*#__PURE__*/ _jsxSorted("span", null, { class: "text-muted-foreground font-mono text-2xl" }, fileExt, 1, null), 1, "El_1"), /*#__PURE__*/ _jsxSorted("div", null, { class: "space-y-2 p-4" }, [/*#__PURE__*/ _jsxSorted("div", { title: _wrapProp(asset, "path") }, { class: "truncate text-sm" }, asset.path.split("/").pop(), 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground flex items-center justify-between text-xs" }, [/*#__PURE__*/ _jsxSorted("span", null, null, [(asset.size / 1024).toFixed(2), " KB"], 1, null), /*#__PURE__*/ _jsxSorted("span", null, { class: "bg-foreground/5 rounded-full px-2 py-1" }, fileExt, 1, null)], 1, null)], 1, null)], 1, asset.filePath);
|
|
14
|
+
}), 1, "El_2");
|
|
15
15
|
}, "Assets_component_3McbsijSMd8"));
|
|
16
16
|
export { Assets };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { getDevtoolsRpc } from "../../devtools/rpc.qwik.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { _capturesObj, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, isBrowser, useSignal, useVisibleTaskQrl } from "@qwik.dev/core";
|
|
3
3
|
import { Fragment } from "@qwik.dev/core/jsx-runtime";
|
|
4
4
|
var _hf0 = (p0) => p0.value ? "Rebuilding..." : "Rebuild Report";
|
|
5
|
+
var _hf0_str = "p0.value?\"Rebuilding...\":\"Rebuild Report\"";
|
|
5
6
|
var _hf1 = (p0) => p0.value ? "Building..." : "Build Report";
|
|
7
|
+
var _hf1_str = "p0.value?\"Building...\":\"Build Report\"";
|
|
6
8
|
var BUILD_ANALYSIS_VIEW_PATH = "/__qwik_devtools/build-analysis/report";
|
|
7
9
|
function getBuildAnalysisIframeSrc(version, origin) {
|
|
8
10
|
const baseOrigin = origin ?? (isBrowser ? location.origin : "");
|
|
@@ -22,7 +24,7 @@ var BuildAnalysis = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
|
|
|
22
24
|
const buildTriggerHint = useSignal("");
|
|
23
25
|
const errorMessage = useSignal("");
|
|
24
26
|
const loadStatus = /*#__PURE__*/ inlinedQrl(async () => {
|
|
25
|
-
|
|
27
|
+
let buildCommand = _capturesObj._[0], buildTriggerHint = _capturesObj._[1], canTriggerBuild = _capturesObj._[2], errorMessage = _capturesObj._[3], hasReport = _capturesObj._[4], isChecking = _capturesObj._[5], reportPath = _capturesObj._[6];
|
|
26
28
|
isChecking.value = true;
|
|
27
29
|
errorMessage.value = "";
|
|
28
30
|
try {
|
|
@@ -47,11 +49,11 @@ var BuildAnalysis = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
|
|
|
47
49
|
reportPath
|
|
48
50
|
]);
|
|
49
51
|
const refreshFrame = /*#__PURE__*/ inlinedQrl(() => {
|
|
50
|
-
|
|
52
|
+
let iframeVersion = _capturesObj._[0];
|
|
51
53
|
iframeVersion.value += 1;
|
|
52
54
|
}, "BuildAnalysis_component_refreshFrame_KBOtgw7vjAM", [iframeVersion]);
|
|
53
55
|
const buildReport = /*#__PURE__*/ inlinedQrl(async () => {
|
|
54
|
-
|
|
56
|
+
let buildCommand = _capturesObj._[0], buildTriggerHint = _capturesObj._[1], canTriggerBuild = _capturesObj._[2], errorMessage = _capturesObj._[3], iframeVersion = _capturesObj._[4], isBuilding = _capturesObj._[5], loadStatus = _capturesObj._[6];
|
|
55
57
|
if (!buildCommand.value) {
|
|
56
58
|
errorMessage.value = "No build script found. Expected \"build.client\" or \"build\" in package.json.";
|
|
57
59
|
return;
|
|
@@ -86,28 +88,28 @@ var BuildAnalysis = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
|
|
|
86
88
|
loadStatus
|
|
87
89
|
]);
|
|
88
90
|
useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(async () => {
|
|
89
|
-
|
|
91
|
+
let loadStatus = _capturesObj._[0];
|
|
90
92
|
await loadStatus();
|
|
91
93
|
}, "BuildAnalysis_component_useVisibleTask_aOkClGsXcvo", [loadStatus]));
|
|
92
94
|
return /*#__PURE__*/ _jsxSorted("div", null, { class: "flex h-full min-h-0 flex-col gap-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg rounded-2xl border p-5" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "flex flex-col gap-3" }, [
|
|
93
95
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-lg font-semibold" }, "Build Analysis", 3, null),
|
|
94
96
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground max-w-3xl text-sm leading-6" }, "This tab embeds the HTML report generated by the visualizer plugin after a build.", 3, null),
|
|
95
|
-
buildCommand.value ? /*#__PURE__*/ _jsxSorted("code", null, { class: "text-muted-foreground bg-foreground/5 rounded-lg px-3 py-2 text-xs" }, _wrapProp(buildCommand), 3, "
|
|
96
|
-
buildTriggerHint.value ? /*#__PURE__*/ _jsxSorted("div", null, { class: "rounded-xl border border-amber-500/20 bg-amber-500/10 px-3 py-2 text-sm text-amber-200" }, _wrapProp(buildTriggerHint), 3, "
|
|
97
|
-
errorMessage.value ? /*#__PURE__*/ _jsxSorted("div", null, { class: "rounded-xl border border-red-500/20 bg-red-500/10 px-3 py-2 text-sm text-red-300" }, _wrapProp(errorMessage), 3, "
|
|
98
|
-
], 1, null), 1, null), isChecking.value ? /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg text-muted-foreground rounded-2xl border p-6 text-sm" }, "Checking build analysis report...", 3, "
|
|
97
|
+
buildCommand.value ? /*#__PURE__*/ _jsxSorted("code", null, { class: "text-muted-foreground bg-foreground/5 rounded-lg px-3 py-2 text-xs" }, _wrapProp(buildCommand), 3, "td_0") : null,
|
|
98
|
+
buildTriggerHint.value ? /*#__PURE__*/ _jsxSorted("div", null, { class: "rounded-xl border border-amber-500/20 bg-amber-500/10 px-3 py-2 text-sm text-amber-200" }, _wrapProp(buildTriggerHint), 3, "td_1") : null,
|
|
99
|
+
errorMessage.value ? /*#__PURE__*/ _jsxSorted("div", null, { class: "rounded-xl border border-red-500/20 bg-red-500/10 px-3 py-2 text-sm text-red-300" }, _wrapProp(errorMessage), 3, "td_2") : null
|
|
100
|
+
], 1, null), 1, null), isChecking.value ? /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg text-muted-foreground rounded-2xl border p-6 text-sm" }, "Checking build analysis report...", 3, "td_3") : hasReport.value ? /*#__PURE__*/ _jsxSorted(Fragment, null, null, [/*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-center justify-end gap-3" }, [buildCommand.value && canTriggerBuild.value ? /*#__PURE__*/ _jsxSorted("button", null, {
|
|
99
101
|
type: "button",
|
|
100
102
|
"q-e:click": buildReport,
|
|
101
103
|
disabled: _wrapProp(isBuilding),
|
|
102
104
|
class: "border-border bg-foreground/5 hover:bg-foreground/10 rounded-xl border px-4 py-2 text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50"
|
|
103
|
-
}, _fnSignal(_hf0, [isBuilding]), 3, "
|
|
105
|
+
}, _fnSignal(_hf0, [isBuilding], _hf0_str), 3, "td_4") : null, /*#__PURE__*/ _jsxSorted("button", null, {
|
|
104
106
|
type: "button",
|
|
105
107
|
"q-e:click": refreshFrame,
|
|
106
108
|
class: "border-border bg-foreground/5 hover:bg-foreground/10 rounded-xl border px-4 py-2 text-sm transition-colors"
|
|
107
109
|
}, "Reload Report", 3, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg min-h-0 flex-1 overflow-hidden rounded-2xl border" }, /*#__PURE__*/ _jsxSorted("iframe", { src: getBuildAnalysisIframeSrc(iframeVersion.value) }, {
|
|
108
110
|
title: "Build Analysis Report",
|
|
109
111
|
class: "h-full min-h-[680px] w-full border-0 bg-white"
|
|
110
|
-
}, null, 3, getBuildAnalysisIframeSrc(iframeVersion.value)), 1, null)], 1, "
|
|
112
|
+
}, null, 3, getBuildAnalysisIframeSrc(iframeVersion.value)), 1, null)], 1, "td_5") : /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg rounded-2xl border p-6" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "flex max-w-3xl flex-col gap-4" }, [
|
|
111
113
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-base font-semibold" }, "No build analysis report yet", 3, null),
|
|
112
114
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-sm leading-6" }, canTriggerBuild.value ? "The visualizer HTML file does not exist yet. You need to build the current project first, and DevTools will ask for your confirmation before running that build." : "The visualizer HTML file does not exist yet. Run the build command locally to generate it, or reconnect from localhost if you want DevTools to trigger it for you.", 1, null),
|
|
113
115
|
/*#__PURE__*/ _jsxSorted("code", null, { class: "text-muted-foreground bg-foreground/5 rounded-lg px-3 py-2 text-xs" }, _wrapProp(reportPath), 3, null),
|
|
@@ -116,7 +118,7 @@ var BuildAnalysis = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl(() => {
|
|
|
116
118
|
"q-e:click": buildReport,
|
|
117
119
|
disabled: _wrapProp(isBuilding),
|
|
118
120
|
class: "border-border bg-foreground/5 hover:bg-foreground/10 rounded-xl border px-4 py-2 text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50"
|
|
119
|
-
}, _fnSignal(_hf1, [isBuilding]), 3, "
|
|
120
|
-
], 1, null), 1, "
|
|
121
|
+
}, _fnSignal(_hf1, [isBuilding], _hf1_str), 3, "td_6") : null, 1, null)
|
|
122
|
+
], 1, null), 1, "td_7")], 1, "td_8");
|
|
121
123
|
}, "BuildAnalysis_component_wViM53DMgX4"));
|
|
122
124
|
export { BuildAnalysis, getBuildAnalysisIframeSrc };
|