@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,23 +4,23 @@ var t = (e) => {
4
4
  let t = 0, n = 0;
5
5
  for (let r of e.elements) r.phase === "mount" ? t += 1 : n += 1;
6
6
  return t > 0 && n === 0 ? "mount" : n > 0 && t === 0 ? "update" : "mixed";
7
- }, n = (e, n, r) => {
7
+ }, n = 0, r = (e, n, r) => {
8
8
  if (e.commitId === 0) return "ssr";
9
9
  let i = t(e);
10
10
  return i === "mount" ? n && r ? "hydration" : "mount" : i;
11
- }, r = {
11
+ }, i = {
12
12
  ssr: "SSR render (server)",
13
13
  hydration: "Hydration (SSR)",
14
14
  mount: "Mount",
15
15
  mixed: "Mount + update",
16
16
  update: "Update"
17
- }, i = {
17
+ }, a = {
18
18
  ssr: "S",
19
19
  hydration: "H",
20
20
  mount: "M",
21
21
  mixed: "±",
22
22
  update: "·"
23
- }, a = [
23
+ }, o = [
24
24
  {
25
25
  origin: "ssr",
26
26
  label: "SSR"
@@ -41,7 +41,7 @@ var t = (e) => {
41
41
  origin: "update",
42
42
  label: "Update"
43
43
  }
44
- ], o = (e) => e < .1 ? "<0.1ms" : `${e.toFixed(1)}ms`, s = (e) => `${Math.round(e * 100)}%`, c = (e) => e >= 50 ? "bg-red-500" : e >= 16 ? "bg-amber-500" : e >= 8 ? "bg-emerald-500" : "bg-sky-500", l = [
44
+ ], s = (e) => e < .1 ? "<0.1ms" : `${e.toFixed(1)}ms`, c = (e) => `${Math.round(e * 100)}%`, l = (e) => e >= 50 ? "bg-red-500" : e >= 16 ? "bg-amber-500" : e >= 8 ? "bg-emerald-500" : "bg-sky-500", u = [
45
45
  {
46
46
  color: "bg-sky-500",
47
47
  label: "<8ms"
@@ -58,111 +58,133 @@ var t = (e) => {
58
58
  color: "bg-red-500",
59
59
  label: "≥50ms"
60
60
  }
61
- ], u = "bg-zinc-300 dark:bg-zinc-700", d = { backgroundImage: "repeating-linear-gradient(45deg, rgba(113,113,122,0.22) 0, rgba(113,113,122,0.22) 2px, transparent 2px, transparent 5px)" }, f = (e) => e.state === "rendered" ? c(e.selfDuration) : e.state === "bubbled" ? u : "bg-transparent", p = (e) => e.state === "bubbled" ? "text-zinc-600 dark:text-zinc-300" : e.state === "hatched" ? "text-zinc-400 dark:text-zinc-600" : c(e.selfDuration) === "bg-amber-500" ? "text-stone-900" : "text-white", m = (e, t) => {
61
+ ], d = "bg-zinc-300 dark:bg-zinc-700", f = { backgroundImage: "repeating-linear-gradient(45deg, rgba(113,113,122,0.22) 0, rgba(113,113,122,0.22) 2px, transparent 2px, transparent 5px)" }, p = (e) => e.state === "rendered" ? l(e.selfDuration) : e.state === "bubbled" ? d : "bg-transparent", m = (e) => e.state === "bubbled" ? "text-zinc-600 dark:text-zinc-300" : e.state === "hatched" ? "text-zinc-400 dark:text-zinc-600" : l(e.selfDuration) === "bg-amber-500" ? "text-stone-900" : "text-white", h = (e, t) => {
62
62
  let n = t?.[e];
63
63
  if (!n) return e;
64
64
  let { label: r, type: i } = n.definition;
65
65
  return r || i || e;
66
- }, h = (e, t) => t?.[e]?.definition.type ?? "unknown", g = (t, n) => {
66
+ }, g = (e, t) => t?.[e]?.definition.type ?? "unknown", _ = (t, n) => {
67
67
  let r = e(n?.[t], "definition.initialState.visibility", !0);
68
68
  return r !== !1 && r !== "false";
69
- }, _ = (e, t) => t === "self" ? e.selfDuration : e.actualDuration, v = .01, y = 1e-6, b = (e, t) => {
70
- let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
71
- for (let e of Object.keys(t)) n.set(e, t[e].parentId), r.set(e, t[e].baseDuration);
72
- let i = new Map(e.elements.map((e) => [e.id, e])), a = /* @__PURE__ */ new Map();
73
- for (let [e, t] of n) if (t !== void 0 && n.has(t)) {
74
- let n = a.get(t);
75
- n ? n.push(e) : a.set(t, [e]);
69
+ }, v = (e, t) => t === "self" ? e.selfDuration : e.actualDuration, y = .01, b = 1e-6, x = (e) => {
70
+ let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
71
+ for (let i of Object.keys(e)) t.set(i, e[i].parentId), n.set(i, e[i].baseDuration), r.set(i, e[i].elementId);
72
+ let i = /* @__PURE__ */ new Map();
73
+ for (let [e, n] of t) if (n !== void 0 && t.has(n)) {
74
+ let t = i.get(n);
75
+ t ? t.push(e) : i.set(n, [e]);
76
+ }
77
+ return {
78
+ parent: t,
79
+ base: n,
80
+ children: i,
81
+ elementOf: r
82
+ };
83
+ }, S = (e, t) => {
84
+ let { parent: n } = t, r = new Map(e.elements.map((e) => [e.id, e])), i = /* @__PURE__ */ new Map();
85
+ for (let t of e.elements) i.set(t.id, t.actualDuration);
86
+ for (let t of e.elements) {
87
+ let e = n.get(t.id);
88
+ for (; e !== void 0 && !r.has(e);) e = n.get(e);
89
+ e !== void 0 && i.set(e, (i.get(e) ?? 0) - t.actualDuration);
76
90
  }
77
- let o = /* @__PURE__ */ new Set();
78
- for (let e of i.keys()) {
91
+ for (let [e, t] of i) t < 0 && i.set(e, 0);
92
+ let a = /* @__PURE__ */ new Set();
93
+ for (let e of r.keys()) {
79
94
  let t = e, r = n.get(e);
80
95
  for (; r !== void 0 && n.has(r);) t = r, r = n.get(r);
81
- o.add(t);
96
+ a.add(t);
82
97
  }
83
- let s = (e) => {
84
- let t = [], n = [...a.get(e) ?? []];
85
- for (; n.length > 0;) {
86
- let e = n.pop();
87
- if (e === void 0) break;
88
- i.has(e) ? t.push(e) : n.push(...a.get(e) ?? []);
89
- }
90
- return t;
91
- }, c = (e) => {
92
- let t = i.get(e);
93
- if (!t) return 0;
94
- let n = s(e).reduce((e, t) => e + (i.get(t)?.actualDuration ?? 0), 0);
95
- return Math.max(0, t.actualDuration - n);
96
- };
97
98
  return {
98
- rendered: i,
99
- children: a,
100
- base: r,
101
- roots: [...o],
102
- selfOf: c
99
+ rendered: r,
100
+ self: i,
101
+ roots: [...a]
103
102
  };
104
- }, x = (e, t, n) => {
105
- let { rendered: r, children: i, base: a, roots: o, selfOf: s } = b(e, t), c = (e) => {
103
+ }, C = (e, t, n, r = x(t)) => {
104
+ let { children: i, base: a, elementOf: o } = r, { rendered: s, self: c, roots: l } = S(e, r), u = (e) => {
106
105
  let t = a.get(e) ?? 0;
107
106
  if (t > 0) return t;
108
- let n = r.get(e)?.actualDuration ?? 0;
109
- return n > 0 ? n : v;
110
- }, l = [], u = [], d = 0, f = 0, p = 0, _ = (e, t, o, b, x, S) => {
111
- let C = r.get(e), w = s(e), T = C ? w > y ? "rendered" : "bubbled" : "hatched", E = T === "rendered" && !S;
112
- T === "rendered" && (f += w, p += 1), E && u.push(e), d = Math.max(d, x), l.push({
107
+ let n = s.get(e)?.actualDuration ?? 0;
108
+ return n > 0 ? n : y;
109
+ }, d = [], f = [], p = 0, m = 0, v = 0, C = [], w = l.map(u), T = w.reduce((e, t) => e + t, 0) || 1, E = 0;
110
+ for (l.forEach((e, t) => {
111
+ let n = (w[t] || y) / T;
112
+ C.push({
113
113
  id: e,
114
- name: m(e, n),
115
- type: h(e, n),
116
- state: T,
117
- visible: g(e, n),
118
- trigger: E,
119
- phase: C?.phase,
120
- actualDuration: C?.actualDuration ?? 0,
121
- baseDuration: a.get(e) ?? C?.baseDuration ?? 0,
122
- selfDuration: w,
123
- depth: x,
124
- parentId: t,
125
- changedProps: C?.changedProps,
126
- x: o,
127
- width: b
114
+ parentId: void 0,
115
+ x: E,
116
+ width: n,
117
+ depth: 0,
118
+ ancestorRendered: !1
119
+ }), E += n;
120
+ }), C.reverse(); C.length > 0;) {
121
+ let e = C.pop();
122
+ if (e === void 0) break;
123
+ let { id: t, parentId: r, x: l, width: x, depth: S, ancestorRendered: w } = e, T = s.get(t), E = c.get(t) ?? 0, D = T ? E > b ? "rendered" : "bubbled" : "hatched", O = D === "rendered" && !w;
124
+ D === "rendered" && (m += E, v += 1), O && f.push(t), p = Math.max(p, S);
125
+ let k = o.get(t) ?? T?.elementId ?? t;
126
+ d.push({
127
+ id: t,
128
+ elementId: k,
129
+ name: h(k, n),
130
+ type: g(k, n),
131
+ state: D,
132
+ visible: _(k, n),
133
+ trigger: O,
134
+ phase: T?.phase,
135
+ actualDuration: T?.actualDuration ?? 0,
136
+ baseDuration: a.get(t) ?? T?.baseDuration ?? 0,
137
+ selfDuration: E,
138
+ depth: S,
139
+ parentId: r,
140
+ changedProps: T?.changedProps,
141
+ x: l,
142
+ width: x
128
143
  });
129
- let D = i.get(e) ?? [], O = D.map(c), k = O.reduce((e, t) => e + t, 0), A = Math.max(c(e), k) || 1, j = o;
130
- D.forEach((t, n) => {
131
- let r = (O[n] || v) / A * b;
132
- _(t, e, j, r, x + 1, S || T === "rendered"), j += r;
144
+ let A = i.get(t) ?? [];
145
+ if (A.length === 0) continue;
146
+ let j = A.map(u), M = j.reduce((e, t) => e + t, 0), N = Math.max(u(t), M) || 1, P = l, F = [];
147
+ A.forEach((e, n) => {
148
+ let r = (j[n] || y) / N * x;
149
+ F.push({
150
+ id: e,
151
+ parentId: t,
152
+ x: P,
153
+ width: r,
154
+ depth: S + 1,
155
+ ancestorRendered: w || D === "rendered"
156
+ }), P += r;
133
157
  });
134
- }, x = o.map(c), S = x.reduce((e, t) => e + t, 0) || 1, C = 0;
135
- return o.forEach((e, t) => {
136
- let n = (x[t] || v) / S;
137
- _(e, void 0, C, n, 0, !1), C += n;
138
- }), {
139
- nodes: l,
140
- maxDepth: d,
141
- totalSelf: f,
142
- renderedCount: p,
143
- triggers: u
158
+ for (let e = F.length - 1; e >= 0; --e) C.push(F[e]);
159
+ }
160
+ return {
161
+ nodes: d,
162
+ maxDepth: p,
163
+ totalSelf: m,
164
+ renderedCount: v,
165
+ triggers: f
144
166
  };
145
- }, S = (e, t, n) => {
146
- let r = /* @__PURE__ */ new Map();
147
- for (let n of e) {
148
- let { selfOf: e } = b(n, t);
149
- for (let t of n.elements) {
150
- let n = e(t.id);
151
- if (n <= y) continue;
152
- let i = r.get(t.id) ?? {
167
+ }, w = (e, t, n) => {
168
+ let r = x(t), i = /* @__PURE__ */ new Map();
169
+ for (let t of e) {
170
+ let { self: e } = S(t, r);
171
+ for (let n of t.elements) {
172
+ let t = e.get(n.id) ?? 0;
173
+ if (t <= b) continue;
174
+ let a = r.elementOf.get(n.id) ?? n.elementId, o = i.get(a) ?? {
153
175
  renders: 0,
154
176
  mounts: 0,
155
177
  totalSelf: 0,
156
178
  maxSelf: 0,
157
179
  lastSelf: 0
158
180
  };
159
- i.renders += 1, i.mounts += +(t.phase === "mount"), i.totalSelf += n, i.maxSelf = Math.max(i.maxSelf, n), i.lastSelf = n, r.set(t.id, i);
181
+ o.renders += 1, o.mounts += +(n.phase === "mount"), o.totalSelf += t, o.maxSelf = Math.max(o.maxSelf, t), o.lastSelf = t, i.set(a, o);
160
182
  }
161
183
  }
162
- return [...r.entries()].map(([e, t]) => ({
184
+ return [...i.entries()].map(([e, t]) => ({
163
185
  id: e,
164
- name: m(e, n),
165
- type: h(e, n),
186
+ name: h(e, n),
187
+ type: g(e, n),
166
188
  renders: t.renders,
167
189
  mounts: t.mounts,
168
190
  totalSelf: t.totalSelf,
@@ -172,4 +194,4 @@ var t = (e) => {
172
194
  }));
173
195
  };
174
196
  //#endregion
175
- export { u as BUBBLED_COLOR, i as COMMIT_ORIGIN_BADGE, r as COMMIT_ORIGIN_LABEL, a as COMMIT_ORIGIN_LEGEND, l as DURATION_LEGEND, d as HATCH_STYLE, x as buildFlameModel, S as buildHotspots, n as commitOrigin, c as durationColor, g as elementVisible, o as formatMs, s as formatPercent, f as frameColor, p as frameTextColor, _ as rowDuration };
197
+ export { d as BUBBLED_COLOR, a as COMMIT_ORIGIN_BADGE, i as COMMIT_ORIGIN_LABEL, o as COMMIT_ORIGIN_LEGEND, u as DURATION_LEGEND, f as HATCH_STYLE, n as SSR_COMMIT_ID, C as buildFlameModel, w as buildHotspots, x as buildTreeIndex, r as commitOrigin, l as durationColor, _ as elementVisible, s as formatMs, c as formatPercent, p as frameColor, m as frameTextColor, v as rowDuration };
@@ -21,7 +21,7 @@ var c = ({ items: c = [], className: l, value: u, onSelect: d }) => {
21
21
  children: [!m.length && /* @__PURE__ */ a("div", {
22
22
  className: "p-4 text-center text-zinc-400 dark:text-zinc-600",
23
23
  children: "No items"
24
- }), m.length && m.map((t, n) => /* @__PURE__ */ a(e, {
24
+ }), m.length > 0 && m.map((t, n) => /* @__PURE__ */ a(e, {
25
25
  label: t.label,
26
26
  name: t.name,
27
27
  isSelected: h?.id === t.id,
@@ -0,0 +1,2 @@
1
+ declare const useHydrated: () => boolean;
2
+ export default useHydrated;
@@ -0,0 +1,5 @@
1
+ import { useSyncExternalStore as e } from "react";
2
+ //#region src/useHydrated.ts
3
+ var t = () => () => {}, n = () => e(t, () => !0, () => !1);
4
+ //#endregion
5
+ export { n as default };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Puts the store this container sits in — the app's root store — in the dev store registry.
3
+ *
4
+ * Nexus registers every provider itself in a dev build, but in a production build only the ones beneath a
5
+ * `DevStoreScopeContext`, and the container provides that context for what it wraps, never for the store above it.
6
+ * So a panel switched on in production listed every row and provider on the page and not the root, which is the store
7
+ * worth opening first. Registered untagged, so the panel labels it `root` and selects it by default. Nothing in dev:
8
+ * nexus already has it there, and a second registration of the same store would unregister both on unmount.
9
+ */
10
+ declare const useRegisterRootStore: (enabled: boolean) => void;
11
+ export default useRegisterRootStore;
@@ -0,0 +1,13 @@
1
+ import { useContext as e, useEffect as t } from "react";
2
+ import { StoreContext as n } from "@plitzi/nexus/react";
3
+ import { registerDevStore as r } from "@plitzi/nexus";
4
+ import { isDev as i } from "@plitzi/nexus/env";
5
+ //#region src/useRegisterRootStore.ts
6
+ var a = (a) => {
7
+ let o = e(n);
8
+ t(() => {
9
+ if (a && !i && o) return r(o);
10
+ }, [a, o]);
11
+ };
12
+ //#endregion
13
+ export { a as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plitzi/sdk-dev-tools",
3
- "version": "0.33.1",
3
+ "version": "0.34.0",
4
4
  "license": "AGPL-3.0",
5
5
  "files": [
6
6
  "dist"
@@ -66,10 +66,26 @@
66
66
  "types": "./dist/components/DevToolsPanel/DevToolsSubHeader.d.ts",
67
67
  "import": "./dist/components/DevToolsPanel/DevToolsSubHeader.mjs"
68
68
  },
69
+ "./components/DevToolsPanel/ThemeControl": {
70
+ "types": "./dist/components/DevToolsPanel/ThemeControl.d.ts",
71
+ "import": "./dist/components/DevToolsPanel/ThemeControl.mjs"
72
+ },
69
73
  "./components/DevToolsPanel/index": {
70
74
  "types": "./dist/components/DevToolsPanel/index.d.ts",
71
75
  "import": "./dist/components/DevToolsPanel/index.mjs"
72
76
  },
77
+ "./components/DevToolsPanel/tabs/ActionsViewer": {
78
+ "types": "./dist/components/DevToolsPanel/tabs/ActionsViewer/index.d.ts",
79
+ "import": "./dist/components/DevToolsPanel/tabs/ActionsViewer/index.mjs"
80
+ },
81
+ "./components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer": {
82
+ "types": "./dist/components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer.d.ts",
83
+ "import": "./dist/components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer.mjs"
84
+ },
85
+ "./components/DevToolsPanel/tabs/ActionsViewer/index": {
86
+ "types": "./dist/components/DevToolsPanel/tabs/ActionsViewer/index.d.ts",
87
+ "import": "./dist/components/DevToolsPanel/tabs/ActionsViewer/index.mjs"
88
+ },
73
89
  "./components/DevToolsPanel/tabs/ElementsViewer": {
74
90
  "types": "./dist/components/DevToolsPanel/tabs/ElementsViewer/index.d.ts",
75
91
  "import": "./dist/components/DevToolsPanel/tabs/ElementsViewer/index.mjs"
@@ -182,6 +198,18 @@
182
198
  "types": "./dist/components/DevToolsPanel/tabs/Logs/LogsSummary/index.d.ts",
183
199
  "import": "./dist/components/DevToolsPanel/tabs/Logs/LogsSummary/index.mjs"
184
200
  },
201
+ "./components/DevToolsPanel/tabs/Logs/categories/LogAction": {
202
+ "types": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/index.d.ts",
203
+ "import": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/index.mjs"
204
+ },
205
+ "./components/DevToolsPanel/tabs/Logs/categories/LogAction/LogAction": {
206
+ "types": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/LogAction.d.ts",
207
+ "import": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/LogAction.mjs"
208
+ },
209
+ "./components/DevToolsPanel/tabs/Logs/categories/LogAction/index": {
210
+ "types": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/index.d.ts",
211
+ "import": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/index.mjs"
212
+ },
185
213
  "./components/DevToolsPanel/tabs/Logs/categories/LogInteraction": {
186
214
  "types": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/index.d.ts",
187
215
  "import": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/index.mjs"
@@ -246,6 +274,10 @@
246
274
  "types": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionHeader.d.ts",
247
275
  "import": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionHeader.mjs"
248
276
  },
277
+ "./components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionNote": {
278
+ "types": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionNote.d.ts",
279
+ "import": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionNote.mjs"
280
+ },
249
281
  "./components/DevToolsPanel/tabs/Logs/categories/LogInteraction/index": {
250
282
  "types": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/index.d.ts",
251
283
  "import": "./dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/index.mjs"
@@ -519,6 +551,7 @@
519
551
  "import": "./dist/components/DevToolsPanel/tabs/TracingViewer/components/TracingToolbar/index.mjs"
520
552
  },
521
553
  "./components/DevToolsPanel/tabs/TracingViewer/helpers": {
554
+ "types": "./dist/components/DevToolsPanel/tabs/TracingViewer/helpers.d.ts",
522
555
  "import": "./dist/components/DevToolsPanel/tabs/TracingViewer/helpers.mjs"
523
556
  },
524
557
  "./components/DevToolsPanel/tabs/TracingViewer/index": {
@@ -600,6 +633,14 @@
600
633
  "./scope/useStoreState": {
601
634
  "types": "./dist/scope/useStoreState.d.ts",
602
635
  "import": "./dist/scope/useStoreState.mjs"
636
+ },
637
+ "./useHydrated": {
638
+ "types": "./dist/useHydrated.d.ts",
639
+ "import": "./dist/useHydrated.mjs"
640
+ },
641
+ "./useRegisterRootStore": {
642
+ "types": "./dist/useRegisterRootStore.d.ts",
643
+ "import": "./dist/useRegisterRootStore.mjs"
603
644
  }
604
645
  },
605
646
  "scripts": {
@@ -607,28 +648,33 @@
607
648
  "typecheck": "tsc -p tsconfig.app.json --noEmit",
608
649
  "build:dev": "vite build --mode development --minify false && node ../sdk-shared/scripts/generate-exports.mjs",
609
650
  "build:dev-watch": "vite build --mode development --watch --minify false",
610
- "build:prod": "vite build && node ../sdk-shared/scripts/generate-exports.mjs"
651
+ "build:prod": "vite build && node ../sdk-shared/scripts/generate-exports.mjs",
652
+ "test": "vitest run",
653
+ "test:watch": "vitest"
611
654
  },
612
655
  "type": "module",
613
656
  "sideEffects": false,
614
657
  "devDependencies": {
658
+ "@testing-library/react": "^16.3.3",
615
659
  "eslint": "^9.39.5",
616
- "react": "^19.2.8",
617
- "react-dom": "^19.2.8",
660
+ "jsdom": "^30.0.1",
661
+ "react": "^19.3.0",
662
+ "react-dom": "^19.3.0",
618
663
  "typescript": "^6.0.3",
619
- "vite": "^8.2.1"
664
+ "vite": "^8.3.0",
665
+ "vitest": "^5.0.0"
620
666
  },
621
667
  "peerDependencies": {
622
668
  "react": "^19",
623
669
  "react-dom": "^19"
624
670
  },
625
671
  "dependencies": {
626
- "@plitzi/nexus": "^1.1.0",
627
- "@plitzi/plitzi-ui": "^1.6.19",
628
- "@plitzi/sdk-navigation": "0.33.1",
629
- "@plitzi/sdk-schema": "0.33.1",
630
- "@plitzi/sdk-shared": "0.33.1",
631
- "@plitzi/sdk-style": "0.33.1",
672
+ "@plitzi/nexus": "^1.1.4",
673
+ "@plitzi/plitzi-ui": "^1.6.21",
674
+ "@plitzi/sdk-navigation": "0.34.0",
675
+ "@plitzi/sdk-schema": "0.34.0",
676
+ "@plitzi/sdk-shared": "0.34.0",
677
+ "@plitzi/sdk-style": "0.34.0",
632
678
  "@uiw/react-json-view": "^2.0.0-alpha.43",
633
679
  "clsx": "^2.1.1"
634
680
  }