eddev 2.1.6 → 2.2.0-beta.2

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 (140) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/css/devtools.css +141 -1
  3. package/dist/app/entry/spa-root.d.ts.map +1 -1
  4. package/dist/app/entry/spa-root.js +3 -3
  5. package/dist/app/entry/ssr-root-client.d.ts.map +1 -1
  6. package/dist/app/entry/ssr-root-client.js +2 -2
  7. package/dist/app/entry/ssr-root.js +1 -1
  8. package/dist/app/lib/blocks/ContentBlocks.d.ts.map +1 -1
  9. package/dist/app/lib/blocks/ContentBlocks.js +19 -9
  10. package/dist/app/lib/blocks/block-debugger.d.ts +64 -0
  11. package/dist/app/lib/blocks/block-debugger.d.ts.map +1 -0
  12. package/dist/app/lib/blocks/block-debugger.js +157 -0
  13. package/dist/app/lib/blocks/editor/editor-config.d.ts +1 -1
  14. package/dist/app/lib/blocks/editor/editor-config.d.ts.map +1 -1
  15. package/dist/app/lib/blocks/editor/editor-config.js +19 -11
  16. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts +1 -1
  17. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts.map +1 -1
  18. package/dist/app/lib/blocks/editor/installGutenbergHooks.js +12 -0
  19. package/dist/app/lib/blocks/index.d.ts +1 -0
  20. package/dist/app/lib/blocks/index.d.ts.map +1 -1
  21. package/dist/app/lib/blocks/index.js +1 -0
  22. package/dist/app/lib/blocks/inline-editing.d.ts +2 -1
  23. package/dist/app/lib/blocks/inline-editing.d.ts.map +1 -1
  24. package/dist/app/lib/blocks/inline-editing.js +3 -1
  25. package/dist/app/lib/devtools/components/DevMenu.d.ts +2 -0
  26. package/dist/app/lib/devtools/components/DevMenu.d.ts.map +1 -0
  27. package/dist/app/lib/devtools/components/DevMenu.js +19 -0
  28. package/dist/app/lib/devtools/components/DevUI.d.ts +13 -0
  29. package/dist/app/lib/devtools/components/DevUI.d.ts.map +1 -1
  30. package/dist/app/lib/devtools/components/DevUI.js +28 -1
  31. package/dist/app/lib/devtools/components/GridIndicator.d.ts +1 -1
  32. package/dist/app/lib/devtools/components/GridIndicator.d.ts.map +1 -1
  33. package/dist/app/lib/devtools/components/GridIndicator.js +2 -1
  34. package/dist/app/lib/devtools/components/panels/AppDataPanel.d.ts +2 -0
  35. package/dist/app/lib/devtools/components/panels/AppDataPanel.d.ts.map +1 -0
  36. package/dist/app/lib/devtools/components/panels/AppDataPanel.js +12 -0
  37. package/dist/app/lib/devtools/components/panels/QueriesPanel.d.ts +2 -0
  38. package/dist/app/lib/devtools/components/panels/QueriesPanel.d.ts.map +1 -0
  39. package/dist/app/lib/devtools/components/panels/QueriesPanel.js +5 -0
  40. package/dist/app/lib/devtools/components/panels/RoutePanel.d.ts +2 -0
  41. package/dist/app/lib/devtools/components/panels/RoutePanel.d.ts.map +1 -0
  42. package/dist/app/lib/devtools/components/panels/RoutePanel.js +58 -0
  43. package/dist/app/lib/devtools/components/panels/StructurePanel.d.ts +2 -0
  44. package/dist/app/lib/devtools/components/panels/StructurePanel.d.ts.map +1 -0
  45. package/dist/app/lib/devtools/components/panels/StructurePanel.js +138 -0
  46. package/dist/app/lib/devtools/components/panels/index.d.ts +10 -0
  47. package/dist/app/lib/devtools/components/panels/index.d.ts.map +1 -0
  48. package/dist/app/lib/devtools/components/panels/index.js +27 -0
  49. package/dist/app/lib/devtools/components/panels/monaco-graphql.worker.d.ts +2 -0
  50. package/dist/app/lib/devtools/components/panels/monaco-graphql.worker.d.ts.map +1 -0
  51. package/dist/app/lib/devtools/components/panels/monaco-graphql.worker.js +9 -0
  52. package/dist/app/lib/devtools/components/ui/Button.d.ts +9 -0
  53. package/dist/app/lib/devtools/components/ui/Button.d.ts.map +1 -0
  54. package/dist/app/lib/devtools/components/ui/Button.js +4 -0
  55. package/dist/app/lib/devtools/components/ui/Chip.d.ts +11 -0
  56. package/dist/app/lib/devtools/components/ui/Chip.d.ts.map +1 -0
  57. package/dist/app/lib/devtools/components/ui/Chip.js +7 -0
  58. package/dist/app/lib/devtools/components/ui/Expander.d.ts +8 -0
  59. package/dist/app/lib/devtools/components/ui/Expander.d.ts.map +1 -0
  60. package/dist/app/lib/devtools/components/ui/Expander.js +4 -0
  61. package/dist/app/lib/devtools/components/ui/JSONInspector.d.ts +8 -0
  62. package/dist/app/lib/devtools/components/ui/JSONInspector.d.ts.map +1 -0
  63. package/dist/app/lib/devtools/components/ui/JSONInspector.js +17 -0
  64. package/dist/app/lib/devtools/components/ui/Panel.d.ts +10 -0
  65. package/dist/app/lib/devtools/components/ui/Panel.d.ts.map +1 -0
  66. package/dist/app/lib/devtools/components/ui/Panel.js +4 -0
  67. package/dist/app/lib/devtools/components/ui/QueryMonitorDisplay.d.ts +7 -0
  68. package/dist/app/lib/devtools/components/ui/QueryMonitorDisplay.d.ts.map +1 -0
  69. package/dist/app/lib/devtools/components/ui/QueryMonitorDisplay.js +58 -0
  70. package/dist/app/lib/devtools/components/ui/TabBar.d.ts +22 -0
  71. package/dist/app/lib/devtools/components/ui/TabBar.d.ts.map +1 -0
  72. package/dist/app/lib/devtools/components/ui/TabBar.js +11 -0
  73. package/dist/app/lib/devtools/components/ui/Tabs.d.ts +13 -0
  74. package/dist/app/lib/devtools/components/ui/Tabs.d.ts.map +1 -0
  75. package/dist/app/lib/devtools/components/ui/Tabs.js +7 -0
  76. package/dist/app/lib/devtools/hooks/usePersistState.d.ts +3 -0
  77. package/dist/app/lib/devtools/hooks/usePersistState.d.ts.map +1 -1
  78. package/dist/app/lib/devtools/hooks/usePersistState.js +7 -0
  79. package/dist/app/lib/devtools/hooks/useTailwind.d.ts +5227 -1
  80. package/dist/app/lib/devtools/hooks/useTailwind.d.ts.map +1 -1
  81. package/dist/app/lib/devtools/icons.d.ts +25 -0
  82. package/dist/app/lib/devtools/icons.d.ts.map +1 -0
  83. package/dist/app/lib/devtools/icons.js +25 -0
  84. package/dist/app/lib/devtools/lib/filesize.d.ts +2 -0
  85. package/dist/app/lib/devtools/lib/filesize.d.ts.map +1 -0
  86. package/dist/app/lib/devtools/lib/filesize.js +7 -0
  87. package/dist/app/lib/devtools/tailwind.config.d.ts +27 -1
  88. package/dist/app/lib/devtools/tailwind.config.d.ts.map +1 -1
  89. package/dist/app/lib/devtools/tailwind.config.js +6 -1
  90. package/dist/app/lib/hooks/useAppData.d.ts +2 -0
  91. package/dist/app/lib/hooks/useAppData.d.ts.map +1 -1
  92. package/dist/app/lib/hooks/useAppData.js +8 -0
  93. package/dist/app/lib/internal/read-admin-manifest.d.ts +2 -0
  94. package/dist/app/lib/internal/read-admin-manifest.d.ts.map +1 -1
  95. package/dist/app/lib/internal/read-admin-manifest.js +1 -0
  96. package/dist/app/lib/legacy-stitches/createStitches.d.ts +9 -9
  97. package/dist/app/lib/legacy-stitches/createStitches.d.ts.map +1 -1
  98. package/dist/app/lib/routing/components/BrowserRouter.d.ts.map +1 -1
  99. package/dist/app/lib/routing/components/BrowserRouter.js +22 -6
  100. package/dist/app/lib/routing/components/RouteRenderer.d.ts.map +1 -1
  101. package/dist/app/lib/routing/components/RouteRenderer.js +16 -4
  102. package/dist/app/lib/routing/loader.d.ts +3 -1
  103. package/dist/app/lib/routing/loader.d.ts.map +1 -1
  104. package/dist/app/lib/routing/loader.js +3 -1
  105. package/dist/app/lib/routing/types.d.ts +19 -2
  106. package/dist/app/lib/routing/types.d.ts.map +1 -1
  107. package/dist/app/lib/routing/utils.d.ts +1 -0
  108. package/dist/app/lib/routing/utils.d.ts.map +1 -1
  109. package/dist/app/lib/routing/utils.js +19 -1
  110. package/dist/app/server/server-context.d.ts.map +1 -1
  111. package/dist/app/server/server-context.js +23 -9
  112. package/dist/app/server/utils/replace-host.d.ts.map +1 -1
  113. package/dist/app/utils/query-monitor.d.ts +8 -2
  114. package/dist/app/utils/query-monitor.d.ts.map +1 -1
  115. package/dist/node/cli/cli.js +9 -0
  116. package/dist/node/cli/display/CLIApp.d.ts.map +1 -1
  117. package/dist/node/cli/display/CLIApp.js +1 -0
  118. package/dist/node/cli/version.d.ts +1 -1
  119. package/dist/node/cli/version.d.ts.map +1 -1
  120. package/dist/node/cli/version.js +1 -1
  121. package/dist/node/compiler/get-vite-config.d.ts +1 -0
  122. package/dist/node/compiler/get-vite-config.d.ts.map +1 -1
  123. package/dist/node/compiler/get-vite-config.js +14 -0
  124. package/dist/node/compiler/vinxi-codegen.d.ts.map +1 -1
  125. package/dist/node/compiler/vinxi-codegen.js +15 -2
  126. package/dist/node/graphql/graphql-codegen.d.ts.map +1 -1
  127. package/dist/node/graphql/graphql-codegen.js +7 -0
  128. package/dist/node/project/config.d.ts +1 -1
  129. package/dist/node/project/eddev-build-file.d.ts.map +1 -1
  130. package/dist/node/project/eddev-build-file.js +1 -0
  131. package/dist/node/project/manifest/block-manifest.d.ts +4 -1
  132. package/dist/node/project/manifest/block-manifest.d.ts.map +1 -1
  133. package/dist/node/project/manifest/block-manifest.js +22 -1
  134. package/dist/node/types/block-type.d.ts +12 -1
  135. package/dist/node/types/block-type.d.ts.map +1 -1
  136. package/dist/node/types/block-type.js +6 -0
  137. package/dist/node/utils/fs.d.ts.map +1 -1
  138. package/dist/node/utils/helpers.d.ts.map +1 -1
  139. package/package.json +6 -4
  140. package/types.meta.d.ts +11 -0
@@ -0,0 +1,7 @@
1
+ import { QueryMonitor } from "../../../../utils/query-monitor";
2
+ type Props = {
3
+ entries?: QueryMonitor.Entry[];
4
+ };
5
+ export declare function QueryMonitorDisplay(props: Props): import("react/jsx-runtime").JSX.Element | null;
6
+ export {};
7
+ //# sourceMappingURL=QueryMonitorDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryMonitorDisplay.d.ts","sourceRoot":"","sources":["../../../../../../src/app/lib/devtools/components/ui/QueryMonitorDisplay.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAI9D,KAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,CAAA;CAC/B,CAAA;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,kDAS/C"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Fragment, useState } from "react";
3
+ import { JSONInspector } from "./JSONInspector";
4
+ import { Expander } from "./Expander";
5
+ export function QueryMonitorDisplay(props) {
6
+ if (!props.entries || props.entries.length === 0)
7
+ return null;
8
+ return (_jsx("div", { className: "flex flex-col gap-1", children: props.entries?.map((entry, index) => (_jsx(MonitorEntry, { entry: entry }, index))) }));
9
+ }
10
+ function MonitorEntry({ entry, indent }) {
11
+ const hasChildren = entry.log.length > 0 || entry.children?.length > 0;
12
+ const [expanded, setExpanded] = useState(true);
13
+ return (_jsxs("div", { className: "", children: [_jsx("div", { className: "border-t border-neutral-200/5 py-[0.2em]", children: _jsx(Indented, { level: indent || 0, children: _jsx(Expander, { expanded: expanded, onChange: setExpanded, canExpand: hasChildren, children: _jsxs("div", { children: [_jsxs("span", { className: "text-cyan-700", children: [entry.label, " "] }), _jsx("code", { className: "text-cyan-400", children: entry.file }), " (", Math.round(entry.duration * 1000), "ms)"] }) }) }) }), expanded && hasChildren && (_jsxs("div", { children: [entry.log?.map((logEntry, logIndex) => (_jsx("div", { className: "text-sm text-neutral-400", children: _jsx(LogEntry, { entry: logEntry, indent: indent ? indent + 1 : 1 }) }, logIndex))), entry.children?.map((child, childIndex) => (_jsx(MonitorEntry, { entry: child, indent: indent ? indent + 1 : 1 }, childIndex)))] }))] }));
14
+ }
15
+ function Indented(props) {
16
+ return _jsx("div", { style: { paddingLeft: `${props.level * 1.25}em` }, children: props.children });
17
+ }
18
+ function LogMessagePart(props) {
19
+ const part = props.part;
20
+ if (typeof part === "string") {
21
+ return _jsx(_Fragment, { children: part });
22
+ }
23
+ else {
24
+ return (_jsx("span", { className: "text-purple-400 inline-flex", onClick: (e) => e.stopPropagation(), children: _jsx(JSONInspector, { data: part }) }));
25
+ }
26
+ }
27
+ function LogEntry({ entry, indent }) {
28
+ let style = {
29
+ colorClass: "text-white/50",
30
+ icon: "đŸ’Ŧ",
31
+ };
32
+ if (entry.type === "php_warning" || entry.type === "warn") {
33
+ style.colorClass = "text-yellow-400";
34
+ style.icon = "âš ī¸";
35
+ }
36
+ else if (entry.type === "error" || entry.type === "php_error") {
37
+ style.colorClass = "text-red-400";
38
+ style.icon = "❌";
39
+ }
40
+ else if (entry.type === "debug" || entry.type === "GRAPHQL_DEBUG") {
41
+ style.colorClass = "text-blue-400";
42
+ style.icon = "â„šī¸";
43
+ }
44
+ else if (entry.type === "php_notice") {
45
+ style.colorClass = "text-cyan-400";
46
+ style.icon = "💡";
47
+ }
48
+ let formattedMessage = null;
49
+ if (Array.isArray(entry.message)) {
50
+ formattedMessage = entry.message.map((msg, i) => (_jsxs(Fragment, { children: [_jsx(LogMessagePart, { part: msg }), " "] }, i)));
51
+ }
52
+ else {
53
+ formattedMessage = _jsx(LogMessagePart, { part: entry.message });
54
+ }
55
+ let prefix = _jsxs("span", { children: ["[", entry.type, "]"] });
56
+ const [expanded, setExpanded] = useState(false);
57
+ return (_jsx("div", { className: `${style.colorClass} border-t border-neutral-200/5 py-[0.2em]`, children: _jsx(Indented, { level: indent || 0, children: _jsx("div", { className: "inline-flex gap-[0.5em]", children: _jsx("div", { children: _jsxs(Expander, { expanded: expanded, onChange: setExpanded, children: [_jsx("div", { className: "mr-1", children: style.icon }), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { children: [prefix, " ", _jsx("span", { children: formattedMessage })] }), _jsxs("div", { className: "flex flex-col", children: [!!entry.parentType && !!entry.fieldName ? (_jsxs("div", { className: `italic ${expanded ? "" : "opacity-50"}`, children: [_jsx("span", { className: "opacity-50", children: " selecting " }), entry.parentType, ".", entry.fieldName] })) : null, expanded && entry.path?.length && (_jsxs("div", { onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { children: [_jsx("span", { className: "opacity-50", children: "at path " }), entry.path?.length && _jsx("span", { children: entry.path.join(".") })] }), entry.trace?.length > 0 && (_jsxs("div", { children: [_jsx("span", { className: "opacity-50", children: "Trace:" }), entry.trace?.map((row, i) => (_jsxs("div", { className: "line-clamp-1", children: [_jsx("span", { className: "opacity-50", children: "- " }), _jsx("span", { children: row.call }), _jsx("span", { className: "opacity-50", children: " line " }), _jsx("span", { children: row.line }), _jsx("span", { className: "opacity-50", children: " in " }), _jsx("span", { children: row.file })] }, i)))] }))] }))] })] })] }) }) }) }) }));
58
+ }
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from "react";
2
+ type Props<K> = {
3
+ tabs: {
4
+ value: K;
5
+ label: string;
6
+ badge?: ReactNode;
7
+ }[];
8
+ activeTab?: K;
9
+ onTabChange?: (tab: K) => void;
10
+ };
11
+ export declare function TabBar<K extends string>(props: Props<K>): import("react/jsx-runtime").JSX.Element;
12
+ export declare function useTabBar<K extends string>(id: string, tabs: {
13
+ value: K;
14
+ label: string;
15
+ badge?: ReactNode;
16
+ }[]): {
17
+ tab: K;
18
+ setTab: (value: K | ((current: K) => K)) => void;
19
+ tabBar: import("react/jsx-runtime").JSX.Element;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=TabBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../../../../src/app/lib/devtools/components/ui/TabBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,KAAK,KAAK,CAAC,CAAC,IAAI;IACd,IAAI,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE,CAAA;IACtD,SAAS,CAAC,EAAE,CAAC,CAAA;IACb,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;CAC/B,CAAA;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,2CAgBvD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE;;;;EAI7G"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { usePersistState } from "../../hooks/usePersistState";
3
+ import { Button } from "./Button";
4
+ export function TabBar(props) {
5
+ return (_jsx("div", { className: "flex gap-2 flex-none p-2 pb-0", children: props.tabs.map((t) => (_jsxs(Button, { variant: "tab", active: props.activeTab === t.value, onClick: () => props.onTabChange?.(t.value), children: [t.label, t.badge ? _jsx("span", { className: "bg-neutral-200/20 rounded-md px-1", children: t.badge }) : null] }, t.value))) }));
6
+ }
7
+ export function useTabBar(id, tabs) {
8
+ const [tab, setTab] = usePersistState(`tab:${id}`, tabs[0].value);
9
+ const tabBar = _jsx(TabBar, { tabs: tabs, activeTab: tab, onTabChange: setTab });
10
+ return { tab, setTab, tabBar };
11
+ }
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from "react";
2
+ type Props<K> = {
3
+ id: string;
4
+ tabs: {
5
+ value: K;
6
+ label: string;
7
+ badge?: ReactNode;
8
+ content: () => ReactNode;
9
+ }[];
10
+ };
11
+ export declare function Tabs<K extends string>(props: Props<K>): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../../../src/app/lib/devtools/components/ui/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,KAAK,KAAK,CAAC,CAAC,IAAI;IACd,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,SAAS,CAAA;KAAE,EAAE,CAAA;CACjF,CAAA;AAED,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,2CAkBrD"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { usePersistState } from "../../hooks/usePersistState";
3
+ import { Button } from "./Button";
4
+ export function Tabs(props) {
5
+ const [tab, setTab] = usePersistState(`tab:${props.id}`, props.tabs[0].value);
6
+ return (_jsxs("div", { className: "flex flex-col flex-1 gap-2 max-h-[calc(100vh-90px)]", children: [_jsx("div", { className: "flex gap-2 flex-none p-2 pb-0", children: props.tabs.map((t) => (_jsxs(Button, { variant: "tab", active: tab === t.value, onClick: () => setTab(t.value), children: [t.label, t.badge ? _jsx("span", { className: "bg-neutral-200/20 rounded-md px-1", children: t.badge }) : null] }, t.value))) }), _jsx("div", { className: "flex-1 overflow-auto max-h-[80%] basis-auto pt-0 p-2", children: props.tabs.find((t) => t.value === tab)?.content() })] }));
7
+ }
@@ -1,2 +1,5 @@
1
1
  export declare function usePersistState<T>(id: string, initial: T): [T, (value: T | ((current: T) => T)) => void];
2
+ export declare namespace usePersistState {
3
+ var clearAll: () => void;
4
+ }
2
5
  //# sourceMappingURL=usePersistState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePersistState.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/devtools/hooks/usePersistState.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAiBxG"}
1
+ {"version":3,"file":"usePersistState.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/devtools/hooks/usePersistState.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAiBxG;yBAjBe,eAAe"}
@@ -38,3 +38,10 @@ export function usePersistState(id, initial) {
38
38
  },
39
39
  ];
40
40
  }
41
+ usePersistState.clearAll = () => {
42
+ for (const key in localStorage) {
43
+ if (key.startsWith("devui_")) {
44
+ localStorage.removeItem(key);
45
+ }
46
+ }
47
+ };