@plitzi/sdk-dev-tools 0.37.1 → 0.37.3

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 (98) hide show
  1. package/CHANGELOG.md +1300 -0
  2. package/dist/DevToolsContainer.d.ts +11 -1
  3. package/dist/DevToolsContainer.mjs +65 -57
  4. package/dist/DevToolsContextProvider.d.ts +1 -1
  5. package/dist/DevToolsContextProvider.mjs +8 -8
  6. package/dist/DevToolsRoot.d.ts +1 -1
  7. package/dist/DevToolsRoot.mjs +9 -9
  8. package/dist/components/DevToolsIndicator/DevToolsIndicator.d.ts +1 -1
  9. package/dist/components/DevToolsOverlay/DevToolsOverlay.d.ts +1 -1
  10. package/dist/components/DevToolsPanel/DevToolsBody.d.ts +1 -1
  11. package/dist/components/DevToolsPanel/DevToolsButton.d.ts +1 -1
  12. package/dist/components/DevToolsPanel/DevToolsHeader.d.ts +1 -1
  13. package/dist/components/DevToolsPanel/DevToolsPanel.d.ts +1 -1
  14. package/dist/components/DevToolsPanel/DevToolsSubHeader.d.ts +1 -1
  15. package/dist/components/DevToolsPanel/DevToolsSubHeader.mjs +8 -8
  16. package/dist/components/DevToolsPanel/ThemeControl.d.ts +1 -1
  17. package/dist/components/DevToolsPanel/tabs/ActionsViewer/ActionsViewer.d.ts +1 -1
  18. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/ActionsToolbar/ActionsToolbar.d.ts +1 -1
  19. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/DetailShell/DetailShell.d.ts +1 -1
  20. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/FlowTimeline/FlowTimeline.d.ts +1 -1
  21. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/RunDetail/RunDetail.d.ts +1 -1
  22. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/RunList/RunList.d.ts +1 -1
  23. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/RunRow/RunRow.d.ts +1 -1
  24. package/dist/components/DevToolsPanel/tabs/ActionsViewer/components/StepRow/StepRow.d.ts +1 -1
  25. package/dist/components/DevToolsPanel/tabs/CacheViewer/CacheViewer.d.ts +1 -1
  26. package/dist/components/DevToolsPanel/tabs/CacheViewer/components/CacheRow/CacheRow.d.ts +1 -1
  27. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsAttributes.d.ts +1 -1
  28. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsDefinition.d.ts +1 -1
  29. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsValue.d.ts +1 -1
  30. package/dist/components/DevToolsPanel/tabs/ElementsViewer/DetailsValue.mjs +9 -9
  31. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementDetails.d.ts +1 -1
  32. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsList.d.ts +1 -1
  33. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsList.mjs +10 -10
  34. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsListItem.d.ts +1 -1
  35. package/dist/components/DevToolsPanel/tabs/ElementsViewer/ElementsViewer.d.ts +1 -1
  36. package/dist/components/DevToolsPanel/tabs/HistoryViewer/HistoryViewer.d.ts +1 -1
  37. package/dist/components/DevToolsPanel/tabs/HistoryViewer/components/HistoryEntryItem/HistoryEntryItem.d.ts +1 -1
  38. package/dist/components/DevToolsPanel/tabs/HistoryViewer/components/HistoryToolbar/HistoryToolbar.d.ts +1 -1
  39. package/dist/components/DevToolsPanel/tabs/Logs/Log.d.ts +1 -1
  40. package/dist/components/DevToolsPanel/tabs/Logs/LogStatus.d.ts +1 -1
  41. package/dist/components/DevToolsPanel/tabs/Logs/LogStatusIcon.d.ts +1 -1
  42. package/dist/components/DevToolsPanel/tabs/Logs/Logs.d.ts +1 -1
  43. package/dist/components/DevToolsPanel/tabs/Logs/LogsSummary/LogsSummary.d.ts +1 -1
  44. package/dist/components/DevToolsPanel/tabs/Logs/LogsSummary/LogsSummaryItem.d.ts +1 -1
  45. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogAction/LogAction.d.ts +1 -1
  46. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyContent.d.ts +1 -1
  47. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyContent.mjs +8 -8
  48. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyHeader.d.ts +1 -1
  49. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/BodyHeader.mjs +33 -33
  50. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/ExecutionTree/ExecutionTree.d.ts +1 -1
  51. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/ExecutionTree/ExecutionTree.mjs +11 -11
  52. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/ExecutionTree/ExecutionTreeNode.d.ts +1 -1
  53. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/InteractionNode.d.ts +1 -1
  54. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/NodeHeader.d.ts +1 -1
  55. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/NodeMetadata.d.ts +1 -1
  56. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/InteractionNode/NodeWhen.d.ts +1 -1
  57. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteraction.d.ts +1 -1
  58. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionBody.d.ts +1 -1
  59. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionHeader.d.ts +1 -1
  60. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogInteraction/LogInteractionNote.d.ts +1 -1
  61. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigation.d.ts +1 -1
  62. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigationBody.d.ts +1 -1
  63. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigationBody.mjs +26 -26
  64. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNavigation/LogNavigationHeader.d.ts +1 -1
  65. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogNetwork/LogNetwork.d.ts +1 -1
  66. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogStore/LogStore.d.ts +1 -1
  67. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogStore/LogStoreBody.d.ts +1 -1
  68. package/dist/components/DevToolsPanel/tabs/Logs/categories/LogStore/LogStoreHeader.d.ts +1 -1
  69. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginDetails.d.ts +1 -1
  70. package/dist/components/DevToolsPanel/tabs/PluginsViewer/PluginsViewer.d.ts +1 -1
  71. package/dist/components/DevToolsPanel/tabs/StoreViewer/StoreViewer.d.ts +1 -1
  72. package/dist/components/DevToolsPanel/tabs/StoreViewer/components/FreshnessMark/FreshnessMark.d.ts +1 -1
  73. package/dist/components/DevToolsPanel/tabs/TracingViewer/TracingViewer.d.ts +1 -1
  74. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/CommitCause/CommitCause.d.ts +1 -1
  75. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/CommitStrip/CommitStrip.d.ts +1 -1
  76. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/DetailSidebar/DetailSidebar.d.ts +1 -1
  77. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/DurationLegend/DurationLegend.d.ts +1 -1
  78. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/FlameFrame.d.ts +1 -1
  79. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/Flamegraph/Flamegraph.d.ts +1 -1
  80. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/HotspotSidebar/HotspotSidebar.d.ts +1 -1
  81. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/HotspotsList/HotspotsList.d.ts +1 -1
  82. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/MetricToggle/MetricToggle.d.ts +1 -1
  83. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/RankedList/RankedList.d.ts +1 -1
  84. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/SidebarShell/SidebarEmpty.d.ts +1 -1
  85. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/SidebarShell/SidebarShell.d.ts +1 -1
  86. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/SidebarToggle/SidebarToggle.d.ts +1 -1
  87. package/dist/components/DevToolsPanel/tabs/TracingViewer/components/TracingToolbar/TracingToolbar.d.ts +1 -1
  88. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariableValue.d.ts +1 -1
  89. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesList.d.ts +1 -1
  90. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesListItem.d.ts +1 -1
  91. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesStyleList.d.ts +1 -1
  92. package/dist/components/DevToolsPanel/tabs/VariablesViewer/VariablesViewer.d.ts +1 -1
  93. package/dist/components/List/List.d.ts +1 -1
  94. package/dist/components/List/ListItem.d.ts +1 -1
  95. package/dist/components/PayloadView/PayloadView.d.ts +1 -1
  96. package/dist/scope/useScope.mjs +14 -14
  97. package/dist/useRegisterQueriesStore.mjs +3 -3
  98. package/package.json +9 -9
@@ -9,6 +9,16 @@ export type DevToolsContainerProps = {
9
9
  devToolsStyle?: string;
10
10
  devToolsStyleLink?: string;
11
11
  renderMode?: 'default' | 'shadow';
12
+ /**
13
+ * What scrolls while the panel is folded away.
14
+ *
15
+ * `container` (the default) keeps the wrapped app in a box of its own, which is what an application shell that fills
16
+ * its window wants — the builder. `document` is for a PAGE: while the panel is collapsed the page lays out and
17
+ * scrolls exactly as it does without dev tools, so `position: sticky` and `fixed`, scroll restoration and a
18
+ * full-page screenshot mean in development what they mean in production. Opening the panel docks it beside the page
19
+ * either way; a docked panel needs the split.
20
+ */
21
+ scroll?: 'container' | 'document';
12
22
  };
13
- declare const DevToolsContainer: ({ children, className, innerClassName, enabled, instanceId, renderMode, devToolsStyle, devToolsStyleLink }: DevToolsContainerProps) => string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
23
+ declare const DevToolsContainer: ({ children, className, innerClassName, enabled, instanceId, renderMode, scroll, devToolsStyle, devToolsStyleLink }: DevToolsContainerProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import('react').JSX.Element | null | undefined;
14
24
  export default DevToolsContainer;
@@ -1,61 +1,69 @@
1
- import { useIsSelectedInstance as e } from "./instanceRegistry.mjs";
2
- import t from "./components/DevToolsOverlay/index.mjs";
3
- import n from "./DevToolsContextProvider.mjs";
4
- import r from "./DevToolsRoot.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 { useCallback as u, useRef as d, useState as f } from "react";
12
- import { DevStoreScopeContext as p } from "@plitzi/nexus/react";
13
- import m from "@plitzi/sdk-shared/theme/useTheme";
14
- import { jsx as h, jsxs as g } from "react/jsx-runtime";
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";
15
14
  //#region src/DevToolsContainer.tsx
16
- var _ = "horizontal", v = 0, y = ({ children: y, className: b, innerClassName: x, enabled: S = !1, instanceId: C, renderMode: w = "default", devToolsStyle: T = "", devToolsStyleLink: E = "" }) => {
17
- let { resolvedTheme: D } = m(), [O, k] = c("plitzi-sdk.dev-tools.orientation", _), [A, j] = c("plitzi-sdk.dev-tools.collapsed", !0), [M, N] = c("plitzi-sdk.dev-tools.tab", "logs"), [P, F] = f(), I = d(void 0);
18
- I.current ||= `sdk-instance-${++v}`;
19
- let L = C || I.current, R = i(), z = R ? O : _, B = e(L, S);
20
- o(S), a(B, L);
21
- let V = u((e) => k(e), [k]), H = u((e) => {
22
- e && N("logs"), F(e), j(!1);
23
- }, [j, N]), U = u(() => j(!0), [j]), W = u((e) => {
24
- F(void 0), N(e);
25
- }, [N]);
26
- return S ? /* @__PURE__ */ g("div", {
27
- className: l("relative flex grow overflow-auto", {
28
- "flex-col": z === "horizontal",
29
- "h-screen": z === "vertical"
30
- }, b),
31
- children: [/* @__PURE__ */ h(p, {
32
- value: L,
33
- children: /* @__PURE__ */ h("div", {
34
- className: l("grow basis-0 flex-col overflow-auto", x),
35
- children: y
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, {
27
+ 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
48
+ })] })] })]
49
+ }) }) });
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
36
61
  })
37
- }), B && R && /* @__PURE__ */ h(r, { children: /* @__PURE__ */ g(n, { children: [w === "default" && /* @__PURE__ */ h(t, {
38
- className: l({ dark: D === "dark" }),
39
- collapsed: A,
40
- orientation: z,
41
- tabSelected: M,
42
- logTypeFilter: P,
43
- onOpen: H,
44
- onCollapse: U,
45
- onTabSelect: W,
46
- onChangeOrientation: V
47
- }), w === "shadow" && /* @__PURE__ */ g(s, { children: [E && /* @__PURE__ */ h(s.Link, { href: E }), /* @__PURE__ */ g(s.Content, { children: [/* @__PURE__ */ h("style", { dangerouslySetInnerHTML: { __html: T } }), /* @__PURE__ */ h(t, {
48
- className: l({ dark: D === "dark" }),
49
- collapsed: A,
50
- orientation: z,
51
- tabSelected: M,
52
- logTypeFilter: P,
53
- onOpen: H,
54
- onCollapse: U,
55
- onTabSelect: W,
56
- onChangeOrientation: V
57
- })] })] })] }) })]
58
- }) : y;
62
+ }), q ? /* @__PURE__ */ g("div", {
63
+ className: "sticky bottom-0 h-0",
64
+ children: J
65
+ }) : J]
66
+ });
59
67
  };
60
68
  //#endregion
61
- export { y as default };
69
+ export { x as default };
@@ -2,5 +2,5 @@ import { ReactNode } from 'react';
2
2
  export type DevToolsContextProviderProps = {
3
3
  children?: ReactNode;
4
4
  };
5
- declare const DevToolsContextProvider: ({ children }: DevToolsContextProviderProps) => import("react").JSX.Element;
5
+ declare const DevToolsContextProvider: ({ children }: DevToolsContextProviderProps) => import('react').JSX.Element;
6
6
  export default DevToolsContextProvider;
@@ -1,8 +1,8 @@
1
1
  import { useCallback as e, useEffect as t, useMemo as n, useRef as r, useState as i } from "react";
2
- import a from "@plitzi/sdk-shared/devTools/DevToolsContext";
3
- import { jsx as o } from "react/jsx-runtime";
4
- import { omit as s } from "@plitzi/plitzi-ui/helpers";
5
- import { pConsole as c } from "@plitzi/sdk-shared/devTools/utils/PlitziConsole";
2
+ import { omit as a } from "@plitzi/plitzi-ui/helpers";
3
+ import o from "@plitzi/sdk-shared/devTools/DevToolsContext";
4
+ import { pConsole as s } from "@plitzi/sdk-shared/devTools/utils/PlitziConsole";
5
+ import { jsx as c } from "react/jsx-runtime";
6
6
  //#region src/DevToolsContextProvider.tsx
7
7
  var l = ({ children: l }) => {
8
8
  let [u, d] = i([]), [f, p] = i({}), m = r(!1), h = e((e, t, n, r, i) => {
@@ -16,11 +16,11 @@ var l = ({ children: l }) => {
16
16
  }, [d]), g = e((e, t) => p((n) => ({
17
17
  ...n,
18
18
  [e]: t
19
- })), []), _ = e((e) => p((t) => s(t, [e])), []), v = e((e, ...t) => {
19
+ })), []), _ = e((e) => p((t) => a(t, [e])), []), v = e((e, ...t) => {
20
20
  if (e && typeof f[e] == "function") return f[e](...t);
21
21
  }, [f]), y = e(() => d([]), []);
22
- m.current ||= (c.setCallback(h), c.setCallbackAddProvider(g), c.setCallbackRemoveProvider(_), !0), t(() => (c.setCallback(h), c.setCallbackAddProvider(g), c.setCallbackRemoveProvider(_), c.processPendingLogs(), () => {
23
- c.setCallback(void 0), c.setCallbackAddProvider(void 0), c.setCallbackRemoveProvider(void 0), c.flush();
22
+ m.current ||= (s.setCallback(h), s.setCallbackAddProvider(g), s.setCallbackRemoveProvider(_), !0), t(() => (s.setCallback(h), s.setCallbackAddProvider(g), s.setCallbackRemoveProvider(_), s.processPendingLogs(), () => {
23
+ s.setCallback(void 0), s.setCallbackAddProvider(void 0), s.setCallbackRemoveProvider(void 0), s.flush();
24
24
  }), [
25
25
  h,
26
26
  g,
@@ -39,7 +39,7 @@ var l = ({ children: l }) => {
39
39
  y,
40
40
  v
41
41
  ]);
42
- return /* @__PURE__ */ o(a, {
42
+ return /* @__PURE__ */ c(o, {
43
43
  value: b,
44
44
  children: l
45
45
  });
@@ -14,5 +14,5 @@ export type DevToolsRootProps = {
14
14
  * the page's providers is carried over: the root store, plitzi-ui's theme, the theme scope, and the two plugin
15
15
  * registries.
16
16
  */
17
- declare const DevToolsRoot: ({ children }: DevToolsRootProps) => import("react").JSX.Element;
17
+ declare const DevToolsRoot: ({ children }: DevToolsRootProps) => import('react').JSX.Element;
18
18
  export default DevToolsRoot;
@@ -1,17 +1,17 @@
1
1
  import { use as e, useContext as t, useLayoutEffect as n, useRef as r } from "react";
2
2
  import { StoreContext as i } from "@plitzi/nexus/react";
3
3
  import { jsx as a } from "react/jsx-runtime";
4
- import o from "@plitzi/sdk-plugins/PluginsContext";
5
- import s from "@plitzi/sdk-shared/elements/ComponentContext";
6
- import { ThemeContext as c } from "@plitzi/plitzi-ui/Provider";
7
- import { createRoot as l } from "react-dom/client";
4
+ import { ThemeContext as o } from "@plitzi/plitzi-ui/Provider";
5
+ import { createRoot as s } from "react-dom/client";
6
+ import c from "@plitzi/sdk-plugins/PluginsContext";
7
+ import l from "@plitzi/sdk-shared/elements/ComponentContext";
8
8
  import u from "@plitzi/sdk-shared/theme/ThemeScope";
9
9
  //#region src/DevToolsRoot.tsx
10
10
  var d = { display: "contents" }, f = ({ children: f }) => {
11
- let p = r(null), m = r(void 0), h = r(void 0), g = t(i), _ = e(u), v = e(o), y = e(s), b = e(c);
11
+ let p = r(null), m = r(void 0), h = r(void 0), g = t(i), _ = e(u), v = e(c), y = e(l), b = e(o);
12
12
  return n(() => {
13
13
  let e = p.current;
14
- if (e) return clearTimeout(h.current), m.current ??= l(e), () => {
14
+ if (e) return clearTimeout(h.current), m.current ??= s(e), () => {
15
15
  let e = m.current;
16
16
  h.current = setTimeout(() => {
17
17
  e?.unmount(), m.current === e && (m.current = void 0);
@@ -20,13 +20,13 @@ var d = { display: "contents" }, f = ({ children: f }) => {
20
20
  }, []), n(() => {
21
21
  m.current?.render(/* @__PURE__ */ a(i, {
22
22
  value: g,
23
- children: /* @__PURE__ */ a(c, {
23
+ children: /* @__PURE__ */ a(o, {
24
24
  value: b,
25
25
  children: /* @__PURE__ */ a(u, {
26
26
  value: _,
27
- children: /* @__PURE__ */ a(o, {
27
+ children: /* @__PURE__ */ a(c, {
28
28
  value: v,
29
- children: /* @__PURE__ */ a(s, {
29
+ children: /* @__PURE__ */ a(l, {
30
30
  value: y,
31
31
  children: f
32
32
  })
@@ -3,5 +3,5 @@ export type DevToolsIndicatorProps = {
3
3
  className?: string;
4
4
  onOpen: (logType?: LogType) => void;
5
5
  };
6
- declare const DevToolsIndicator: ({ className, onOpen }: DevToolsIndicatorProps) => import("react").JSX.Element;
6
+ declare const DevToolsIndicator: ({ className, onOpen }: DevToolsIndicatorProps) => import('react').JSX.Element;
7
7
  export default DevToolsIndicator;
@@ -11,5 +11,5 @@ export type DevToolsOverlayProps = {
11
11
  onTabSelect: (tabSelected: string) => void;
12
12
  onChangeOrientation: (orientation: Orientation) => void;
13
13
  };
14
- declare const DevToolsOverlay: ({ className, collapsed, orientation, tabSelected, logTypeFilter, onOpen, onCollapse, onTabSelect, onChangeOrientation }: DevToolsOverlayProps) => import("react").JSX.Element;
14
+ declare const DevToolsOverlay: ({ className, collapsed, orientation, tabSelected, logTypeFilter, onOpen, onCollapse, onTabSelect, onChangeOrientation }: DevToolsOverlayProps) => import('react').JSX.Element;
15
15
  export default DevToolsOverlay;
@@ -7,5 +7,5 @@ export type DevToolsBodyProps = {
7
7
  elementSelected?: string;
8
8
  onSelectElement: (id?: string) => void;
9
9
  };
10
- declare const DevToolsBody: ({ className, tabSelected, orientation, logTypeFilter, elementSelected, onSelectElement }: DevToolsBodyProps) => import("react").JSX.Element;
10
+ declare const DevToolsBody: ({ className, tabSelected, orientation, logTypeFilter, elementSelected, onSelectElement }: DevToolsBodyProps) => import('react').JSX.Element;
11
11
  export default DevToolsBody;
@@ -6,5 +6,5 @@ export type DevToolsButtonProps = {
6
6
  title?: string;
7
7
  onClick?: (e: MouseEvent) => void;
8
8
  };
9
- declare const DevToolsButton: ({ className, iconClassName, title, isSelected, onClick }: DevToolsButtonProps) => import("react").JSX.Element;
9
+ declare const DevToolsButton: ({ className, iconClassName, title, isSelected, onClick }: DevToolsButtonProps) => import('react').JSX.Element;
10
10
  export default DevToolsButton;
@@ -7,5 +7,5 @@ export type DevToolsHeaderProps = {
7
7
  onCollapse?: () => void;
8
8
  onTabSelect?: (tabIndex: string) => void;
9
9
  };
10
- declare const DevToolsHeader: ({ tabSelected, orientation, onChangeOrientation, onCollapse, onTabSelect }: DevToolsHeaderProps) => import("react").JSX.Element;
10
+ declare const DevToolsHeader: ({ tabSelected, orientation, onChangeOrientation, onCollapse, onTabSelect }: DevToolsHeaderProps) => import('react').JSX.Element;
11
11
  export default DevToolsHeader;
@@ -12,5 +12,5 @@ export type DevToolsPanelProps = {
12
12
  onTabSelect: (tabSelected: string) => void;
13
13
  onChangeOrientation?: (orientation: Orientation) => void;
14
14
  };
15
- declare const DevToolsPanel: ({ className, orientation, tabSelected, logTypeFilter, onCollapse, onTabSelect, onChangeOrientation }: DevToolsPanelProps) => import("react").JSX.Element;
15
+ declare const DevToolsPanel: ({ className, orientation, tabSelected, logTypeFilter, onCollapse, onTabSelect, onChangeOrientation }: DevToolsPanelProps) => import('react').JSX.Element;
16
16
  export default DevToolsPanel;
@@ -6,5 +6,5 @@ export type DevToolsSubHeaderProps = {
6
6
  elementSelected?: string;
7
7
  onSelectElement: (id?: string) => void;
8
8
  };
9
- declare const DevToolsSubHeader: ({ className, elementSelected, currentPageId, onSelectElement }: DevToolsSubHeaderProps) => import("react").JSX.Element;
9
+ declare const DevToolsSubHeader: ({ className, elementSelected, currentPageId, onSelectElement }: DevToolsSubHeaderProps) => import('react').JSX.Element;
10
10
  export default DevToolsSubHeader;
@@ -1,14 +1,14 @@
1
1
  import e from "./DevToolsButton.mjs";
2
2
  import t from "clsx";
3
3
  import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
4
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- import { throttle as c } from "@plitzi/plitzi-ui/helpers";
4
+ import { throttle as o } from "@plitzi/plitzi-ui/helpers";
5
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
6
  //#region src/components/DevToolsPanel/DevToolsSubHeader.tsx
7
7
  var l = ({ className: l, elementSelected: u, currentPageId: d, onSelectElement: f }) => {
8
8
  let [p, m] = a(!1), h = n((e) => {
9
9
  let { id: t } = e?.dataset ?? {};
10
10
  f(t);
11
- }, [f]), g = i(() => c(h, 100), [h]), _ = n((e) => {
11
+ }, [f]), g = i(() => o(h, 100), [h]), _ = n((e) => {
12
12
  e.target.closest(".plitzi-sdk") && g(e.target.closest("[data-id]"));
13
13
  }, [g]), v = n((e) => {
14
14
  e.target.closest(".plitzi-sdk") && (e.stopPropagation(), e.preventDefault(), m(!1));
@@ -35,22 +35,22 @@ var l = ({ className: l, elementSelected: u, currentPageId: d, onSelectElement:
35
35
  v,
36
36
  _,
37
37
  p
38
- ]), /* @__PURE__ */ s("div", {
38
+ ]), /* @__PURE__ */ c("div", {
39
39
  className: t("flex shrink-0 items-center justify-between gap-2 border-b border-zinc-200 bg-zinc-50 px-2 py-1 dark:border-zinc-700 dark:bg-zinc-800", l),
40
- children: [/* @__PURE__ */ s("div", {
40
+ children: [/* @__PURE__ */ c("div", {
41
41
  className: "flex gap-1",
42
- children: [/* @__PURE__ */ o(e, {
42
+ children: [/* @__PURE__ */ s(e, {
43
43
  iconClassName: "fa-regular fa-hand-pointer",
44
44
  title: "Select an element in the page to inspect it",
45
45
  onClick: y,
46
46
  isSelected: p
47
- }), /* @__PURE__ */ o(e, {
47
+ }), /* @__PURE__ */ s(e, {
48
48
  iconClassName: "fa-regular fa-file",
49
49
  title: "Current Page",
50
50
  onClick: b,
51
51
  isSelected: u === d
52
52
  })]
53
- }), /* @__PURE__ */ o(e, {
53
+ }), /* @__PURE__ */ s(e, {
54
54
  iconClassName: "fa-solid fa-ban",
55
55
  onClick: x,
56
56
  title: "Clear",
@@ -1,2 +1,2 @@
1
- declare const ThemeControl: () => import("react").JSX.Element;
1
+ declare const ThemeControl: () => import('react').JSX.Element;
2
2
  export default ThemeControl;
@@ -6,5 +6,5 @@
6
6
  * outcome is what the server was willing to send — the steps to a page allowed to debug them, and what those steps
7
7
  * read and answered only to an authoring session or a dev server.
8
8
  */
9
- declare const ActionsViewer: () => import("react").JSX.Element;
9
+ declare const ActionsViewer: () => import('react').JSX.Element;
10
10
  export default ActionsViewer;
@@ -8,5 +8,5 @@ export type ActionsToolbarProps = {
8
8
  onQueryChange: (query: string) => void;
9
9
  onClear: () => void;
10
10
  };
11
- declare const ActionsToolbar: ({ filter, query, liveCount, runCount, onFilterChange, onQueryChange, onClear }: ActionsToolbarProps) => import("react").JSX.Element;
11
+ declare const ActionsToolbar: ({ filter, query, liveCount, runCount, onFilterChange, onQueryChange, onClear }: ActionsToolbarProps) => import('react').JSX.Element;
12
12
  export default ActionsToolbar;
@@ -3,5 +3,5 @@ export type DetailShellProps = {
3
3
  children: ReactNode;
4
4
  };
5
5
  /** The resizable column the selected run is inspected in; its width is remembered across sessions. */
6
- declare const DetailShell: ({ children }: DetailShellProps) => import("react").JSX.Element;
6
+ declare const DetailShell: ({ children }: DetailShellProps) => import('react').JSX.Element;
7
7
  export default DetailShell;
@@ -11,5 +11,5 @@ export type FlowTimelineProps = {
11
11
  * already did. Drawn in the same list they read as a flow that carried on after the failure, which is the opposite
12
12
  * of what happened.
13
13
  */
14
- declare const FlowTimeline: ({ steps, selectedStepId, onSelectStep }: FlowTimelineProps) => import("react").JSX.Element;
14
+ declare const FlowTimeline: ({ steps, selectedStepId, onSelectStep }: FlowTimelineProps) => import('react').JSX.Element;
15
15
  export default FlowTimeline;
@@ -5,5 +5,5 @@ export type RunDetailProps = {
5
5
  onSelectStep: (stepId: string) => void;
6
6
  };
7
7
  /** Everything known about one run: how it ended, what it did step by step, and what it carried. */
8
- declare const RunDetail: ({ run, selectedStepId, onSelectStep }: RunDetailProps) => import("react").JSX.Element;
8
+ declare const RunDetail: ({ run, selectedStepId, onSelectStep }: RunDetailProps) => import('react').JSX.Element;
9
9
  export default RunDetail;
@@ -7,5 +7,5 @@ export type RunListProps = {
7
7
  onSelect: (runId: string) => void;
8
8
  onCancel: (runId: string) => void;
9
9
  };
10
- declare const RunList: ({ runs, total, selectedRunId, onSelect, onCancel }: RunListProps) => import("react").JSX.Element;
10
+ declare const RunList: ({ runs, total, selectedRunId, onSelect, onCancel }: RunListProps) => import('react').JSX.Element;
11
11
  export default RunList;
@@ -6,5 +6,5 @@ export type RunRowProps = {
6
6
  onCancel: (runId: string) => void;
7
7
  };
8
8
  /** One run in the log: enough to recognise it, and enough to tell a healthy one from the one to open. */
9
- declare const RunRow: ({ run, selected, onSelect, onCancel }: RunRowProps) => import("react").JSX.Element;
9
+ declare const RunRow: ({ run, selected, onSelect, onCancel }: RunRowProps) => import('react').JSX.Element;
10
10
  export default RunRow;
@@ -5,5 +5,5 @@ export type StepRowProps = {
5
5
  onSelect: (stepId: string) => void;
6
6
  };
7
7
  /** One step of a flow: what it was, how it ended, and how much of the run it took. */
8
- declare const StepRow: ({ bar, selected, onSelect }: StepRowProps) => import("react").JSX.Element;
8
+ declare const StepRow: ({ bar, selected, onSelect }: StepRowProps) => import('react').JSX.Element;
9
9
  export default StepRow;
@@ -8,5 +8,5 @@
8
8
  * Everything a row says is on screen: no tooltips, a bar for what is left of the life it was given, and the value it
9
9
  * holds one click away, so checking a cache never means going somewhere else to look at it.
10
10
  */
11
- declare const CacheViewer: () => import("react").JSX.Element;
11
+ declare const CacheViewer: () => import('react').JSX.Element;
12
12
  export default CacheViewer;
@@ -12,5 +12,5 @@ export type CacheRowProps = {
12
12
  * One cached path, said in full and on screen: which store it is in, what it stands for, how long it has left and how
13
13
  * much of its life that is. Nothing here is a tooltip — the whole point of the tab is that a glance answers it.
14
14
  */
15
- declare const CacheRow: ({ row, isOpen, value, onToggle, onExpire, onForget }: CacheRowProps) => import("react").JSX.Element;
15
+ declare const CacheRow: ({ row, isOpen, value, onToggle, onExpire, onForget }: CacheRowProps) => import('react').JSX.Element;
16
16
  export default CacheRow;
@@ -2,5 +2,5 @@ import { Element } from '@plitzi/sdk-shared';
2
2
  export type DetailsAttributesProps = {
3
3
  attributes?: Element['attributes'];
4
4
  };
5
- declare const DetailsAttributes: ({ attributes }: DetailsAttributesProps) => import("react").JSX.Element;
5
+ declare const DetailsAttributes: ({ attributes }: DetailsAttributesProps) => import('react').JSX.Element;
6
6
  export default DetailsAttributes;
@@ -3,5 +3,5 @@ export type DetailsDefinitionProps = {
3
3
  definition?: Element['definition'];
4
4
  onSelectElement: (id: string) => void;
5
5
  };
6
- declare const DetailsDefinition: ({ definition, onSelectElement }: DetailsDefinitionProps) => import("react").JSX.Element;
6
+ declare const DetailsDefinition: ({ definition, onSelectElement }: DetailsDefinitionProps) => import('react').JSX.Element;
7
7
  export default DetailsDefinition;
@@ -6,5 +6,5 @@ export type DetailsValue = {
6
6
  isStyle?: boolean;
7
7
  onSelectElement?: (id: string) => void;
8
8
  };
9
- declare const DetailsValue: ({ attribute, value, isDefinition, onSelectElement }: DetailsValue) => import("react").JSX.Element;
9
+ declare const DetailsValue: ({ attribute, value, isDefinition, onSelectElement }: DetailsValue) => import('react').JSX.Element;
10
10
  export default DetailsValue;
@@ -1,20 +1,20 @@
1
1
  import { useCallback as e, useMemo as t } from "react";
2
- import { jsx as n } from "react/jsx-runtime";
3
- import { useCommonStore as r } from "@plitzi/sdk-shared/store";
4
- import { get as i } from "@plitzi/plitzi-ui/helpers";
2
+ import { get as n } from "@plitzi/plitzi-ui/helpers";
3
+ import { jsx as r } from "react/jsx-runtime";
4
+ import { useCommonStore as i } from "@plitzi/sdk-shared/store";
5
5
  //#region src/components/DevToolsPanel/tabs/ElementsViewer/DetailsValue.tsx
6
6
  var a = ({ attribute: a, value: o, isDefinition: s = !1, onSelectElement: c }) => {
7
- let [l] = r("schema.flat"), u = e((e) => () => c?.(e), [c]), d = t(() => a === "items" && s && Array.isArray(o) ? /* @__PURE__ */ n("div", {
7
+ let [l] = i("schema.flat"), u = e((e) => () => c?.(e), [c]), d = t(() => a === "items" && s && Array.isArray(o) ? /* @__PURE__ */ r("div", {
8
8
  className: "flex flex-col",
9
- children: o.map((e, t) => /* @__PURE__ */ n("div", {
9
+ children: o.map((e, t) => /* @__PURE__ */ r("div", {
10
10
  className: "cursor-pointer text-purple-400",
11
11
  onClick: u(e),
12
- children: i(l, `${e}.definition.label`, e)
12
+ children: n(l, `${e}.definition.label`, e)
13
13
  }, t))
14
- }) : a && ["rootId", "parentId"].includes(a) && s ? /* @__PURE__ */ n("div", {
14
+ }) : a && ["rootId", "parentId"].includes(a) && s ? /* @__PURE__ */ r("div", {
15
15
  className: "cursor-pointer text-purple-400",
16
16
  onClick: u(o),
17
- children: i(l, `${o}.definition.label`, o)
17
+ children: n(l, `${o}.definition.label`, o)
18
18
  }) : a === "styleSelectors" && s && o && typeof o == "object" ? Object.values(o).join(", ") : typeof o == "object" && o ? JSON.stringify(o) : typeof o == "boolean" ? o ? "True" : "False" : o, [
19
19
  a,
20
20
  s,
@@ -22,7 +22,7 @@ var a = ({ attribute: a, value: o, isDefinition: s = !1, onSelectElement: c }) =
22
22
  u,
23
23
  l
24
24
  ]);
25
- return /* @__PURE__ */ n("div", {
25
+ return /* @__PURE__ */ r("div", {
26
26
  className: "grow basis-0 truncate",
27
27
  children: d
28
28
  });
@@ -4,5 +4,5 @@ export type ElementDetailsProps = {
4
4
  attributes?: Element['attributes'];
5
5
  onSelectElement: (id: string) => void;
6
6
  };
7
- declare const ElementDetails: ({ definition, attributes, onSelectElement }: ElementDetailsProps) => import("react").JSX.Element;
7
+ declare const ElementDetails: ({ definition, attributes, onSelectElement }: ElementDetailsProps) => import('react').JSX.Element;
8
8
  export default ElementDetails;
@@ -4,5 +4,5 @@ export type ElementsListProps = {
4
4
  elementSelected?: string;
5
5
  onSelect?: (id?: string) => void;
6
6
  };
7
- declare const ElementsList: ({ elements, elementSelected, onSelect }: ElementsListProps) => import("react").JSX.Element;
7
+ declare const ElementsList: ({ elements, elementSelected, onSelect }: ElementsListProps) => import('react').JSX.Element;
8
8
  export default ElementsList;
@@ -1,36 +1,36 @@
1
1
  import e from "./ElementsListItem.mjs";
2
2
  import { useCallback as t, useMemo as n, useState as r } from "react";
3
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
- import { get as o } from "@plitzi/plitzi-ui/helpers";
3
+ import { get as i } from "@plitzi/plitzi-ui/helpers";
4
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
5
  import s from "@plitzi/plitzi-ui/Input";
6
6
  //#region src/components/DevToolsPanel/tabs/ElementsViewer/ElementsList.tsx
7
7
  var c = 200, l = ({ elements: l, elementSelected: u, onSelect: d }) => {
8
8
  let [f, p] = r(""), m = n(() => (l ?? []).filter((e) => e.definition.label.toLowerCase().includes(f.toLowerCase())), [l, f]), h = n(() => m.slice(0, c), [m]), g = m.length - h.length, _ = t((e) => p(e), []);
9
- return /* @__PURE__ */ a("div", {
9
+ return /* @__PURE__ */ o("div", {
10
10
  className: "flex h-full w-[280px] shrink-0 flex-col gap-2 border-r border-zinc-200 dark:border-zinc-700",
11
- children: [/* @__PURE__ */ i("div", {
11
+ children: [/* @__PURE__ */ a("div", {
12
12
  className: "px-2 pt-2",
13
- children: /* @__PURE__ */ i(s, {
13
+ children: /* @__PURE__ */ a(s, {
14
14
  value: f,
15
15
  onChange: _,
16
16
  placeholder: "Search elements...",
17
17
  size: "sm"
18
18
  })
19
- }), /* @__PURE__ */ a("div", {
19
+ }), /* @__PURE__ */ o("div", {
20
20
  className: "flex flex-col overflow-y-auto text-xs text-zinc-700 dark:text-zinc-300",
21
21
  children: [
22
- h.length === 0 && /* @__PURE__ */ i("div", {
22
+ h.length === 0 && /* @__PURE__ */ a("div", {
23
23
  className: "p-4 text-center text-zinc-400 dark:text-zinc-600",
24
24
  children: "No elements"
25
25
  }),
26
- h.map((t) => /* @__PURE__ */ i(e, {
26
+ h.map((t) => /* @__PURE__ */ a(e, {
27
27
  name: t.definition.label,
28
28
  isSelected: u === t.id,
29
- isVisible: o(t, "definition.initialState.visibility", !0),
29
+ isVisible: i(t, "definition.initialState.visibility", !0),
30
30
  id: t.id,
31
31
  onSelect: d
32
32
  }, t.id)),
33
- g > 0 && /* @__PURE__ */ a("div", {
33
+ g > 0 && /* @__PURE__ */ o("div", {
34
34
  className: "p-3 text-center text-[11px] text-zinc-400 dark:text-zinc-600",
35
35
  children: [g, " more — narrow the search to reach them"]
36
36
  })
@@ -5,5 +5,5 @@ export type ElementsListItemProps = {
5
5
  isVisible?: boolean;
6
6
  onSelect?: (id?: string) => void;
7
7
  };
8
- declare const ElementsListItem: ({ name, id, isSelected, isVisible, onSelect }: ElementsListItemProps) => import("react").JSX.Element;
8
+ declare const ElementsListItem: ({ name, id, isSelected, isVisible, onSelect }: ElementsListItemProps) => import('react').JSX.Element;
9
9
  export default ElementsListItem;
@@ -3,5 +3,5 @@ export type ElementsViewerProps = {
3
3
  elementSelected?: string;
4
4
  onSelectElement: (id?: string) => void;
5
5
  };
6
- declare const ElementsViewer: ({ className, elementSelected, onSelectElement }: ElementsViewerProps) => import("react").JSX.Element;
6
+ declare const ElementsViewer: ({ className, elementSelected, onSelectElement }: ElementsViewerProps) => import('react').JSX.Element;
7
7
  export default ElementsViewer;
@@ -1,2 +1,2 @@
1
- declare const HistoryViewer: () => import("react").JSX.Element;
1
+ declare const HistoryViewer: () => import('react').JSX.Element;
2
2
  export default HistoryViewer;
@@ -8,5 +8,5 @@ export type HistoryEntryItemProps = {
8
8
  isFuture: boolean;
9
9
  onSelect: (index: number) => void;
10
10
  };
11
- declare const HistoryEntryItem: ({ index, path, value, timestamp, isSelected, isFuture, onSelect }: HistoryEntryItemProps) => import("react").JSX.Element;
11
+ declare const HistoryEntryItem: ({ index, path, value, timestamp, isSelected, isFuture, onSelect }: HistoryEntryItemProps) => import('react').JSX.Element;
12
12
  export default HistoryEntryItem;
@@ -9,5 +9,5 @@ export type HistoryToolbarProps = {
9
9
  onClear: () => void;
10
10
  onFilterChange: (value: string) => void;
11
11
  };
12
- declare const HistoryToolbar: ({ index, total, canUndo, canRedo, filter, onUndo, onRedo, onClear, onFilterChange }: HistoryToolbarProps) => import("react").JSX.Element;
12
+ declare const HistoryToolbar: ({ index, total, canUndo, canRedo, filter, onUndo, onRedo, onClear, onFilterChange }: HistoryToolbarProps) => import('react').JSX.Element;
13
13
  export default HistoryToolbar;