@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,32 +1,43 @@
|
|
|
1
|
-
import { _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl } from "@qwik.dev/core";
|
|
1
|
+
import { _capturesObj, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl } from "@qwik.dev/core";
|
|
2
2
|
var _hf0 = (p0) => p0.result.npmUrl;
|
|
3
|
+
var _hf0_str = "p0.result.npmUrl";
|
|
3
4
|
var _hf1 = (p0) => p0.result.name;
|
|
5
|
+
var _hf1_str = "p0.result.name";
|
|
4
6
|
var _hf2 = (p0) => p0.result.latestVersion;
|
|
7
|
+
var _hf2_str = "p0.result.latestVersion";
|
|
5
8
|
var _hf3 = (p0) => p0.result.installedVersion;
|
|
9
|
+
var _hf3_str = "p0.result.installedVersion";
|
|
6
10
|
var _hf4 = (p0) => p0.result.description || "No description available";
|
|
11
|
+
var _hf4_str = "p0.result.description||\"No description available\"";
|
|
7
12
|
var _hf5 = (p0, p1) => p1.result.isInstalled || p0;
|
|
13
|
+
var _hf5_str = "p1.result.isInstalled||p0";
|
|
8
14
|
var _hf6 = (p0, p1) => p1.result.isInstalled ? "Installed" : p0 ? "Installing..." : "Install";
|
|
15
|
+
var _hf6_str = "p1.result.isInstalled?\"Installed\":p0?\"Installing...\":\"Install\"";
|
|
9
16
|
var SearchResultCard = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((props) => {
|
|
10
17
|
const isInstalling = props.activeOperationKey === `install:${props.result.name}`;
|
|
11
18
|
return /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg rounded-xl border p-4" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "flex flex-col gap-3" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-start justify-between gap-3" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "min-w-0" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "flex flex-wrap items-center gap-2" }, [
|
|
12
|
-
/*#__PURE__*/ _jsxSorted("a", { href: _fnSignal(_hf0, [props]) }, {
|
|
19
|
+
/*#__PURE__*/ _jsxSorted("a", { href: _fnSignal(_hf0, [props], _hf0_str) }, {
|
|
13
20
|
target: "_blank",
|
|
14
21
|
class: "text-foreground hover:text-primary truncate text-sm font-semibold"
|
|
15
|
-
}, _fnSignal(_hf1, [props]), 1, null),
|
|
16
|
-
/*#__PURE__*/ _jsxSorted("span", null, { class: "bg-primary/10 text-primary rounded-md px-2 py-0.5 text-xs" }, ["v", _fnSignal(_hf2, [props])], 1, null),
|
|
17
|
-
props.result.isInstalled ? /*#__PURE__*/ _jsxSorted("span", null, { class: "rounded-md border border-emerald-500/20 bg-emerald-500/10 px-2 py-0.5 text-xs text-emerald-300" }, ["Installed ", _fnSignal(_hf3, [props])], 1, "
|
|
18
|
-
], 1, null), /*#__PURE__*/ _jsxSorted("p", null, { class: "text-muted-foreground mt-2 line-clamp-2 text-sm" }, _fnSignal(_hf4, [props]), 1, null)], 1, null), 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "flex flex-wrap items-center justify-between gap-3" }, [/*#__PURE__*/ _jsxSorted("select", {
|
|
19
|
-
disabled: _fnSignal(_hf5, [isInstalling, props]),
|
|
20
|
-
"q-e:change": /*#__PURE__*/ inlinedQrl((_, target, props) => props.onTypeChange$(props.result.name, target.value), "SearchResultCard_component_div_div_div_select_q_e_change_157XuaUcsW4").m(),
|
|
21
|
-
"q:p": props,
|
|
22
|
+
}, _fnSignal(_hf1, [props], _hf1_str), 1, null),
|
|
23
|
+
/*#__PURE__*/ _jsxSorted("span", null, { class: "bg-primary/10 text-primary rounded-md px-2 py-0.5 text-xs" }, ["v", _fnSignal(_hf2, [props], _hf2_str)], 1, null),
|
|
24
|
+
props.result.isInstalled ? /*#__PURE__*/ _jsxSorted("span", null, { class: "rounded-md border border-emerald-500/20 bg-emerald-500/10 px-2 py-0.5 text-xs text-emerald-300" }, ["Installed ", _fnSignal(_hf3, [props], _hf3_str)], 1, "04_0") : null
|
|
25
|
+
], 1, null), /*#__PURE__*/ _jsxSorted("p", null, { class: "text-muted-foreground mt-2 line-clamp-2 text-sm" }, _fnSignal(_hf4, [props], _hf4_str), 1, null)], 1, null), 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "flex flex-wrap items-center justify-between gap-3" }, [/*#__PURE__*/ _jsxSorted("select", {
|
|
26
|
+
disabled: _fnSignal(_hf5, [isInstalling, props], _hf5_str),
|
|
22
27
|
value: _wrapProp(props, "selectedType")
|
|
23
|
-
}, { class: "border-border bg-background/60 rounded-lg border px-2 py-1.5 text-xs" }, [/*#__PURE__*/ _jsxSorted("option", null, { value: "devDependencies" }, "devDependencies", 3, null), /*#__PURE__*/ _jsxSorted("option", null, { value: "dependencies" }, "dependencies", 3, null)], 6, null), /*#__PURE__*/ _jsxSorted("button", {
|
|
24
|
-
disabled: _fnSignal(_hf5, [isInstalling, props]),
|
|
25
|
-
"q-e:click": /*#__PURE__*/ inlinedQrl((_, _1, props) => props.onInstall$(props.result.name, props.selectedType), "SearchResultCard_component_div_div_div_button_q_e_click_0DlfMgOZNRQ").m(),
|
|
26
|
-
"q:p": props
|
|
27
28
|
}, {
|
|
29
|
+
"q-e:change": /*#__PURE__*/ inlinedQrl((_, target) => {
|
|
30
|
+
let props = _capturesObj._[0];
|
|
31
|
+
return props.onTypeChange$(props.result.name, target.value);
|
|
32
|
+
}, "SearchResultCard_component_div_div_div_select_q_e_change_157XuaUcsW4", [props]),
|
|
33
|
+
class: "border-border bg-background/60 rounded-lg border px-2 py-1.5 text-xs"
|
|
34
|
+
}, [/*#__PURE__*/ _jsxSorted("option", null, { value: "devDependencies" }, "devDependencies", 3, null), /*#__PURE__*/ _jsxSorted("option", null, { value: "dependencies" }, "dependencies", 3, null)], 3, null), /*#__PURE__*/ _jsxSorted("button", { disabled: _fnSignal(_hf5, [isInstalling, props], _hf5_str) }, {
|
|
28
35
|
type: "button",
|
|
36
|
+
"q-e:click": /*#__PURE__*/ inlinedQrl(() => {
|
|
37
|
+
let props = _capturesObj._[0];
|
|
38
|
+
return props.onInstall$(props.result.name, props.selectedType);
|
|
39
|
+
}, "SearchResultCard_component_div_div_div_button_q_e_click_0DlfMgOZNRQ", [props]),
|
|
29
40
|
class: "bg-primary/10 hover:bg-primary/20 text-primary rounded-lg px-3 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50"
|
|
30
|
-
}, _fnSignal(_hf6, [isInstalling, props]),
|
|
41
|
+
}, _fnSignal(_hf6, [isInstalling, props], _hf6_str), 1, null)], 1, null)], 1, null), 1, "04_1");
|
|
31
42
|
}, "SearchResultCard_component_3Z58OZETbL0"));
|
|
32
43
|
export { SearchResultCard };
|
|
@@ -3,24 +3,28 @@ import { computePerfViewModel } from "./computePerfViewModel.qwik.mjs";
|
|
|
3
3
|
import { ComponentCard } from "./components/ComponentCard.qwik.mjs";
|
|
4
4
|
import { HookDetailsPanel } from "./components/HookDetailsPanel.qwik.mjs";
|
|
5
5
|
import { PerformanceOverview } from "./components/PerformanceOverview.qwik.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { _capturesObj, _fnSignal, _jsxSorted, _wrapProp, componentQrl, inlinedQrl, useComputedQrl, useSignal, useTaskQrl, useVisibleTaskQrl } from "@qwik.dev/core";
|
|
7
7
|
var _hf0 = (p0) => p0.value.overview;
|
|
8
|
+
var _hf0_str = "p0.value.overview";
|
|
8
9
|
var _hf1 = (p0) => p0.value.components.length;
|
|
10
|
+
var _hf1_str = "p0.value.components.length";
|
|
9
11
|
var _hf2 = (p0, p1) => p1.value === p0.componentName;
|
|
12
|
+
var _hf2_str = "p1.value===p0.componentName";
|
|
10
13
|
var _hf3 = (p0) => p0.value.length;
|
|
14
|
+
var _hf3_str = "p0.value.length";
|
|
11
15
|
var Performance = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => {
|
|
12
16
|
const perf = useSignal(null);
|
|
13
17
|
const selectedComponent = useSignal(null);
|
|
14
18
|
const renderEvents = useSignal([]);
|
|
15
19
|
useTaskQrl(/*#__PURE__*/ inlinedQrl(async () => {
|
|
16
|
-
|
|
20
|
+
let perf = _capturesObj._[0];
|
|
17
21
|
perf.value = await getPageDataSource().readPerfData() ?? {
|
|
18
22
|
ssr: [],
|
|
19
23
|
csr: []
|
|
20
24
|
};
|
|
21
25
|
}, "Performance_component_useTask_WHiyTVV6c8g", [perf]));
|
|
22
26
|
useVisibleTaskQrl(/*#__PURE__*/ inlinedQrl(async ({ cleanup }) => {
|
|
23
|
-
|
|
27
|
+
let renderEvents = _capturesObj._[0];
|
|
24
28
|
const source = getPageDataSource();
|
|
25
29
|
const data = await source.readPerfData();
|
|
26
30
|
const all = [...data?.ssr || [], ...data?.csr || []];
|
|
@@ -36,29 +40,29 @@ var Performance = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps
|
|
|
36
40
|
if (unsub) cleanup(unsub);
|
|
37
41
|
}, "Performance_component_useVisibleTask_jEYvQu47TE8", [renderEvents]));
|
|
38
42
|
const vm = useComputedQrl(/*#__PURE__*/ inlinedQrl(() => {
|
|
39
|
-
|
|
43
|
+
let perf = _capturesObj._[0];
|
|
40
44
|
return computePerfViewModel(perf.value);
|
|
41
45
|
}, "Performance_component_vm_useComputed_go9mqCd7Rk0", [perf]));
|
|
42
46
|
const selectedVm = useComputedQrl(/*#__PURE__*/ inlinedQrl(() => {
|
|
43
|
-
|
|
47
|
+
let selectedComponent = _capturesObj._[0], vm = _capturesObj._[1];
|
|
44
48
|
const name = selectedComponent.value;
|
|
45
49
|
if (!name) return null;
|
|
46
50
|
return vm.value.components.find((c) => c.componentName === name) ?? null;
|
|
47
51
|
}, "Performance_component_selectedVm_useComputed_9gMJskA6xTk", [selectedComponent, vm]));
|
|
48
52
|
const onSelect = /*#__PURE__*/ inlinedQrl((name) => {
|
|
49
|
-
|
|
53
|
+
let selectedComponent = _capturesObj._[0];
|
|
50
54
|
selectedComponent.value = name;
|
|
51
55
|
}, "Performance_component_onSelect_iR9qDY0SnqQ", [selectedComponent]);
|
|
52
56
|
const clearSelect = /*#__PURE__*/ inlinedQrl(() => {
|
|
53
|
-
|
|
57
|
+
let selectedComponent = _capturesObj._[0];
|
|
54
58
|
selectedComponent.value = null;
|
|
55
59
|
}, "Performance_component_clearSelect_r3DeYHRX6Wc", [selectedComponent]);
|
|
56
60
|
const clearRenderEvents = /*#__PURE__*/ inlinedQrl(() => {
|
|
57
|
-
|
|
61
|
+
let renderEvents = _capturesObj._[0];
|
|
58
62
|
renderEvents.value = [];
|
|
59
63
|
}, "Performance_component_clearRenderEvents_HK009X9J0PU", [renderEvents]);
|
|
60
64
|
useTaskQrl(/*#__PURE__*/ inlinedQrl(({ track }) => {
|
|
61
|
-
|
|
65
|
+
let _rawProps = _capturesObj._[0], renderEvents = _capturesObj._[1], selectedComponent = _capturesObj._[2];
|
|
62
66
|
if (!track(() => _rawProps.state.clearPerformanceRequested)) return;
|
|
63
67
|
renderEvents.value = [];
|
|
64
68
|
selectedComponent.value = null;
|
|
@@ -70,32 +74,32 @@ var Performance = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps
|
|
|
70
74
|
]));
|
|
71
75
|
const hasData = (perf.value?.ssr?.length ?? 0) > 0 || (perf.value?.csr?.length ?? 0) > 0;
|
|
72
76
|
const hasRenderEvents = renderEvents.value.length > 0;
|
|
73
|
-
if (!hasData && !hasRenderEvents) return /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full w-full flex-1 overflow-hidden" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "border-border bg-card-item-bg flex h-full items-center justify-center rounded-xl border p-8" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-center text-sm" }, ["No performance data found.", /*#__PURE__*/ _jsxSorted("div", null, { class: "mt-1 text-xs" }, "Ensure instrumentation is enabled and interact with the app, then reopen this tab.", 3, null)], 3, null), 3, null), 3, "
|
|
77
|
+
if (!hasData && !hasRenderEvents) return /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full w-full flex-1 overflow-hidden" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "border-border bg-card-item-bg flex h-full items-center justify-center rounded-xl border p-8" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-center text-sm" }, ["No performance data found.", /*#__PURE__*/ _jsxSorted("div", null, { class: "mt-1 text-xs" }, "Ensure instrumentation is enabled and interact with the app, then reopen this tab.", 3, null)], 3, null), 3, null), 3, "nz_0");
|
|
74
78
|
return /*#__PURE__*/ _jsxSorted("div", null, { class: "h-full w-full flex-1 overflow-y-auto" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "flex min-h-0 flex-col gap-4" }, [
|
|
75
|
-
hasData && /*#__PURE__*/ _jsxSorted(PerformanceOverview, null, { overview: _fnSignal(_hf0, [vm]) }, null, 3, "
|
|
79
|
+
hasData && /*#__PURE__*/ _jsxSorted(PerformanceOverview, null, { overview: _fnSignal(_hf0, [vm], _hf0_str) }, null, 3, "nz_1"),
|
|
76
80
|
hasData && /*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg flex min-h-0 overflow-hidden rounded-2xl border" }, [
|
|
77
81
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "min-h-0 flex-1 overflow-y-auto p-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "mb-3 flex items-center justify-between" }, /*#__PURE__*/ _jsxSorted("div", null, null, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-lg font-semibold" }, "Components", 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-xs" }, [
|
|
78
82
|
"CSR only • ",
|
|
79
|
-
_fnSignal(_hf1, [vm]),
|
|
83
|
+
_fnSignal(_hf1, [vm], _hf1_str),
|
|
80
84
|
" total"
|
|
81
85
|
], 3, null)], 3, null), 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "grid grid-cols-1 gap-4 md:grid-cols-2" }, vm.value.components.map((c) => /*#__PURE__*/ _jsxSorted(ComponentCard, {
|
|
82
86
|
component: c,
|
|
83
87
|
onClick$: /*#__PURE__*/ inlinedQrl(() => {
|
|
84
|
-
|
|
88
|
+
let c = _capturesObj._[0], onSelect = _capturesObj._[1];
|
|
85
89
|
return onSelect(c.componentName);
|
|
86
90
|
}, "Performance_component_div_div_div_div_div_ComponentCard_onClick_oHPGixzaMYc", [c, onSelect]),
|
|
87
|
-
selected: _fnSignal(_hf2, [c, selectedComponent])
|
|
91
|
+
selected: _fnSignal(_hf2, [c, selectedComponent], _hf2_str)
|
|
88
92
|
}, null, null, 2, c.componentName)), 1, null)], 1, null),
|
|
89
93
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border border-l" }, null, 3, null),
|
|
90
94
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "flex w-[420px] min-w-[320px] flex-col overflow-hidden" }, selectedVm.value ? /*#__PURE__*/ _jsxSorted(HookDetailsPanel, null, {
|
|
91
95
|
component: _wrapProp(selectedVm),
|
|
92
96
|
onClose$: clearSelect
|
|
93
|
-
}, null, 3, "
|
|
94
|
-
], 1, "
|
|
95
|
-
/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg rounded-2xl border p-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "mb-3 flex items-center justify-between" }, [/*#__PURE__*/ _jsxSorted("div", null, null, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-lg font-semibold" }, "Live Renders", 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-xs" }, [_fnSignal(_hf3, [renderEvents]), " events captured"], 3, null)], 3, null), hasRenderEvents && /*#__PURE__*/ _jsxSorted("button", null, {
|
|
97
|
+
}, null, 3, "nz_2") : /*#__PURE__*/ _jsxSorted("div", null, { class: "flex h-full items-center justify-center p-8" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-center text-sm" }, "Select a component to view hook details.", 3, null), 3, "nz_3"), 1, null)
|
|
98
|
+
], 1, "nz_4"),
|
|
99
|
+
/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border bg-card-item-bg rounded-2xl border p-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "mb-3 flex items-center justify-between" }, [/*#__PURE__*/ _jsxSorted("div", null, null, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-lg font-semibold" }, "Live Renders", 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-xs" }, [_fnSignal(_hf3, [renderEvents], _hf3_str), " events captured"], 3, null)], 3, null), hasRenderEvents && /*#__PURE__*/ _jsxSorted("button", null, {
|
|
96
100
|
class: "text-muted-foreground hover:text-foreground rounded px-2 py-1 text-xs transition-colors",
|
|
97
101
|
"q-e:click": clearRenderEvents
|
|
98
|
-
}, "Clear", 3, "
|
|
102
|
+
}, "Clear", 3, "nz_5")], 1, null), !hasRenderEvents ? /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground py-6 text-center text-sm" }, "No renders captured yet. Interact with the app to trigger component renders.", 3, "nz_6") : /*#__PURE__*/ _jsxSorted("div", null, { class: "max-h-[400px] overflow-y-auto" }, /*#__PURE__*/ _jsxSorted("table", null, { class: "w-full text-sm" }, [/*#__PURE__*/ _jsxSorted("thead", null, null, /*#__PURE__*/ _jsxSorted("tr", null, { class: "text-muted-foreground border-glass-border border-b text-left text-xs" }, [
|
|
99
103
|
/*#__PURE__*/ _jsxSorted("th", null, { class: "py-1.5 pr-3 font-medium" }, "Time", 3, null),
|
|
100
104
|
/*#__PURE__*/ _jsxSorted("th", null, { class: "py-1.5 pr-3 font-medium" }, "Component", 3, null),
|
|
101
105
|
/*#__PURE__*/ _jsxSorted("th", null, { class: "py-1.5 pr-3 text-right font-medium" }, "Duration", 3, null),
|
|
@@ -105,7 +109,7 @@ var Performance = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps
|
|
|
105
109
|
/*#__PURE__*/ _jsxSorted("td", null, { class: "text-primary/80 py-1.5 pr-3 font-mono" }, _wrapProp(evt, "component"), 1, null),
|
|
106
110
|
/*#__PURE__*/ _jsxSorted("td", null, { class: "py-1.5 pr-3 text-right font-mono" }, evt.duration > 0 ? `${evt.duration.toFixed(1)}ms` : "-", 1, null),
|
|
107
111
|
/*#__PURE__*/ _jsxSorted("td", null, { class: "py-1.5" }, /*#__PURE__*/ _jsxSorted("span", { class: ["rounded-full px-2 py-0.5 text-xs font-medium", evt.phase === "ssr" ? "bg-blue-500/10 text-blue-400" : "bg-green-500/10 text-green-400"].join(" ") }, null, _wrapProp(evt, "phase"), 1, null), 1, null)
|
|
108
|
-
], 1, i)), 1, null)], 1, null), 1, "
|
|
109
|
-
], 1, null), 1, "
|
|
112
|
+
], 1, i)), 1, null)], 1, null), 1, "nz_7")], 1, null)
|
|
113
|
+
], 1, null), 1, "nz_8");
|
|
110
114
|
}, "Performance_component_srUJ38wM5RE"));
|
|
111
115
|
export { Performance };
|
package/dist/ui/packages/devtools/ui/src/features/Performance/components/ComponentCard.qwik.mjs
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { formatMs } from "../utils/formatMs.qwik.mjs";
|
|
2
2
|
import { _fnSignal, _jsxSorted, componentQrl, inlinedQrl } from "@qwik.dev/core";
|
|
3
3
|
var _hf0 = (p0) => p0.component.componentName;
|
|
4
|
+
var _hf0_str = "p0.component.componentName";
|
|
4
5
|
var _hf1 = (p0) => typeof p0.component.ssr?.ssrCount === "number" ? p0.component.ssr.ssrCount : "-";
|
|
6
|
+
var _hf1_str = "typeof p0.component.ssr?.ssrCount===\"number\"?p0.component.ssr.ssrCount:\"-\"";
|
|
5
7
|
var ComponentCard = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => {
|
|
6
8
|
return /*#__PURE__*/ _jsxSorted("button", {
|
|
7
9
|
class: ["border-border bg-card-item-bg hover:bg-card-item-hover-bg w-full rounded-xl border p-4 text-left transition-all duration-200 hover:-translate-y-0.5", _rawProps.selected ? "ring-primary-active ring-2" : ""].join(" "),
|
|
8
10
|
"q-e:click": _rawProps.onClick$
|
|
9
|
-
}, null, /*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-start justify-between gap-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "min-w-0 flex-1" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "truncate text-base font-semibold" }, _fnSignal(_hf0, [_rawProps]), 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground mt-1 text-xs" }, ["Avg: ", formatMs(_rawProps.component.avgTime)], 1, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "shrink-0 text-right" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-primary text-lg font-semibold" }, formatMs(_rawProps.component.totalTime), 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-xs" }, ["SSR: ", _fnSignal(_hf1, [_rawProps])], 1, null)], 1, null)], 1, null), 0, _rawProps.component.componentName);
|
|
11
|
+
}, null, /*#__PURE__*/ _jsxSorted("div", null, { class: "flex items-start justify-between gap-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "min-w-0 flex-1" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "truncate text-base font-semibold" }, _fnSignal(_hf0, [_rawProps], _hf0_str), 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground mt-1 text-xs" }, ["Avg: ", formatMs(_rawProps.component.avgTime)], 1, null)], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "shrink-0 text-right" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "text-primary text-lg font-semibold" }, formatMs(_rawProps.component.totalTime), 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-xs" }, ["SSR: ", _fnSignal(_hf1, [_rawProps], _hf1_str)], 1, null)], 1, null)], 1, null), 0, _rawProps.component.componentName);
|
|
10
12
|
}, "ComponentCard_component_n3qw8GM0NvQ"));
|
|
11
13
|
export { ComponentCard };
|
package/dist/ui/packages/devtools/ui/src/features/Performance/components/HookDetailsPanel.qwik.mjs
CHANGED
|
@@ -3,21 +3,25 @@ import { formatMs } from "../utils/formatMs.qwik.mjs";
|
|
|
3
3
|
import { _fnSignal, _jsxSorted, componentQrl, inlinedQrl } from "@qwik.dev/core";
|
|
4
4
|
import { Fragment } from "@qwik.dev/core/jsx-runtime";
|
|
5
5
|
var _hf0 = (p0) => p0.row.eventName;
|
|
6
|
+
var _hf0_str = "p0.row.eventName";
|
|
6
7
|
var _hf1 = (p0) => p0.row.calls;
|
|
8
|
+
var _hf1_str = "p0.row.calls";
|
|
7
9
|
var _hf2 = (p0) => p0.component.componentName;
|
|
10
|
+
var _hf2_str = "p0.component.componentName";
|
|
8
11
|
var _hf3 = (p0) => p0.component.calls;
|
|
12
|
+
var _hf3_str = "p0.component.calls";
|
|
9
13
|
var HookRow = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => /*#__PURE__*/ _jsxSorted("div", null, { class: "grid grid-cols-3 px-3 py-2 text-sm" }, [
|
|
10
|
-
/*#__PURE__*/ _jsxSorted("div", null, { class: "truncate" }, _fnSignal(_hf0, [_rawProps]), 1, null),
|
|
14
|
+
/*#__PURE__*/ _jsxSorted("div", null, { class: "truncate" }, _fnSignal(_hf0, [_rawProps], _hf0_str), 1, null),
|
|
11
15
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-right" }, formatMs(_rawProps.row.time), 1, null),
|
|
12
|
-
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-right" }, _fnSignal(_hf1, [_rawProps]), 1, null)
|
|
13
|
-
], 1, "
|
|
16
|
+
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-right" }, _fnSignal(_hf1, [_rawProps], _hf1_str), 1, null)
|
|
17
|
+
], 1, "M3_0"), "HookRow_component_lEGVvl0yq4c"));
|
|
14
18
|
var HookDetailsPanel = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => {
|
|
15
19
|
const rows = computeEventRows(_rawProps.component.csrItems);
|
|
16
|
-
return /*#__PURE__*/ _jsxSorted(Fragment, null, null, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "min-w-0" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "truncate text-base font-semibold" }, [_fnSignal(_hf2, [_rawProps]), " Hook Details"], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground mt-1 text-xs" }, [
|
|
20
|
+
return /*#__PURE__*/ _jsxSorted(Fragment, null, null, [/*#__PURE__*/ _jsxSorted("div", null, { class: "border-glass-border flex items-center justify-between border-b p-4" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "min-w-0" }, [/*#__PURE__*/ _jsxSorted("div", null, { class: "truncate text-base font-semibold" }, [_fnSignal(_hf2, [_rawProps], _hf2_str), " Hook Details"], 1, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground mt-1 text-xs" }, [
|
|
17
21
|
"Total: ",
|
|
18
22
|
formatMs(_rawProps.component.totalTime),
|
|
19
23
|
" • ",
|
|
20
|
-
_fnSignal(_hf3, [_rawProps]),
|
|
24
|
+
_fnSignal(_hf3, [_rawProps], _hf3_str),
|
|
21
25
|
" calls"
|
|
22
26
|
], 1, null)], 1, null), /*#__PURE__*/ _jsxSorted("button", { "q-e:click": _rawProps.onClose$ }, {
|
|
23
27
|
"aria-label": "close",
|
|
@@ -26,6 +30,6 @@ var HookDetailsPanel = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_raw
|
|
|
26
30
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground" }, "HOOK NAME", 3, null),
|
|
27
31
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-right" }, "TIME", 3, null),
|
|
28
32
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-right" }, "CALLS", 3, null)
|
|
29
|
-
], 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "divide-glass-border divide-y" }, [rows.map((row) => /*#__PURE__*/ _jsxSorted(HookRow, { row }, null, null, 3, row.eventName)), rows.length === 0 && /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground px-3 py-4 text-center text-sm" }, "No CSR records for this component.", 3, "
|
|
33
|
+
], 3, null), /*#__PURE__*/ _jsxSorted("div", null, { class: "divide-glass-border divide-y" }, [rows.map((row) => /*#__PURE__*/ _jsxSorted(HookRow, { row }, null, null, 3, row.eventName)), rows.length === 0 && /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground px-3 py-4 text-center text-sm" }, "No CSR records for this component.", 3, "M3_1")], 1, null)], 1, null), 1, null)], 1, "M3_2");
|
|
30
34
|
}, "HookDetailsPanel_component_8uC9a2UU5yo"));
|
|
31
35
|
export { HookDetailsPanel };
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { formatMs } from "../utils/formatMs.qwik.mjs";
|
|
2
2
|
import { StatCard } from "./StatCard.qwik.mjs";
|
|
3
3
|
import { _fnSignal, _jsxSorted, componentQrl, inlinedQrl } from "@qwik.dev/core";
|
|
4
|
-
var _hf0 = (p0) => p0
|
|
4
|
+
var _hf0 = (p0) => p0?.componentName || "-";
|
|
5
|
+
var _hf0_str = "p0?.componentName||\"-\"";
|
|
5
6
|
var PerformanceOverview = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) => {
|
|
7
|
+
const slowestComponent = _rawProps.overview.slowestComponent;
|
|
6
8
|
return /*#__PURE__*/ _jsxSorted("div", null, { class: "grid grid-cols-1 gap-5 md:grid-cols-4" }, [
|
|
7
|
-
/*#__PURE__*/ _jsxSorted(StatCard, { value: formatMs(_rawProps.overview.totalRenderTime) }, { label: "TOTAL RENDER TIME" }, null, 3, "
|
|
8
|
-
/*#__PURE__*/ _jsxSorted(StatCard, {
|
|
9
|
-
|
|
10
|
-
value: _fnSignal(_hf0, [
|
|
11
|
-
}, null, 3, "
|
|
12
|
-
/*#__PURE__*/ _jsxSorted(StatCard, { value: formatMs(_rawProps.overview.avgTime) }, { label: "AVG TIME" }, null, 3, "
|
|
13
|
-
/*#__PURE__*/ _jsxSorted(StatCard, { value: String(_rawProps.overview.totalCalls) }, { label: "TOTAL CALLS" }, null, 3, "
|
|
14
|
-
], 1, "
|
|
9
|
+
/*#__PURE__*/ _jsxSorted(StatCard, { value: formatMs(_rawProps.overview.totalRenderTime) }, { label: "TOTAL RENDER TIME" }, null, 3, "XE_0"),
|
|
10
|
+
/*#__PURE__*/ _jsxSorted(StatCard, {
|
|
11
|
+
subtitle: slowestComponent ? `${formatMs(slowestComponent.avgTime)} avg` : "-",
|
|
12
|
+
value: _fnSignal(_hf0, [slowestComponent], _hf0_str)
|
|
13
|
+
}, { label: "SLOWEST COMPONENT" }, null, 3, "XE_1"),
|
|
14
|
+
/*#__PURE__*/ _jsxSorted(StatCard, { value: formatMs(_rawProps.overview.avgTime) }, { label: "AVG TIME" }, null, 3, "XE_2"),
|
|
15
|
+
/*#__PURE__*/ _jsxSorted(StatCard, { value: String(_rawProps.overview.totalCalls) }, { label: "TOTAL CALLS" }, null, 3, "XE_3")
|
|
16
|
+
], 1, "XE_4");
|
|
15
17
|
}, "PerformanceOverview_component_TcuA6nX9GNo"));
|
|
16
18
|
export { PerformanceOverview };
|
|
@@ -3,7 +3,7 @@ var StatCard = /*#__PURE__*/ componentQrl(/*#__PURE__*/ inlinedQrl((_rawProps) =
|
|
|
3
3
|
return /*#__PURE__*/ _jsxSorted("div", null, { class: "border-border bg-card-item-bg hover:bg-card-item-hover-bg flex items-center gap-4 rounded-xl border p-5 transition-all duration-200" }, /*#__PURE__*/ _jsxSorted("div", null, { class: "flex-1" }, [
|
|
4
4
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground text-xs font-medium" }, _wrapProp(_rawProps, "label"), 1, null),
|
|
5
5
|
/*#__PURE__*/ _jsxSorted("div", null, { class: "mt-1 text-3xl font-semibold" }, _wrapProp(_rawProps), 1, null),
|
|
6
|
-
_rawProps.subtitle && /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground mt-1 text-xs" }, _wrapProp(_rawProps, "subtitle"), 1, "
|
|
7
|
-
], 1, null), 1, "
|
|
6
|
+
_rawProps.subtitle && /*#__PURE__*/ _jsxSorted("div", null, { class: "text-muted-foreground mt-1 text-xs" }, _wrapProp(_rawProps, "subtitle"), 1, "J2_0")
|
|
7
|
+
], 1, null), 1, "J2_1");
|
|
8
8
|
}, "StatCard_component_Uisqt5fvHhk"));
|
|
9
9
|
export { StatCard };
|
|
@@ -37,7 +37,8 @@ function computeComponentVmFromCsr(componentName, csrItems, ssr) {
|
|
|
37
37
|
csrItems
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
/** Build component view-models when SSR entries are available. */
|
|
40
|
+
/** Build component view-models when SSR entries are available. */
|
|
41
|
+
function groupComponentsBySsr(safe) {
|
|
41
42
|
const grouped = groupCsrBySsr(safe);
|
|
42
43
|
const result = [];
|
|
43
44
|
for (const raw of safe.ssr) {
|
|
@@ -51,7 +52,8 @@ function computeComponentVmFromCsr(componentName, csrItems, ssr) {
|
|
|
51
52
|
}
|
|
52
53
|
return result;
|
|
53
54
|
}
|
|
54
|
-
/** Build component view-models from CSR-only data, grouped by component name. */
|
|
55
|
+
/** Build component view-models from CSR-only data, grouped by component name. */
|
|
56
|
+
function groupComponentsByName(csrRaw) {
|
|
55
57
|
const byName = /* @__PURE__ */ new Map();
|
|
56
58
|
for (const entry of csrRaw) {
|
|
57
59
|
const csrItem = {
|