@plitzi/sdk-dev-tools 0.33.1 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/DevToolsContainer.mjs +50 -45
  3. package/dist/DevToolsContextProvider.mjs +1 -1
  4. package/dist/components/DevToolsIndicator/DevToolsIndicator.mjs +1 -1
  5. package/dist/components/DevToolsPanel/DevToolsBody.mjs +32 -30
  6. package/dist/components/DevToolsPanel/DevToolsHeader.mjs +40 -34
  7. package/dist/components/DevToolsPanel/DevToolsPanel.mjs +13 -13
  8. package/dist/components/DevToolsPanel/ThemeControl.d.ts +2 -0
  9. package/dist/components/DevToolsPanel/ThemeControl.mjs +27 -0
  10. package/dist/components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer.d.ts +3 -0
  11. package/dist/components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer.mjs +147 -0
  12. package/dist/components/DevToolsPanel/tabs/ActionsViewer/index.d.ts +3 -0
  13. package/dist/components/DevToolsPanel/tabs/ActionsViewer/index.mjs +5 -0
  14. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsList.mjs +23 -16
  15. package/dist/components/DevToolsPanel/tabs/HistoryViewer/HistoryViewer.mjs +9 -9
  16. package/dist/components/DevToolsPanel/tabs/Logs/Log.mjs +30 -24
  17. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/LogAction.d.ts +11 -0
  18. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/LogAction.mjs +42 -0
  19. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/index.d.ts +3 -0
  20. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/index.mjs +5 -0
  21. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyContent.d.ts +3 -3
  22. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyHeader.d.ts +2 -2
  23. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyHeader.mjs +1 -1
  24. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/ExecutionTree/ExecutionTree.d.ts +2 -2
  25. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteraction.d.ts +7 -2
  26. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteraction.mjs +41 -24
  27. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionBody.d.ts +5 -5
  28. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionBody.mjs +2 -2
  29. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionNote.d.ts +17 -0
  30. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionNote.mjs +72 -0
  31. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginDetails.d.ts +10 -3
  32. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginDetails.mjs +27 -8
  33. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginsViewer.d.ts +1 -0
  34. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginsViewer.mjs +37 -22
  35. package/dist/components/DevToolsPanel/tabs/StoreViewer/StoreViewer.mjs +27 -26
  36. package/dist/components/DevToolsPanel/tabs/TracingViewer/TracingViewer.mjs +34 -34
  37. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/FlameFrame.mjs +3 -2
  38. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/Flamegraph.mjs +48 -35
  39. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/HotspotsList/HotspotsList.mjs +32 -32
  40. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/RankedList/RankedList.mjs +40 -40
  41. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/SidebarShell/SidebarShell.mjs +7 -7
  42. package/dist/components/DevToolsPanel/tabs/TracingViewer/helpers.d.ts +26 -1
  43. package/dist/components/DevToolsPanel/tabs/TracingViewer/helpers.mjs +106 -84
  44. package/dist/components/List/List.mjs +1 -1
  45. package/dist/useHydrated.d.ts +2 -0
  46. package/dist/useHydrated.mjs +5 -0
  47. package/dist/useRegisterRootStore.d.ts +11 -0
  48. package/dist/useRegisterRootStore.mjs +13 -0
  49. package/package.json +57 -11
@@ -4,43 +4,58 @@ import n from "clsx";
4
4
  import { use as r, useCallback as i, useMemo as a, useState as o } from "react";
5
5
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
6
  import l from "@plitzi/sdk-plugins/PluginsContext";
7
+ import u from "@plitzi/sdk-shared/elements/ComponentContext";
7
8
  //#region src/components/DevToolsPanel/tabs/PluginsViewer/PluginsViewer.tsx
8
- var u = ({ className: u }) => {
9
- let { plugins: d } = r(l), f = a(() => Object.keys(d).map((e) => {
10
- let t = d[e];
11
- return {
12
- ...t,
13
- id: e,
14
- name: e,
9
+ var d = {
10
+ "local-custom": "Shipped with this space",
11
+ remote: "Installed"
12
+ }, f = ({ className: f }) => {
13
+ let { plugins: p } = r(l), { components: m } = r(u), h = a(() => {
14
+ let e = /* @__PURE__ */ new Map();
15
+ return Object.entries(m.current).forEach(([t, n]) => {
16
+ let { origin: r } = n;
17
+ (r === "local-custom" || r === "remote") && e.set(t, {
18
+ type: t,
19
+ origin: r,
20
+ version: n.version
21
+ });
22
+ }), Object.entries(p).forEach(([t, n]) => {
23
+ let r = e.get(t), { manifest: i } = n;
24
+ e.set(t, {
25
+ type: t,
26
+ origin: r?.origin ?? "remote",
27
+ version: i.version || r?.version,
28
+ author: i.author,
29
+ settings: n.settings
30
+ });
31
+ }), [...e.values()].map((e) => ({
32
+ ...e,
33
+ id: e.type,
34
+ name: e.type,
15
35
  label: /* @__PURE__ */ c("div", {
16
36
  className: "flex flex-col gap-0.5",
17
37
  children: [/* @__PURE__ */ s("span", {
18
38
  className: "capitalize",
19
- children: e
39
+ children: e.type
20
40
  }), /* @__PURE__ */ s("span", {
21
41
  className: "text-[10px] text-zinc-400 dark:text-zinc-500",
22
- children: t.manifest.version
42
+ children: e.version ?? d[e.origin]
23
43
  })]
24
44
  })
25
- };
26
- }), [d]), [p, m] = o(), h = i((e) => m(e), []);
45
+ }));
46
+ }, [p, m.current]), [g, _] = o(), v = i((e) => _(e), []);
27
47
  return /* @__PURE__ */ c("div", {
28
- className: n("flex h-full w-full", u),
48
+ className: n("flex h-full w-full", f),
29
49
  children: [/* @__PURE__ */ s(t, {
30
50
  className: "w-[240px]",
31
- items: f,
32
- value: p,
33
- onSelect: h
34
- }), p ? /* @__PURE__ */ s(e, {
35
- label: p.name,
36
- version: p.manifest.version,
37
- author: p.manifest.author,
38
- settings: p.settings
39
- }) : /* @__PURE__ */ c("div", {
51
+ items: h,
52
+ value: g,
53
+ onSelect: v
54
+ }), g ? /* @__PURE__ */ s(e, { entry: g }) : /* @__PURE__ */ c("div", {
40
55
  className: "flex grow flex-col items-center justify-center gap-2 text-zinc-400 dark:text-zinc-600",
41
56
  children: [/* @__PURE__ */ s("i", { className: "fa-solid fa-puzzle-piece text-2xl opacity-30" }), /* @__PURE__ */ s("span", { children: "Select a plugin" })]
42
57
  })]
43
58
  });
44
59
  };
45
60
  //#endregion
46
- export { u as default };
61
+ export { f as default };
@@ -2,57 +2,58 @@ import e from "./helpers/mapFunctionValues.mjs";
2
2
  import t from "./helpers/renderFunctionValue.mjs";
3
3
  import { useSelectedStore as n } from "../../../../scope/useScope.mjs";
4
4
  import r from "../../../../scope/useStoreState.mjs";
5
- import i from "clsx";
6
- import { use as a, useCallback as o, useMemo as s } from "react";
7
- import c from "@plitzi/sdk-shared/devTools/DevToolsContext";
8
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
- import d from "@plitzi/plitzi-ui/hooks/useStorage";
10
- import f from "@uiw/react-json-view";
11
- import * as p from "@uiw/react-json-view/vscode";
12
- import { emptyObject as m } from "@plitzi/sdk-shared/helpers/utils";
5
+ import i from "@plitzi/plitzi-ui/hooks/useStorage";
6
+ import a from "clsx";
7
+ import { use as o, useCallback as s, useMemo as c } from "react";
8
+ import l from "@plitzi/sdk-shared/theme/useTheme";
9
+ import u from "@plitzi/sdk-shared/devTools/DevToolsContext";
10
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
11
+ import p from "@uiw/react-json-view";
12
+ import * as m from "@uiw/react-json-view/vscode";
13
+ import { emptyObject as h } from "@plitzi/sdk-shared/helpers/utils";
13
14
  //#region src/components/DevToolsPanel/tabs/StoreViewer/StoreViewer.tsx
14
- var h = {
15
- ...p.vscodeTheme,
15
+ var g = {
16
+ ...m.vscodeTheme,
16
17
  width: "100%",
17
18
  height: "100%",
18
19
  overflow: "auto",
19
20
  padding: "8px",
20
21
  fontSize: "14px"
21
- }, g = (e) => i("cursor-pointer rounded px-2 py-0.5 font-medium transition-colors", e ? "bg-violet-500/15 text-violet-600 dark:text-violet-300" : "text-zinc-500 hover:bg-zinc-200/70 hover:text-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700/50 dark:hover:text-zinc-100"), _ = ({ elementSelected: i }) => {
22
- let { getData: p } = a(c), _ = n(), [v, y] = d("plitzi-sdk.dev-tools.store.view", "own"), b = r(i ? void 0 : _, v === "merged"), x = o(() => y("own"), [y]), S = o(() => y("merged"), [y]), C = i ? p?.(`getElementDataSource-${i}`) : b, w = s(() => e(C), [C]);
23
- return /* @__PURE__ */ u("div", {
22
+ }, _ = (e) => a("cursor-pointer rounded px-2 py-0.5 font-medium transition-colors", e ? "bg-violet-500/15 text-violet-600 dark:text-violet-300" : "text-zinc-500 hover:bg-zinc-200/70 hover:text-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-700/50 dark:hover:text-zinc-100"), v = ({ elementSelected: a }) => {
23
+ let { resolvedTheme: m } = l(), { getData: v } = o(u), y = n(), [b, x] = i("plitzi-sdk.dev-tools.store.view", "own"), S = r(a ? void 0 : y, b === "merged"), C = s(() => x("own"), [x]), w = s(() => x("merged"), [x]), T = a ? v?.(`getElementDataSource-${a}`) : S, E = c(() => e(T), [T]);
24
+ return /* @__PURE__ */ f("div", {
24
25
  className: "flex h-full w-full flex-col",
25
- children: [!i && /* @__PURE__ */ u("div", {
26
+ children: [!a && /* @__PURE__ */ f("div", {
26
27
  className: "flex shrink-0 items-center gap-1 border-b border-zinc-200 px-2 py-1 text-[11px] dark:border-zinc-800",
27
28
  children: [
28
- /* @__PURE__ */ l("span", {
29
+ /* @__PURE__ */ d("span", {
29
30
  className: "mr-1 text-zinc-400 dark:text-zinc-500",
30
31
  children: "View"
31
32
  }),
32
- /* @__PURE__ */ l("button", {
33
- className: g(v === "own"),
34
- onClick: x,
33
+ /* @__PURE__ */ d("button", {
34
+ className: _(b === "own"),
35
+ onClick: C,
35
36
  title: "Only this scope's own layer",
36
37
  children: "Own"
37
38
  }),
38
- /* @__PURE__ */ l("button", {
39
- className: g(v === "merged"),
40
- onClick: S,
39
+ /* @__PURE__ */ d("button", {
40
+ className: _(b === "merged"),
41
+ onClick: w,
41
42
  title: "Own layer merged over the parent scope chain",
42
43
  children: "Merged"
43
44
  })
44
45
  ]
45
- }), /* @__PURE__ */ l(f, {
46
- value: w ?? m,
47
- style: h,
46
+ }), /* @__PURE__ */ d(p, {
47
+ value: E ?? h,
48
+ style: m === "dark" ? g : void 0,
48
49
  enableClipboard: !1,
49
50
  indentWidth: 15,
50
51
  collapsed: 2,
51
52
  displayObjectSize: !1,
52
53
  displayDataTypes: !1,
53
- children: /* @__PURE__ */ l(f.String, { render: t })
54
+ children: /* @__PURE__ */ d(p.String, { render: t })
54
55
  })]
55
56
  });
56
57
  };
57
58
  //#endregion
58
- export { _ as default };
59
+ export { v as default };
@@ -5,23 +5,23 @@ import i from "./components/HotspotsList/HotspotsList.mjs";
5
5
  import a from "./components/RankedList/RankedList.mjs";
6
6
  import o from "./components/TracingToolbar/TracingToolbar.mjs";
7
7
  import s from "./useHighlightElement.mjs";
8
- import { useCallback as c, useEffect as l, useMemo as u, useRef as d, useState as f } from "react";
9
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
10
- import h from "@plitzi/plitzi-ui/hooks/useStorage";
8
+ import c from "@plitzi/plitzi-ui/hooks/useStorage";
9
+ import { useCallback as l, useEffect as u, useMemo as d, useRef as f, useState as p } from "react";
10
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
11
11
  import { useCommonStore as g } from "@plitzi/sdk-shared/store";
12
12
  import { useTracing as _ } from "@plitzi/sdk-shared/store/tracing";
13
13
  //#region src/components/DevToolsPanel/tabs/TracingViewer/TracingViewer.tsx
14
14
  var v = () => {
15
- let { enabled: v, hydrated: y, commits: b, tree: x, clear: S } = _(), [[C, w]] = g(["schema.flat", "navigation.currentPageId"]), [T, E] = h("plitzi-sdk.dev-tools.tracing.view", "ranked"), [D, O] = h("plitzi-sdk.dev-tools.tracing.persist", !1), [k, A] = h("plitzi-sdk.dev-tools.tracing.sidebar-open", !1), [j, M] = f(), [N, P] = f(), F = d(w);
16
- l(() => {
15
+ let { enabled: v, hydrated: y, commits: b, tree: x, clear: S } = _(), [[C, w]] = g(["schema.flat", "navigation.currentPageId"]), [T, E] = c("plitzi-sdk.dev-tools.tracing.view", "ranked"), [D, O] = c("plitzi-sdk.dev-tools.tracing.persist", !1), [k, A] = c("plitzi-sdk.dev-tools.tracing.sidebar-open", !1), [j, M] = p(), [N, P] = p(), F = f(w);
16
+ u(() => {
17
17
  F.current !== w && (F.current = w, D || (S(), M(void 0), P(void 0)));
18
18
  }, [
19
19
  w,
20
20
  D,
21
21
  S
22
22
  ]);
23
- let I = u(() => {
24
- if (!(!y || b.length === 0)) return {
23
+ let I = d(() => {
24
+ if (y && b.length !== 0) return {
25
25
  commitId: 0,
26
26
  timestamp: b[0].timestamp,
27
27
  duration: 0,
@@ -33,36 +33,36 @@ var v = () => {
33
33
  y,
34
34
  b,
35
35
  x
36
- ]), L = u(() => I ? [I, ...b] : b, [I, b]), R = b[0]?.commitId, z = u(() => {
36
+ ]), L = d(() => I ? [I, ...b] : b, [I, b]), R = b[0]?.commitId, z = d(() => {
37
37
  if (L.length === 0) return -1;
38
38
  let e = L.findIndex((e) => e.commitId === j);
39
39
  return e === -1 ? L.length - 1 : e;
40
- }, [L, j]), B = z === -1 ? void 0 : L[z], V = B?.commitId === 0, H = u(() => B && !V ? e(B, x, C) : void 0, [
40
+ }, [L, j]), B = z === -1 ? void 0 : L[z], V = B?.commitId === 0, H = d(() => B && !V ? e(B, x, C) : void 0, [
41
41
  B,
42
42
  V,
43
43
  x,
44
44
  C
45
- ]), U = u(() => H?.nodes.find((e) => e.id === N), [H, N]);
46
- s(U?.id);
47
- let W = u(() => B ? t(B, y, B.commitId === R) : "update", [
45
+ ]), U = d(() => H?.nodes.find((e) => e.id === N) ?? H?.nodes.find((e) => e.elementId === N), [H, N]);
46
+ s(U?.elementId ?? N);
47
+ let W = d(() => B ? t(B, y, B.commitId === R) : "update", [
48
48
  B,
49
49
  y,
50
50
  R
51
- ]), G = c((e) => {
51
+ ]), G = l((e) => {
52
52
  M(e), P(void 0);
53
- }, []), K = c((e) => {
53
+ }, []), K = l((e) => {
54
54
  P(e), e && A(!0);
55
- }, [A]), q = c(() => A((e) => !e), [A]), J = c((e) => {
55
+ }, [A]), q = l(() => A((e) => !e), [A]), J = l((e) => {
56
56
  let t = z + e;
57
57
  t >= 0 && t < L.length && (M(L[t].commitId), P(void 0));
58
- }, [L, z]), Y = c((e) => {
58
+ }, [L, z]), Y = l((e) => {
59
59
  (e.key === "ArrowLeft" || e.key === "ArrowRight") && (e.preventDefault(), J(e.key === "ArrowLeft" ? -1 : 1));
60
60
  }, [J]);
61
- return v ? B ? /* @__PURE__ */ m("div", {
61
+ return v ? B ? /* @__PURE__ */ h("div", {
62
62
  className: "flex h-full min-h-0 w-full flex-col",
63
63
  onKeyDown: Y,
64
64
  children: [
65
- /* @__PURE__ */ p(o, {
65
+ /* @__PURE__ */ m(o, {
66
66
  view: T,
67
67
  persist: D,
68
68
  commitCount: b.length,
@@ -70,41 +70,41 @@ var v = () => {
70
70
  onViewChange: E,
71
71
  onPersistChange: O
72
72
  }),
73
- T !== "hotspots" && /* @__PURE__ */ p(n, {
73
+ T !== "hotspots" && /* @__PURE__ */ m(n, {
74
74
  commits: L,
75
75
  selectedIndex: z,
76
76
  hydrated: y,
77
77
  onSelect: G
78
78
  }),
79
- T !== "hotspots" && V && /* @__PURE__ */ m("div", {
79
+ T !== "hotspots" && V && /* @__PURE__ */ h("div", {
80
80
  className: "flex grow flex-col items-center justify-center gap-3 px-6 text-center text-zinc-500 dark:text-zinc-400",
81
81
  children: [
82
- /* @__PURE__ */ p("i", { className: "fa-solid fa-server text-3xl opacity-30" }),
83
- /* @__PURE__ */ p("span", {
82
+ /* @__PURE__ */ m("i", { className: "fa-solid fa-server text-3xl opacity-30" }),
83
+ /* @__PURE__ */ m("span", {
84
84
  className: "text-sm font-medium text-zinc-600 dark:text-zinc-300",
85
85
  children: "Server render (SSR)"
86
86
  }),
87
- /* @__PURE__ */ m("span", {
87
+ /* @__PURE__ */ h("span", {
88
88
  className: "max-w-md text-xs leading-relaxed",
89
89
  children: [
90
90
  "This page was rendered on the server first. React's Profiler doesn't run during server rendering, so there's no per-element timing for it — this commit marks that baseline. Commit\xA0#",
91
91
  R,
92
92
  " ",
93
93
  "is the client ",
94
- /* @__PURE__ */ p("span", {
94
+ /* @__PURE__ */ m("span", {
95
95
  className: "font-medium text-violet-600 dark:text-violet-400",
96
96
  children: "hydration"
97
97
  }),
98
98
  " of this tree."
99
99
  ]
100
100
  }),
101
- /* @__PURE__ */ m("span", {
101
+ /* @__PURE__ */ h("span", {
102
102
  className: "text-[11px] opacity-70",
103
103
  children: [B.elementCount, " elements in the rendered tree"]
104
104
  })
105
105
  ]
106
106
  }),
107
- T === "ranked" && H && /* @__PURE__ */ p(a, {
107
+ T === "ranked" && H && /* @__PURE__ */ m(a, {
108
108
  commit: B,
109
109
  model: H,
110
110
  active: U,
@@ -113,7 +113,7 @@ var v = () => {
113
113
  onSelectElement: K,
114
114
  onToggleSidebar: q
115
115
  }),
116
- T === "flamegraph" && H && /* @__PURE__ */ p(r, {
116
+ T === "flamegraph" && H && /* @__PURE__ */ m(r, {
117
117
  commit: B,
118
118
  model: H,
119
119
  active: U,
@@ -122,7 +122,7 @@ var v = () => {
122
122
  onSelectElement: K,
123
123
  onToggleSidebar: q
124
124
  }),
125
- T === "hotspots" && /* @__PURE__ */ p(i, {
125
+ T === "hotspots" && /* @__PURE__ */ m(i, {
126
126
  commits: b,
127
127
  tree: x,
128
128
  flat: C,
@@ -130,25 +130,25 @@ var v = () => {
130
130
  onSelectElement: K
131
131
  })
132
132
  ]
133
- }) : /* @__PURE__ */ m("div", {
133
+ }) : /* @__PURE__ */ h("div", {
134
134
  className: "flex h-full min-h-0 w-full flex-col",
135
- children: [/* @__PURE__ */ p(o, {
135
+ children: [/* @__PURE__ */ m(o, {
136
136
  view: T,
137
137
  persist: D,
138
138
  commitCount: b.length,
139
139
  onClear: S,
140
140
  onViewChange: E,
141
141
  onPersistChange: O
142
- }), /* @__PURE__ */ m("div", {
142
+ }), /* @__PURE__ */ h("div", {
143
143
  className: "flex grow flex-col items-center justify-center gap-2 text-zinc-400 dark:text-zinc-500",
144
- children: [/* @__PURE__ */ p("i", { className: "fa-solid fa-chart-column text-3xl opacity-20" }), /* @__PURE__ */ p("span", {
144
+ children: [/* @__PURE__ */ m("i", { className: "fa-solid fa-chart-column text-3xl opacity-20" }), /* @__PURE__ */ m("span", {
145
145
  className: "text-xs",
146
146
  children: "No commits recorded yet — interact with the page"
147
147
  })]
148
148
  })]
149
- }) : /* @__PURE__ */ m("div", {
149
+ }) : /* @__PURE__ */ h("div", {
150
150
  className: "flex h-full w-full flex-col items-center justify-center gap-2 text-zinc-400 dark:text-zinc-500",
151
- children: [/* @__PURE__ */ p("i", { className: "fa-solid fa-gauge-high text-3xl opacity-20" }), /* @__PURE__ */ p("span", {
151
+ children: [/* @__PURE__ */ m("i", { className: "fa-solid fa-gauge-high text-3xl opacity-20" }), /* @__PURE__ */ m("span", {
152
152
  className: "text-xs",
153
153
  children: "Enable debugMode to record render tracing"
154
154
  })]
@@ -1,7 +1,8 @@
1
1
  import { HATCH_STYLE as e, formatMs as t, formatPercent as n, frameColor as r, frameTextColor as i } from "../../helpers.mjs";
2
2
  import a from "clsx";
3
3
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
- var c = ({ node: c, left: l, width: u, top: d, selected: f, onClick: p }) => {
4
+ //#region src/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/FlameFrame.tsx
5
+ var c = 18, l = ({ node: c, left: l, width: u, top: d, selected: f, onClick: p }) => {
5
6
  let m = {
6
7
  left: `${l}%`,
7
8
  width: `${u}%`,
@@ -26,4 +27,4 @@ var c = ({ node: c, left: l, width: u, top: d, selected: f, onClick: p }) => {
26
27
  });
27
28
  };
28
29
  //#endregion
29
- export { c as default };
30
+ export { c as ROW_HEIGHT, l as default };
@@ -9,26 +9,30 @@ import s from "./FlameFrame.mjs";
9
9
  import { useCallback as c, useMemo as l } from "react";
10
10
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
11
11
  //#region src/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/Flamegraph.tsx
12
- var f = 1e-6, p = ({ commit: p, model: m, active: h, origin: g, sidebarOpen: _, onSelectElement: v, onToggleSidebar: y }) => {
13
- let b = l(() => {
12
+ var f = 1e-6, p = 3e-4, m = ({ commit: m, model: h, active: g, origin: _, sidebarOpen: v, onSelectElement: y, onToggleSidebar: b }) => {
13
+ let x = l(() => {
14
14
  let e = /* @__PURE__ */ new Map();
15
- for (let t of m.nodes) e.set(t.id, t);
15
+ for (let t of h.nodes) e.set(t.id, t);
16
16
  return e;
17
- }, [m]), x = h, S = x ? x.x : 0, C = x ? x.width : 1, w = x ? x.depth : 0, T = l(() => {
18
- if (!x) return [];
19
- let e = [], t = x.parentId;
17
+ }, [h]), S = g, C = S ? S.x : 0, w = S ? S.width : 1, T = S ? S.depth : 0, E = l(() => {
18
+ if (!S) return [];
19
+ let e = [], t = S.parentId;
20
20
  for (; t !== void 0;) {
21
- let n = b.get(t);
21
+ let n = x.get(t);
22
22
  if (!n) break;
23
23
  e.push(n), t = n.parentId;
24
24
  }
25
25
  return e.reverse();
26
- }, [x, b]), E = l(() => m.nodes.filter((e) => e.depth >= w && e.x >= S - f && e.x + e.width <= S + C + f), [
27
- m,
28
- S,
26
+ }, [S, x]), D = l(() => h.nodes.filter((e) => e.depth >= T && e.x >= C - f && e.x + e.width <= C + w + f), [
27
+ h,
29
28
  C,
30
- w
31
- ]), D = l(() => E.reduce((e, t) => Math.max(e, t.depth), w), [E, w]), O = c((e) => v(e.id === h?.id ? void 0 : e.id), [h, v]);
29
+ w,
30
+ T
31
+ ]), O = l(() => D.filter((e) => e.width / w >= p || e.id === g?.id), [
32
+ D,
33
+ w,
34
+ g
35
+ ]), k = D.length - O.length, A = l(() => O.reduce((e, t) => Math.max(e, t.depth), T), [O, T]), j = c((e) => y(e.id === g?.id ? void 0 : e.id), [g, y]);
32
36
  return /* @__PURE__ */ d("div", {
33
37
  className: "flex min-h-0 flex-1 flex-col overflow-hidden",
34
38
  children: [
@@ -37,26 +41,35 @@ var f = 1e-6, p = ({ commit: p, model: m, active: h, origin: g, sidebarOpen: _,
37
41
  children: [
38
42
  /* @__PURE__ */ d("span", {
39
43
  className: "font-medium text-zinc-700 dark:text-zinc-200",
40
- children: ["Commit #", p.commitId]
44
+ children: ["Commit #", m.commitId]
41
45
  }),
42
- g !== "update" && /* @__PURE__ */ u("span", {
46
+ _ !== "update" && /* @__PURE__ */ u("span", {
43
47
  className: "rounded bg-violet-100 px-1 text-[9px] font-medium text-violet-700 uppercase dark:bg-violet-500/20 dark:text-violet-300",
44
- children: e[g]
48
+ children: e[_]
45
49
  }),
46
50
  /* @__PURE__ */ u("span", {
47
51
  className: "opacity-60",
48
52
  children: "click a frame to zoom · click the focused frame to zoom out"
49
53
  }),
54
+ k > 0 && /* @__PURE__ */ d("span", {
55
+ className: "opacity-60",
56
+ title: "Frames too narrow to draw at this zoom level — zoom in to see them",
57
+ children: [
58
+ "· ",
59
+ k,
60
+ " too narrow to draw"
61
+ ]
62
+ }),
50
63
  /* @__PURE__ */ u(t, {
51
- commit: p,
52
- model: m,
53
- active: h,
54
- onSelectElement: v
64
+ commit: m,
65
+ model: h,
66
+ active: g,
67
+ onSelectElement: y
55
68
  }),
56
69
  /* @__PURE__ */ u(o, {
57
70
  className: "ml-auto",
58
- open: _,
59
- onToggle: y
71
+ open: v,
72
+ onToggle: b
60
73
  })
61
74
  ]
62
75
  }),
@@ -66,27 +79,27 @@ var f = 1e-6, p = ({ commit: p, model: m, active: h, origin: g, sidebarOpen: _,
66
79
  className: "min-h-0 flex-1 overflow-auto p-1",
67
80
  children: /* @__PURE__ */ d("div", {
68
81
  className: "relative w-full",
69
- style: { height: (D + 1) * 18 },
70
- children: [T.map((e) => /* @__PURE__ */ u(s, {
82
+ style: { height: (A + 1) * 18 },
83
+ children: [E.map((e) => /* @__PURE__ */ u(s, {
71
84
  node: e,
72
85
  left: 0,
73
86
  width: 100,
74
87
  top: e.depth * 18,
75
- selected: e.id === h?.id,
76
- onClick: O
77
- }, e.id)), E.map((e) => /* @__PURE__ */ u(s, {
88
+ selected: e.id === g?.id,
89
+ onClick: j
90
+ }, e.id)), O.map((e) => /* @__PURE__ */ u(s, {
78
91
  node: e,
79
- left: (e.x - S) / C * 100,
80
- width: e.width / C * 100,
92
+ left: (e.x - C) / w * 100,
93
+ width: e.width / w * 100,
81
94
  top: e.depth * 18,
82
- selected: e.id === h?.id,
83
- onClick: O
95
+ selected: e.id === g?.id,
96
+ onClick: j
84
97
  }, e.id))]
85
98
  })
86
- }), _ && /* @__PURE__ */ u(i, { children: h ? /* @__PURE__ */ u(n, {
87
- node: h,
88
- commit: p,
89
- model: m
99
+ }), v && /* @__PURE__ */ u(i, { children: g ? /* @__PURE__ */ u(n, {
100
+ node: g,
101
+ commit: m,
102
+ model: h
90
103
  }) : /* @__PURE__ */ u(a, {}) })]
91
104
  }),
92
105
  /* @__PURE__ */ u(r, {})
@@ -94,4 +107,4 @@ var f = 1e-6, p = ({ commit: p, model: m, active: h, origin: g, sidebarOpen: _,
94
107
  });
95
108
  };
96
109
  //#endregion
97
- export { p as default };
110
+ export { m as default };