@plitzi/sdk-dev-tools 0.37.9 → 0.37.10

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 (189) hide show
  1. package/CHANGELOG.md +591 -0
  2. package/dist/DevToolsContainer.d.ts +7 -1
  3. package/dist/DevToolsContainer.mjs +66 -60
  4. package/dist/agentInspector/flowRuns.d.ts +22 -0
  5. package/dist/agentInspector/flowRuns.mjs +26 -0
  6. package/dist/agentInspector/inspector.d.ts +27 -0
  7. package/dist/agentInspector/inspector.mjs +20 -0
  8. package/dist/agentInspector/report.d.ts +36 -0
  9. package/dist/agentInspector/report.mjs +53 -0
  10. package/dist/agentInspector/useAgentInspector.d.ts +15 -0
  11. package/dist/agentInspector/useAgentInspector.mjs +36 -0
  12. package/dist/components/DevToolsOverlay/DevToolsOverlay.d.ts +6 -1
  13. package/dist/components/DevToolsOverlay/DevToolsOverlay.mjs +25 -15
  14. package/dist/components/DevToolsPanel/DevToolsBody.d.ts +3 -1
  15. package/dist/components/DevToolsPanel/DevToolsBody.mjs +35 -31
  16. package/dist/components/DevToolsPanel/DevToolsHeader.d.ts +3 -1
  17. package/dist/components/DevToolsPanel/DevToolsHeader.mjs +20 -10
  18. package/dist/components/DevToolsPanel/DevToolsPanel.d.ts +3 -1
  19. package/dist/components/DevToolsPanel/DevToolsPanel.mjs +25 -23
  20. package/dist/components/DevToolsPanel/DevToolsSubHeader.mjs +41 -45
  21. package/dist/components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer.mjs +10 -10
  22. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsViewer.d.ts +4 -0
  23. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsViewer.mjs +33 -18
  24. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsAttributes/DetailsAttributes.mjs +16 -0
  25. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsAttributes/index.d.ts +3 -0
  26. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsAttributes/index.mjs +5 -0
  27. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsDefinition/DetailsDefinition.mjs +18 -0
  28. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsDefinition/index.d.ts +3 -0
  29. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsDefinition/index.mjs +5 -0
  30. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRow/DetailsRow.d.ts +8 -0
  31. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRow/DetailsRow.mjs +14 -0
  32. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRow/index.d.ts +3 -0
  33. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRow/index.mjs +5 -0
  34. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRuntime/DetailsRuntime.d.ts +9 -0
  35. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRuntime/DetailsRuntime.mjs +54 -0
  36. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRuntime/index.d.ts +3 -0
  37. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsRuntime/index.mjs +5 -0
  38. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsValue/DetailsValue.d.ts +9 -0
  39. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsValue/DetailsValue.mjs +15 -0
  40. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsValue/index.d.ts +3 -0
  41. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/DetailsValue/index.mjs +5 -0
  42. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementDetails/ElementDetails.d.ts +7 -0
  43. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementDetails/ElementDetails.mjs +46 -0
  44. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementDetails/index.d.ts +3 -0
  45. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementDetails/index.mjs +5 -0
  46. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementLink/ElementLink.d.ts +7 -0
  47. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementLink/ElementLink.mjs +14 -0
  48. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementLink/index.d.ts +3 -0
  49. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementLink/index.mjs +5 -0
  50. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementsTree/ElementsTree.d.ts +12 -0
  51. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementsTree/ElementsTree.mjs +39 -0
  52. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementsTree/index.d.ts +3 -0
  53. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/ElementsTree/index.mjs +5 -0
  54. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeRow/TreeRow.d.ts +10 -0
  55. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeRow/TreeRow.mjs +36 -0
  56. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeRow/index.d.ts +3 -0
  57. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeRow/index.mjs +5 -0
  58. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeSection/TreeSection.d.ts +13 -0
  59. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeSection/TreeSection.mjs +39 -0
  60. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeSection/index.d.ts +3 -0
  61. package/dist/components/DevToolsPanel/tabs/ElementsViewer/components/TreeSection/index.mjs +5 -0
  62. package/dist/components/DevToolsPanel/tabs/ElementsViewer/helpers/renderTree.d.ts +31 -0
  63. package/dist/components/DevToolsPanel/tabs/ElementsViewer/helpers/renderTree.mjs +61 -0
  64. package/dist/components/DevToolsPanel/tabs/FlagsViewer/FlagSource.d.ts +7 -0
  65. package/dist/components/DevToolsPanel/tabs/FlagsViewer/FlagSource.mjs +23 -0
  66. package/dist/components/DevToolsPanel/tabs/FlagsViewer/FlagsListItem.d.ts +11 -0
  67. package/dist/components/DevToolsPanel/tabs/FlagsViewer/FlagsListItem.mjs +66 -0
  68. package/dist/components/DevToolsPanel/tabs/FlagsViewer/FlagsViewer.d.ts +10 -0
  69. package/dist/components/DevToolsPanel/tabs/FlagsViewer/FlagsViewer.mjs +43 -0
  70. package/dist/components/DevToolsPanel/tabs/FlagsViewer/index.d.ts +3 -0
  71. package/dist/components/DevToolsPanel/tabs/FlagsViewer/index.mjs +5 -0
  72. package/dist/components/DevToolsPanel/tabs/Logs/Log.d.ts +3 -8
  73. package/dist/components/DevToolsPanel/tabs/Logs/Log.mjs +42 -31
  74. package/dist/components/DevToolsPanel/tabs/Logs/Logs.mjs +1 -6
  75. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyHeader.mjs +53 -54
  76. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteraction.mjs +17 -17
  77. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigationBody.mjs +26 -26
  78. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogRealtime/LogRealtime.d.ts +10 -0
  79. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogRealtime/LogRealtime.mjs +58 -0
  80. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogRealtime/index.d.ts +3 -0
  81. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogRealtime/index.mjs +5 -0
  82. package/dist/components/DevToolsPanel/tabs/QaViewer/QaAllChecksButton.d.ts +3 -0
  83. package/dist/components/DevToolsPanel/tabs/QaViewer/QaAllChecksButton.mjs +16 -0
  84. package/dist/components/DevToolsPanel/tabs/QaViewer/QaCheckRow.d.ts +7 -0
  85. package/dist/components/DevToolsPanel/tabs/QaViewer/QaCheckRow.mjs +47 -0
  86. package/dist/components/DevToolsPanel/tabs/QaViewer/QaChecks.d.ts +3 -0
  87. package/dist/components/DevToolsPanel/tabs/QaViewer/QaChecks.mjs +24 -0
  88. package/dist/components/DevToolsPanel/tabs/QaViewer/QaDivider.d.ts +3 -0
  89. package/dist/components/DevToolsPanel/tabs/QaViewer/QaDivider.mjs +5 -0
  90. package/dist/components/DevToolsPanel/tabs/QaViewer/QaFindingItem.d.ts +7 -0
  91. package/dist/components/DevToolsPanel/tabs/QaViewer/QaFindingItem.mjs +32 -0
  92. package/dist/components/DevToolsPanel/tabs/QaViewer/QaInspectorDetails.d.ts +9 -0
  93. package/dist/components/DevToolsPanel/tabs/QaViewer/QaInspectorDetails.mjs +135 -0
  94. package/dist/components/DevToolsPanel/tabs/QaViewer/QaInspectorEmpty.d.ts +3 -0
  95. package/dist/components/DevToolsPanel/tabs/QaViewer/QaInspectorEmpty.mjs +17 -0
  96. package/dist/components/DevToolsPanel/tabs/QaViewer/QaInspectorPanel.d.ts +3 -0
  97. package/dist/components/DevToolsPanel/tabs/QaViewer/QaInspectorPanel.mjs +22 -0
  98. package/dist/components/DevToolsPanel/tabs/QaViewer/QaProperty.d.ts +8 -0
  99. package/dist/components/DevToolsPanel/tabs/QaViewer/QaProperty.mjs +14 -0
  100. package/dist/components/DevToolsPanel/tabs/QaViewer/QaRescanButton.d.ts +3 -0
  101. package/dist/components/DevToolsPanel/tabs/QaViewer/QaRescanButton.mjs +15 -0
  102. package/dist/components/DevToolsPanel/tabs/QaViewer/QaRuleItem.d.ts +7 -0
  103. package/dist/components/DevToolsPanel/tabs/QaViewer/QaRuleItem.mjs +38 -0
  104. package/dist/components/DevToolsPanel/tabs/QaViewer/QaToolChip.d.ts +13 -0
  105. package/dist/components/DevToolsPanel/tabs/QaViewer/QaToolChip.mjs +27 -0
  106. package/dist/components/DevToolsPanel/tabs/QaViewer/QaToolbar.d.ts +3 -0
  107. package/dist/components/DevToolsPanel/tabs/QaViewer/QaToolbar.mjs +58 -0
  108. package/dist/components/DevToolsPanel/tabs/QaViewer/QaViewer.d.ts +8 -0
  109. package/dist/components/DevToolsPanel/tabs/QaViewer/QaViewer.mjs +14 -0
  110. package/dist/components/DevToolsPanel/tabs/QaViewer/QaVisionSelect.d.ts +3 -0
  111. package/dist/components/DevToolsPanel/tabs/QaViewer/QaVisionSelect.mjs +50 -0
  112. package/dist/components/DevToolsPanel/tabs/QaViewer/index.d.ts +3 -0
  113. package/dist/components/DevToolsPanel/tabs/QaViewer/index.mjs +5 -0
  114. package/dist/components/DevToolsPanel/tabs/TracingViewer/TracingViewer.mjs +31 -31
  115. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesViewer.mjs +12 -12
  116. package/dist/highlight/index.d.ts +2 -0
  117. package/dist/highlight/index.mjs +5 -0
  118. package/dist/highlight/useHighlightElement.d.ts +6 -0
  119. package/dist/{components/DevToolsPanel/tabs/TracingViewer → highlight}/useHighlightElement.mjs +1 -1
  120. package/dist/qa/QaContext.d.ts +29 -0
  121. package/dist/qa/QaContext.mjs +73 -0
  122. package/dist/qa/QaLayer.d.ts +9 -0
  123. package/dist/qa/QaLayer.mjs +69 -0
  124. package/dist/qa/checks/contrast.d.ts +6 -0
  125. package/dist/qa/checks/contrast.mjs +23 -0
  126. package/dist/qa/checks/dom.d.ts +15 -0
  127. package/dist/qa/checks/dom.mjs +4 -0
  128. package/dist/qa/checks/headings.d.ts +6 -0
  129. package/dist/qa/checks/headings.mjs +28 -0
  130. package/dist/qa/checks/images.d.ts +6 -0
  131. package/dist/qa/checks/images.mjs +20 -0
  132. package/dist/qa/checks/index.d.ts +15 -0
  133. package/dist/qa/checks/index.mjs +47 -0
  134. package/dist/qa/checks/names.d.ts +9 -0
  135. package/dist/qa/checks/names.mjs +27 -0
  136. package/dist/qa/checks/overflow.d.ts +3 -0
  137. package/dist/qa/checks/overflow.mjs +24 -0
  138. package/dist/qa/checks/targets.d.ts +8 -0
  139. package/dist/qa/checks/targets.mjs +17 -0
  140. package/dist/qa/findings.d.ts +5 -0
  141. package/dist/qa/findings.mjs +11 -0
  142. package/dist/qa/inspect/colour.d.ts +33 -0
  143. package/dist/qa/inspect/colour.mjs +111 -0
  144. package/dist/qa/inspect/describe.d.ts +32 -0
  145. package/dist/qa/inspect/describe.mjs +42 -0
  146. package/dist/qa/inspect/measure.d.ts +20 -0
  147. package/dist/qa/inspect/measure.mjs +23 -0
  148. package/dist/qa/inspect/rules.d.ts +12 -0
  149. package/dist/qa/inspect/rules.mjs +29 -0
  150. package/dist/qa/overlays/QaBoxModel.d.ts +9 -0
  151. package/dist/qa/overlays/QaBoxModel.mjs +49 -0
  152. package/dist/qa/overlays/QaContrastBadge.d.ts +7 -0
  153. package/dist/qa/overlays/QaContrastBadge.mjs +13 -0
  154. package/dist/qa/overlays/QaGrid.d.ts +10 -0
  155. package/dist/qa/overlays/QaGrid.mjs +24 -0
  156. package/dist/qa/overlays/QaInspector.d.ts +7 -0
  157. package/dist/qa/overlays/QaInspector.mjs +50 -0
  158. package/dist/qa/overlays/QaMeasure.d.ts +7 -0
  159. package/dist/qa/overlays/QaMeasure.mjs +39 -0
  160. package/dist/qa/overlays/QaSwatch.d.ts +6 -0
  161. package/dist/qa/overlays/QaSwatch.mjs +11 -0
  162. package/dist/qa/overlays/QaTabOrder.d.ts +6 -0
  163. package/dist/qa/overlays/QaTabOrder.mjs +39 -0
  164. package/dist/qa/overlays/QaTooltip.d.ts +6 -0
  165. package/dist/qa/overlays/QaTooltip.mjs +65 -0
  166. package/dist/qa/overlays/QaViewport.d.ts +10 -0
  167. package/dist/qa/overlays/QaViewport.mjs +27 -0
  168. package/dist/qa/qaCss.d.ts +12 -0
  169. package/dist/qa/qaCss.mjs +45 -0
  170. package/dist/qa/qaSettings.d.ts +38 -0
  171. package/dist/qa/qaSettings.mjs +28 -0
  172. package/dist/qa/tabOrder.d.ts +2 -0
  173. package/dist/qa/tabOrder.mjs +8 -0
  174. package/dist/qa/usePageBox.d.ts +13 -0
  175. package/dist/qa/usePageBox.mjs +23 -0
  176. package/package.json +371 -31
  177. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsAttributes.mjs +0 -19
  178. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsDefinition.mjs +0 -20
  179. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsValue.d.ts +0 -10
  180. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsValue.mjs +0 -31
  181. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementDetails.d.ts +0 -8
  182. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementDetails.mjs +0 -21
  183. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsList.d.ts +0 -8
  184. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsList.mjs +0 -42
  185. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsListItem.d.ts +0 -9
  186. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsListItem.mjs +0 -24
  187. package/dist/components/DevToolsPanel/tabs/TracingViewer/useHighlightElement.d.ts +0 -2
  188. /package/dist/components/DevToolsPanel/tabs/ElementsViewer/{DetailsAttributes.d.ts → components/DetailsAttributes/DetailsAttributes.d.ts} +0 -0
  189. /package/dist/components/DevToolsPanel/tabs/ElementsViewer/{DetailsDefinition.d.ts → components/DetailsDefinition/DetailsDefinition.d.ts} +0 -0
@@ -1,69 +1,75 @@
1
- import e from "./DevToolsContextProvider.mjs";
2
- import t from "./DevToolsRoot.mjs";
3
- import { useIsSelectedInstance as n } from "./instanceRegistry.mjs";
4
- import r from "./useHydrated.mjs";
5
- import i from "./useRegisterQueriesStore.mjs";
6
- import a from "./useRegisterRootStore.mjs";
7
- import o from "@plitzi/plitzi-ui/ContainerShadow";
8
- import s from "@plitzi/plitzi-ui/hooks/useStorage";
9
- import c from "clsx";
10
- import { Suspense as l, lazy as u, useCallback as d, useRef as f, useState as p } from "react";
11
- import { DevStoreScopeContext as m } from "@plitzi/nexus/react";
12
- import h from "@plitzi/sdk-shared/theme/useTheme";
13
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
1
+ import e from "./agentInspector/useAgentInspector.mjs";
2
+ import t from "./DevToolsContextProvider.mjs";
3
+ import n from "./DevToolsRoot.mjs";
4
+ import { useIsSelectedInstance as r } from "./instanceRegistry.mjs";
5
+ import i from "./useHydrated.mjs";
6
+ import a from "./useRegisterQueriesStore.mjs";
7
+ import o from "./useRegisterRootStore.mjs";
8
+ import s from "@plitzi/plitzi-ui/ContainerShadow";
9
+ import c from "@plitzi/plitzi-ui/hooks/useStorage";
10
+ import l from "clsx";
11
+ import { Suspense as u, lazy as d, useCallback as f, useRef as p, useState as m } from "react";
12
+ import { DevStoreScopeContext as h } from "@plitzi/nexus/react";
13
+ import g from "@plitzi/sdk-shared/theme/useTheme";
14
+ import { jsx as _, jsxs as v } from "react/jsx-runtime";
14
15
  //#region src/DevToolsContainer.tsx
15
- var v = u(() => import("./components/DevToolsOverlay/index.mjs")), y = "horizontal", b = 0, x = ({ children: u, className: x, innerClassName: S, enabled: C = !1, instanceId: w, renderMode: T = "default", scroll: E = "container", devToolsStyle: D = "", devToolsStyleLink: O = "" }) => {
16
- let { resolvedTheme: k } = h(), [A, j] = s("plitzi-sdk.dev-tools.orientation", y), [M, N] = s("plitzi-sdk.dev-tools.collapsed", !0), [P, F] = s("plitzi-sdk.dev-tools.tab", "logs"), [I, L] = p(), R = f(void 0);
17
- R.current ||= `sdk-instance-${++b}`;
18
- let z = w || R.current, B = r(), V = B ? A : y, H = n(z, C);
19
- a(C), i(H, z);
20
- let U = d((e) => j(e), [j]), W = d((e) => {
21
- e && F("logs"), L(e), N(!1);
22
- }, [N, F]), G = d(() => N(!0), [N]), K = d((e) => {
23
- L(void 0), F(e);
24
- }, [F]);
25
- if (!C) return u;
26
- let q = E === "document" && (!B || M), J = H && B && /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g(e, { children: /* @__PURE__ */ _(l, {
16
+ var y = d(() => import("./components/DevToolsOverlay/index.mjs")), b = "horizontal", x = 0, S = ({ children: d, className: S, innerClassName: C, enabled: w = !1, instanceId: T, renderMode: E = "default", scroll: D = "container", qa: O = !1, devToolsStyle: k = "", devToolsStyleLink: A = "" }) => {
17
+ let { resolvedTheme: j } = g(), [M, N] = c("plitzi-sdk.dev-tools.orientation", b), [P, F] = c("plitzi-sdk.dev-tools.collapsed", !0), [I, L] = c("plitzi-sdk.dev-tools.tab", "logs"), [R, z] = m(), B = p(void 0), V = p(null);
18
+ B.current ||= `sdk-instance-${++x}`;
19
+ let H = T || B.current, U = i(), W = U ? M : b, G = r(H, w);
20
+ o(w), a(G, H), e(G);
21
+ let K = f((e) => N(e), [N]), q = f((e) => {
22
+ e && L("logs"), z(e), F(!1);
23
+ }, [F, L]), J = f(() => F(!0), [F]), Y = f((e) => {
24
+ z(void 0), L(e);
25
+ }, [L]);
26
+ if (!w) return d;
27
+ let X = D === "document" && (!U || P), Z = G && U && /* @__PURE__ */ _(n, { children: /* @__PURE__ */ _(t, { children: /* @__PURE__ */ v(u, {
27
28
  fallback: null,
28
- children: [T === "default" && /* @__PURE__ */ g(v, {
29
- className: c({ dark: k === "dark" }),
30
- collapsed: M,
31
- orientation: V,
32
- tabSelected: P,
33
- logTypeFilter: I,
34
- onOpen: W,
35
- onCollapse: G,
36
- onTabSelect: K,
37
- onChangeOrientation: U
38
- }), T === "shadow" && /* @__PURE__ */ _(o, { children: [O && /* @__PURE__ */ g(o.Link, { href: O }), /* @__PURE__ */ _(o.Content, { children: [/* @__PURE__ */ g("style", { dangerouslySetInnerHTML: { __html: D } }), /* @__PURE__ */ g(v, {
39
- className: c({ dark: k === "dark" }),
40
- collapsed: M,
41
- orientation: V,
42
- tabSelected: P,
43
- logTypeFilter: I,
44
- onOpen: W,
45
- onCollapse: G,
46
- onTabSelect: K,
47
- onChangeOrientation: U
29
+ children: [E === "default" && /* @__PURE__ */ _(y, {
30
+ className: l({ dark: j === "dark" }),
31
+ collapsed: P,
32
+ orientation: W,
33
+ tabSelected: I,
34
+ logTypeFilter: R,
35
+ onOpen: q,
36
+ onCollapse: J,
37
+ onTabSelect: Y,
38
+ onChangeOrientation: K,
39
+ pageRef: V,
40
+ qa: O
41
+ }), E === "shadow" && /* @__PURE__ */ v(s, { children: [A && /* @__PURE__ */ _(s.Link, { href: A }), /* @__PURE__ */ v(s.Content, { children: [/* @__PURE__ */ _("style", { dangerouslySetInnerHTML: { __html: k } }), /* @__PURE__ */ _(y, {
42
+ className: l({ dark: j === "dark" }),
43
+ collapsed: P,
44
+ orientation: W,
45
+ tabSelected: I,
46
+ logTypeFilter: R,
47
+ onOpen: q,
48
+ onCollapse: J,
49
+ onTabSelect: Y,
50
+ onChangeOrientation: K,
51
+ pageRef: V,
52
+ qa: O
48
53
  })] })] })]
49
54
  }) }) });
50
- return /* @__PURE__ */ _("div", {
51
- className: c("relative flex min-w-0 grow", {
52
- "overflow-auto": !q,
53
- "flex-col": q || V === "horizontal",
54
- "h-screen": !q && V === "vertical"
55
- }, x),
56
- children: [/* @__PURE__ */ g(m, {
57
- value: z,
58
- children: /* @__PURE__ */ g("div", {
59
- className: c("grow", { "basis-0 flex-col overflow-auto": !q }, S),
60
- children: u
55
+ return /* @__PURE__ */ v("div", {
56
+ className: l("relative flex min-w-0 grow", {
57
+ "overflow-auto": !X,
58
+ "flex-col": X || W === "horizontal",
59
+ "h-screen": !X && W === "vertical"
60
+ }, S),
61
+ children: [/* @__PURE__ */ _(h, {
62
+ value: H,
63
+ children: /* @__PURE__ */ _("div", {
64
+ ref: V,
65
+ className: l("grow", { "basis-0 flex-col overflow-auto": !X }, C),
66
+ children: d
61
67
  })
62
- }), q ? /* @__PURE__ */ g("div", {
68
+ }), X ? /* @__PURE__ */ _("div", {
63
69
  className: "sticky bottom-0 h-0",
64
- children: J
65
- }) : J]
70
+ children: Z
71
+ }) : Z]
66
72
  });
67
73
  };
68
74
  //#endregion
69
- export { x as default };
75
+ export { S as default };
@@ -0,0 +1,22 @@
1
+ import { Log } from '@plitzi/sdk-shared';
2
+ /** One step of a flow that ran, in words. */
3
+ export type FlowStep = {
4
+ title: string;
5
+ action: string;
6
+ status: string;
7
+ ms: number;
8
+ error?: string;
9
+ };
10
+ /** A flow that ran: what fired it, on what, how it ended, and every step it took. */
11
+ export type FlowRun = {
12
+ at: string;
13
+ trigger: string;
14
+ on?: string;
15
+ status: string;
16
+ ms: number;
17
+ steps: FlowStep[];
18
+ };
19
+ /** A finished flow, from the log the interactions write; anything else (a note about one step) is not one. */
20
+ export declare const flowRunOf: (log: Log) => FlowRun | undefined;
21
+ /** One line for the console: what fired, where, and how it ended. */
22
+ export declare const flowRunLine: (run: FlowRun) => string;
@@ -0,0 +1,26 @@
1
+ //#region src/agentInspector/flowRuns.ts
2
+ var e = (e) => typeof e == "object" && "nodes" in e && "startTime" in e && "node" in e, t = (e) => {
3
+ if (e.status === "failed") return e.result instanceof Error ? e.result.message : typeof e.result == "string" ? e.result : void 0;
4
+ }, n = (n) => {
5
+ if (n.category !== "interactions" || !e(n.params)) return;
6
+ let { node: r, hostElementId: i, status: a, startTime: o, endTime: s, nodes: c } = n.params, l = Object.values(c).filter((e) => e.node.id !== r.id).toSorted((e, t) => e.startTime - t.startTime).map((e) => {
7
+ let n = t(e);
8
+ return {
9
+ title: e.node.title,
10
+ action: e.node.action,
11
+ status: e.status,
12
+ ms: Math.round(e.endTime - e.startTime),
13
+ ...n === void 0 ? {} : { error: n }
14
+ };
15
+ });
16
+ return {
17
+ at: n.time ?? "",
18
+ trigger: `${r.title} [${r.action}]`,
19
+ ...i === void 0 ? {} : { on: i },
20
+ status: a,
21
+ ms: Math.round(s - o),
22
+ steps: l
23
+ };
24
+ }, r = (e) => `[flow] ${e.trigger}${e.on ? ` on ${e.on}` : ""} → ${e.status} (${String(e.steps.length)} steps, ${String(e.ms)}ms)` + e.steps.filter((e) => e.error !== void 0).map((e) => `\n ✗ ${e.title} [${e.action}]: ${e.error ?? ""}`).join("");
25
+ //#endregion
26
+ export { r as flowRunLine, n as flowRunOf };
@@ -0,0 +1,27 @@
1
+ import { FlowRun } from './flowRuns';
2
+ import { ElementReport } from './report';
3
+ import { DevStore } from '@plitzi/nexus';
4
+ /** `window.__plitzi`: the page's state, data, elements and flows, in text, for whoever cannot read the panel. */
5
+ export type AgentInspector = {
6
+ help: () => string;
7
+ state: (key?: string) => unknown;
8
+ setState: (key: string, value: unknown) => void;
9
+ sources: (name?: string) => unknown;
10
+ element: (id: string) => ElementReport | undefined;
11
+ flows: (limit?: number) => FlowRun[];
12
+ watch: (on?: boolean) => string;
13
+ };
14
+ export type AgentInspectorOptions = {
15
+ /** The root store: the schema, `runtime.state`, every element's UI state. */
16
+ root: DevStore;
17
+ /** Writes one key of `runtime.state`, as a `setState` step does. */
18
+ writeState: (key: string, value: unknown) => void;
19
+ /** Every store the dev tools know — a provider's data lives in its own. */
20
+ stores: () => readonly DevStore[];
21
+ /** The flows that ran, newest last. */
22
+ runs: () => readonly FlowRun[];
23
+ /** Whether each flow is said in the console as it ends. */
24
+ setWatching: (on: boolean) => void;
25
+ document: Document;
26
+ };
27
+ export declare const createAgentInspector: ({ root, writeState, stores, runs, setWatching, document }: AgentInspectorOptions) => AgentInspector;
@@ -0,0 +1,20 @@
1
+ import { elementReport as e, plain as t, recordAt as n } from "./report.mjs";
2
+ //#region src/agentInspector/inspector.ts
3
+ var r = "window.__plitzi — this page, in text (debug mode only):\n state(key?) runtime.state, or one key of it\n setState(key, value) writes runtime.state.<key>, as a setState step would\n sources(name?) every source's current value by name (apiContainer_site, list_products…), or one\n element(id) an element by its id, in a page or a component: type, attributes, what it reads, its own state,\n the component it places, copies, on screen, box\n flows(limit = 20) the last flows that ran: trigger, element, status, every step with its time and error\n watch(on = true) one console line per flow as it ends", i = ({ root: i, writeState: a, stores: o, runs: s, setWatching: c, document: l }) => ({
4
+ help: () => r,
5
+ state: (e) => {
6
+ let r = n(i.getState(), "runtime", "state");
7
+ return t(e === void 0 ? r : r[e]);
8
+ },
9
+ setState: a,
10
+ sources: (e) => {
11
+ let r = {};
12
+ for (let e of [i, ...o()]) Object.assign(r, n(e.getOwnState(), "runtime", "sources"));
13
+ return t(e === void 0 ? r : r[e]);
14
+ },
15
+ element: (t) => e(i.getState(), t, l),
16
+ flows: (e = 20) => s().slice(-e),
17
+ watch: (e = !0) => (c(e), e ? "Each flow is said in the console as it ends." : "Flows are no longer said in the console.")
18
+ });
19
+ //#endregion
20
+ export { i as createAgentInspector };
@@ -0,0 +1,36 @@
1
+ /** An element as it is asked about — by the panel, by `window.__plitzi.element()` and through it `plitzi check`. */
2
+ export type ElementReport = {
3
+ id: string;
4
+ type?: string;
5
+ /** The component whose tree holds it, when it is inside one rather than on a page or a layout. */
6
+ inComponent?: string;
7
+ /** The component it places, when it is an instance — and what it hands in is among its attributes. */
8
+ instanceOf?: string;
9
+ attributes?: Record<string, unknown>;
10
+ /** What it reads: each binding's target, its source and, when it has one, its template. */
11
+ bindings?: {
12
+ category: string;
13
+ to: string;
14
+ source: string;
15
+ template?: string;
16
+ }[];
17
+ /** The element's own UI state — an open dropdown, a tab — as the runtime keeps it. */
18
+ state?: unknown;
19
+ /** How many copies are on the page: a list row's elements are one per row, a component's one per instance. */
20
+ copies: number;
21
+ visible: boolean;
22
+ box?: {
23
+ x: number;
24
+ y: number;
25
+ width: number;
26
+ height: number;
27
+ };
28
+ };
29
+ /** A value as JSON can carry it: functions left out, a cycle cut, depth bounded. */
30
+ export declare const plain: (value: unknown, depth?: number, seen?: WeakSet<object>) => unknown;
31
+ export declare const recordAt: (value: unknown, ...path: string[]) => Record<string, unknown>;
32
+ /**
33
+ * What an element is and how it is doing, read from the root store's state and the page: its type and attributes, what
34
+ * it binds to, its own state, and where it is on screen. Undefined for an id neither the document nor the page knows.
35
+ */
36
+ export declare const elementReport: (state: unknown, id: string, document: Document) => ElementReport | undefined;
@@ -0,0 +1,53 @@
1
+ import { isRecord as e } from "@plitzi/sdk-shared/helpers/isRecord";
2
+ //#region src/agentInspector/report.ts
3
+ var t = (e, n = 0, r = /* @__PURE__ */ new WeakSet()) => {
4
+ if (typeof e != "function") return typeof e != "object" || !e ? e : r.has(e) || n > 12 ? "[…]" : (r.add(e), Array.isArray(e) ? e.map((e) => t(e, n + 1, r)) : Object.fromEntries(Object.entries(e).map(([e, i]) => [e, t(i, n + 1, r)]).filter(([, e]) => e !== void 0)));
5
+ }, n = (t, ...n) => {
6
+ let r = t;
7
+ for (let t of n) r = e(r) ? r[t] : void 0;
8
+ return e(r) ? r : {};
9
+ }, r = (e) => Array.isArray(e) ? e : [], i = (e) => Object.entries(n(e, "definition", "bindings")).flatMap(([e, t]) => r(t).flatMap((t) => {
10
+ let { to: i, source: a, transformers: o } = n(t), s = r(o).map((e) => n(e, "params").template).find((e) => typeof e == "string");
11
+ return typeof i == "string" && typeof a == "string" ? [{
12
+ category: e,
13
+ to: i,
14
+ source: a,
15
+ ...typeof s == "string" ? { template: s } : {}
16
+ }] : [];
17
+ })), a = (e, t) => {
18
+ let r = n(e, "flat");
19
+ if (Object.hasOwn(r, t)) return { element: r[t] };
20
+ for (let [r, i] of Object.entries(n(e, "components"))) {
21
+ let e = n(i, "flat");
22
+ if (Object.hasOwn(e, t)) return {
23
+ element: e[t],
24
+ inComponent: r
25
+ };
26
+ }
27
+ return {};
28
+ }, o = (r, o, s) => {
29
+ let { element: c, inComponent: l } = a(n(r, "schema"), o), u = Array.from(s.querySelectorAll(`[data-id="${o}"]`));
30
+ if (!e(c) && u.length === 0) return;
31
+ let d = u.at(0), f = d?.getBoundingClientRect(), p = d ? getComputedStyle(d) : void 0, m = f !== void 0 && f.width > 0 && f.height > 0 && p?.display !== "none" && p?.visibility !== "hidden", h = n(c, "definition").type, g = n(c, "attributes"), _ = h === "reference" && g.referenceType === "component" && typeof g.referenceId == "string" ? g.referenceId : void 0, v = n(r, "runtime", "elements")[o];
32
+ return {
33
+ id: o,
34
+ ...typeof h == "string" ? { type: h } : {},
35
+ ...l === void 0 ? {} : { inComponent: l },
36
+ ..._ === void 0 ? {} : { instanceOf: _ },
37
+ ...e(c) ? {
38
+ attributes: n(t(c), "attributes"),
39
+ bindings: i(c)
40
+ } : {},
41
+ ...v === void 0 ? {} : { state: t(v) },
42
+ copies: u.length,
43
+ visible: m,
44
+ ...f ? { box: {
45
+ x: Math.round(f.x),
46
+ y: Math.round(f.y),
47
+ width: Math.round(f.width),
48
+ height: Math.round(f.height)
49
+ } } : {}
50
+ };
51
+ };
52
+ //#endregion
53
+ export { o as elementReport, t as plain, n as recordAt };
@@ -0,0 +1,15 @@
1
+ import { AgentInspector } from './inspector';
2
+ declare global {
3
+ interface Window {
4
+ /** This page, in text, for an agent — see `window.__plitzi.help()`. Present in debug mode only. */
5
+ __plitzi?: AgentInspector;
6
+ }
7
+ }
8
+ /**
9
+ * Puts the selected instance's state, sources, elements and flows on `window.__plitzi`, while the dev tools are on.
10
+ *
11
+ * The panel shows all of it to a person; an agent driving the page through a browser reads text, and was left inferring
12
+ * state from classes in the DOM. Every flow that ends is kept from the moment the dev tools mount.
13
+ */
14
+ declare const useAgentInspector: (enabled: boolean) => void;
15
+ export default useAgentInspector;
@@ -0,0 +1,36 @@
1
+ import { flowRunLine as e, flowRunOf as t } from "./flowRuns.mjs";
2
+ import { createAgentInspector as n } from "./inspector.mjs";
3
+ import { useContext as r, useEffect as i } from "react";
4
+ import { StoreContext as a } from "@plitzi/nexus/react";
5
+ import { getDevStoresSnapshot as o } from "@plitzi/nexus";
6
+ import { pConsole as s } from "@plitzi/sdk-shared/devTools";
7
+ import { useCommonStoreSetter as c } from "@plitzi/sdk-shared/store";
8
+ //#region src/agentInspector/useAgentInspector.ts
9
+ var l = 100, u = (u) => {
10
+ let d = r(a), f = c();
11
+ i(() => {
12
+ if (!u || !d) return;
13
+ let r = [], i = !1, a = s.addListener((n) => {
14
+ let a = t(n);
15
+ a && (r.push(a), r.length > l && r.shift(), i && console.info(e(a)));
16
+ }, { replay: !0 }), c = n({
17
+ root: d,
18
+ writeState: (e, t) => f(`runtime.state.${e}`, t),
19
+ stores: () => o().map((e) => e.store),
20
+ runs: () => r,
21
+ setWatching: (e) => {
22
+ i = e;
23
+ },
24
+ document
25
+ });
26
+ return window.__plitzi = c, () => {
27
+ a(), window.__plitzi === c && delete window.__plitzi;
28
+ };
29
+ }, [
30
+ u,
31
+ d,
32
+ f
33
+ ]);
34
+ };
35
+ //#endregion
36
+ export { u as default };
@@ -1,5 +1,6 @@
1
1
  import { Orientation } from '../../DevToolsContainer';
2
2
  import { LogType } from '@plitzi/sdk-shared';
3
+ import { RefObject } from 'react';
3
4
  export type DevToolsOverlayProps = {
4
5
  className?: string;
5
6
  collapsed: boolean;
@@ -10,6 +11,10 @@ export type DevToolsOverlayProps = {
10
11
  onCollapse: () => void;
11
12
  onTabSelect: (tabSelected: string) => void;
12
13
  onChangeOrientation: (orientation: Orientation) => void;
14
+ /** The page's own box, which the QA tools draw over and look in. */
15
+ pageRef: RefObject<HTMLElement | null>;
16
+ /** Whether the QA tab and its layer are offered: only over a page — see `DevToolsContainer`. */
17
+ qa: boolean;
13
18
  };
14
- declare const DevToolsOverlay: ({ className, collapsed, orientation, tabSelected, logTypeFilter, onOpen, onCollapse, onTabSelect, onChangeOrientation }: DevToolsOverlayProps) => import('react').JSX.Element;
19
+ declare const DevToolsOverlay: ({ className, collapsed, orientation, tabSelected, logTypeFilter, onOpen, onCollapse, onTabSelect, onChangeOrientation, pageRef, qa }: DevToolsOverlayProps) => import('react').JSX.Element;
15
20
  export default DevToolsOverlay;
@@ -1,18 +1,28 @@
1
1
  import e from "../DevToolsIndicator/index.mjs";
2
- import t from "../DevToolsPanel/index.mjs";
3
- import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
2
+ import { QaProvider as t } from "../../qa/QaContext.mjs";
3
+ import n from "../../qa/QaLayer.mjs";
4
+ import r from "../DevToolsPanel/index.mjs";
5
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
4
6
  //#region src/components/DevToolsOverlay/DevToolsOverlay.tsx
5
- var a = ({ className: a, collapsed: o, orientation: s, tabSelected: c, logTypeFilter: l, onOpen: u, onCollapse: d, onTabSelect: f, onChangeOrientation: p }) => /* @__PURE__ */ i(n, { children: [o && /* @__PURE__ */ r(e, {
6
- className: a,
7
- onOpen: u
8
- }), !o && /* @__PURE__ */ r(t, {
9
- className: a,
10
- orientation: s,
11
- tabSelected: c,
12
- logTypeFilter: l,
13
- onCollapse: d,
14
- onTabSelect: f,
15
- onChangeOrientation: p
16
- })] });
7
+ var s = ({ className: s, collapsed: c, orientation: l, tabSelected: u, logTypeFilter: d, onOpen: f, onCollapse: p, onTabSelect: m, onChangeOrientation: h, pageRef: g, qa: _ }) => {
8
+ let v = /* @__PURE__ */ o(i, { children: [c && /* @__PURE__ */ a(e, {
9
+ className: s,
10
+ onOpen: f
11
+ }), !c && /* @__PURE__ */ a(r, {
12
+ className: s,
13
+ orientation: l,
14
+ tabSelected: u,
15
+ logTypeFilter: d,
16
+ qa: _,
17
+ onCollapse: p,
18
+ onTabSelect: m,
19
+ onChangeOrientation: h
20
+ })] });
21
+ return _ ? /* @__PURE__ */ o(t, {
22
+ pageRef: g,
23
+ collapsed: c,
24
+ children: [/* @__PURE__ */ a(n, {}), v]
25
+ }) : v;
26
+ };
17
27
  //#endregion
18
- export { a as default };
28
+ export { s as default };
@@ -6,6 +6,8 @@ export type DevToolsBodyProps = {
6
6
  logTypeFilter?: LogType;
7
7
  elementSelected?: string;
8
8
  onSelectElement: (id?: string) => void;
9
+ /** Whether the QA tab is offered. */
10
+ qa?: boolean;
9
11
  };
10
- declare const DevToolsBody: ({ className, tabSelected, orientation, logTypeFilter, elementSelected, onSelectElement }: DevToolsBodyProps) => import('react').JSX.Element;
12
+ declare const DevToolsBody: ({ className, tabSelected, orientation, logTypeFilter, elementSelected, onSelectElement, qa }: DevToolsBodyProps) => import('react').JSX.Element;
11
13
  export default DevToolsBody;
@@ -1,44 +1,48 @@
1
1
  import e from "./tabs/ActionsViewer/index.mjs";
2
2
  import t from "./tabs/CacheViewer/index.mjs";
3
3
  import n from "./tabs/ElementsViewer/index.mjs";
4
- import r from "./tabs/HistoryViewer/index.mjs";
5
- import i from "./tabs/Logs/index.mjs";
6
- import a from "./tabs/PluginsViewer/PluginsViewer.mjs";
7
- import o from "./tabs/StoreViewer/index.mjs";
8
- import s from "./tabs/TracingViewer/TracingViewer.mjs";
9
- import c from "./tabs/VariablesViewer/index.mjs";
10
- import l from "clsx";
11
- import { use as u } from "react";
12
- import d from "@plitzi/sdk-shared/devTools/DevToolsContext";
13
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
4
+ import r from "./tabs/FlagsViewer/index.mjs";
5
+ import i from "./tabs/HistoryViewer/index.mjs";
6
+ import a from "./tabs/Logs/index.mjs";
7
+ import o from "./tabs/PluginsViewer/PluginsViewer.mjs";
8
+ import s from "./tabs/QaViewer/index.mjs";
9
+ import c from "./tabs/StoreViewer/index.mjs";
10
+ import l from "./tabs/TracingViewer/TracingViewer.mjs";
11
+ import u from "./tabs/VariablesViewer/index.mjs";
12
+ import d from "clsx";
13
+ import { use as f } from "react";
14
+ import p from "@plitzi/sdk-shared/devTools/DevToolsContext";
15
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
14
16
  //#region src/components/DevToolsPanel/DevToolsBody.tsx
15
- var m = ({ className: m, tabSelected: h, orientation: g, logTypeFilter: _, elementSelected: v, onSelectElement: y }) => {
16
- let { logs: b, clearLogs: x } = u(d);
17
- return /* @__PURE__ */ f("div", {
18
- className: l("flex h-full w-full grow overflow-auto bg-white dark:bg-zinc-900", m),
19
- children: /* @__PURE__ */ p("div", {
17
+ var g = ({ className: g, tabSelected: _, orientation: v, logTypeFilter: y, elementSelected: b, onSelectElement: x, qa: S = !1 }) => {
18
+ let { logs: C, clearLogs: w } = f(p);
19
+ return /* @__PURE__ */ m("div", {
20
+ className: d("flex h-full w-full grow overflow-auto bg-white dark:bg-zinc-900", g),
21
+ children: /* @__PURE__ */ h("div", {
20
22
  className: "flex w-full flex-col",
21
23
  children: [
22
- h === "logs" && /* @__PURE__ */ f(i, {
23
- items: b,
24
- orientation: g,
25
- logTypeFilter: _,
26
- onClear: x
24
+ _ === "logs" && /* @__PURE__ */ m(a, {
25
+ items: C,
26
+ orientation: v,
27
+ logTypeFilter: y,
28
+ onClear: w
27
29
  }),
28
- h === "store" && /* @__PURE__ */ f(o, { elementSelected: v }),
29
- h === "cache" && /* @__PURE__ */ f(t, {}),
30
- h === "history" && /* @__PURE__ */ f(r, {}),
31
- h === "variables" && /* @__PURE__ */ f(c, {}),
32
- h === "elements" && /* @__PURE__ */ f(n, {
33
- elementSelected: v,
34
- onSelectElement: y
30
+ _ === "store" && /* @__PURE__ */ m(c, { elementSelected: b }),
31
+ _ === "cache" && /* @__PURE__ */ m(t, {}),
32
+ _ === "history" && /* @__PURE__ */ m(i, {}),
33
+ _ === "variables" && /* @__PURE__ */ m(u, {}),
34
+ _ === "flags" && /* @__PURE__ */ m(r, {}),
35
+ _ === "elements" && /* @__PURE__ */ m(n, {
36
+ elementSelected: b,
37
+ onSelectElement: x
35
38
  }),
36
- h === "plugins" && /* @__PURE__ */ f(a, {}),
37
- h === "tracing" && /* @__PURE__ */ f(s, {}),
38
- h === "actions" && /* @__PURE__ */ f(e, {})
39
+ _ === "plugins" && /* @__PURE__ */ m(o, {}),
40
+ _ === "tracing" && /* @__PURE__ */ m(l, {}),
41
+ _ === "actions" && /* @__PURE__ */ m(e, {}),
42
+ S && _ === "qa" && /* @__PURE__ */ m(s, {})
39
43
  ]
40
44
  })
41
45
  });
42
46
  };
43
47
  //#endregion
44
- export { m as default };
48
+ export { g as default };
@@ -6,6 +6,8 @@ export type DevToolsHeaderProps = {
6
6
  onChangeOrientation?: (orientation: Orientation) => void;
7
7
  onCollapse?: () => void;
8
8
  onTabSelect?: (tabIndex: string) => void;
9
+ /** Whether the QA tab is offered. */
10
+ qa?: boolean;
9
11
  };
10
- declare const DevToolsHeader: ({ tabSelected, orientation, onChangeOrientation, onCollapse, onTabSelect }: DevToolsHeaderProps) => import('react').JSX.Element;
12
+ declare const DevToolsHeader: ({ tabSelected, orientation, onChangeOrientation, onCollapse, onTabSelect, qa }: DevToolsHeaderProps) => import('react').JSX.Element;
11
13
  export default DevToolsHeader;
@@ -36,6 +36,11 @@ var s = [
36
36
  label: "Variables",
37
37
  icon: "fa-solid fa-code"
38
38
  },
39
+ {
40
+ id: "flags",
41
+ label: "Flags",
42
+ icon: "fa-solid fa-flag"
43
+ },
39
44
  {
40
45
  id: "plugins",
41
46
  label: "Plugins",
@@ -50,19 +55,24 @@ var s = [
50
55
  id: "actions",
51
56
  label: "Actions",
52
57
  icon: "fa-solid fa-bolt"
58
+ },
59
+ {
60
+ id: "qa",
61
+ label: "QA",
62
+ icon: "fa-solid fa-ruler-combined"
53
63
  }
54
- ], c = ({ tabSelected: c, orientation: l = "vertical", onChangeOrientation: u, onCollapse: d, onTabSelect: f }) => {
55
- let { options: p, value: m, onSelect: h } = e(), g = i(() => {
64
+ ], c = ({ tabSelected: c, orientation: l = "vertical", onChangeOrientation: u, onCollapse: d, onTabSelect: f, qa: p = !1 }) => {
65
+ let m = p ? s : s.filter((e) => e.id !== "qa"), { options: h, value: g, onSelect: _ } = e(), v = i(() => {
56
66
  u?.(l === "horizontal" ? "vertical" : "horizontal");
57
- }, [l, u]), _ = i((e) => () => f?.(e), [f]), v = i((e) => h(e.target.value), [h]);
67
+ }, [l, u]), y = i((e) => () => f?.(e), [f]), b = i((e) => _(e.target.value), [_]);
58
68
  return /* @__PURE__ */ o("div", {
59
69
  className: "flex shrink-0 items-stretch justify-between border-b border-zinc-200 bg-zinc-100 select-none dark:border-zinc-700 dark:bg-zinc-800",
60
70
  children: [/* @__PURE__ */ a("div", {
61
71
  className: "flex items-stretch overflow-x-auto",
62
- children: s.map((e) => {
72
+ children: m.map((e) => {
63
73
  let t = c === e.id;
64
74
  return /* @__PURE__ */ o("button", {
65
- onClick: _(e.id),
75
+ onClick: y(e.id),
66
76
  className: r("flex cursor-pointer items-center gap-1.5 border-b-2 px-3 py-2 font-medium transition-colors", {
67
77
  "border-violet-500 text-violet-600 dark:text-violet-400": t,
68
78
  "border-transparent 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": !t
@@ -73,12 +83,12 @@ var s = [
73
83
  }), /* @__PURE__ */ o("div", {
74
84
  className: "flex shrink-0 items-center gap-1 border-l border-zinc-200 px-2 dark:border-zinc-700",
75
85
  children: [
76
- p.length > 0 && /* @__PURE__ */ a("select", {
77
- value: m ?? "",
78
- onChange: v,
86
+ h.length > 0 && /* @__PURE__ */ a("select", {
87
+ value: g ?? "",
88
+ onChange: b,
79
89
  title: "Instance / StoreProvider driving the panel",
80
90
  className: "max-w-52 rounded border border-zinc-300 bg-white px-1 py-0.5 text-[11px] text-zinc-700 dark:border-zinc-600 dark:bg-zinc-900 dark:text-zinc-200",
81
- children: p.map((e) => /* @__PURE__ */ a("optgroup", {
91
+ children: h.map((e) => /* @__PURE__ */ a("optgroup", {
82
92
  label: e.label,
83
93
  children: e.options.map((e) => /* @__PURE__ */ a("option", {
84
94
  value: e.value,
@@ -90,7 +100,7 @@ var s = [
90
100
  /* @__PURE__ */ a(t, {
91
101
  iconClassName: r("fa-solid fa-table-columns", { "rotate-90": l === "vertical" }),
92
102
  title: l === "horizontal" ? "Switch to side panel" : "Switch to bottom panel",
93
- onClick: g
103
+ onClick: v
94
104
  }),
95
105
  /* @__PURE__ */ a(t, {
96
106
  iconClassName: "fa-solid fa-xmark",
@@ -11,6 +11,8 @@ export type DevToolsPanelProps = {
11
11
  onCollapse?: () => void;
12
12
  onTabSelect: (tabSelected: string) => void;
13
13
  onChangeOrientation?: (orientation: Orientation) => void;
14
+ /** Whether the QA tab is offered. */
15
+ qa?: boolean;
14
16
  };
15
- declare const DevToolsPanel: ({ className, orientation, tabSelected, logTypeFilter, onCollapse, onTabSelect, onChangeOrientation }: DevToolsPanelProps) => import('react').JSX.Element;
17
+ declare const DevToolsPanel: ({ className, orientation, tabSelected, logTypeFilter, onCollapse, onTabSelect, onChangeOrientation, qa }: DevToolsPanelProps) => import('react').JSX.Element;
16
18
  export default DevToolsPanel;