@schlessera/brain-ui-react 0.6.3 → 0.7.1

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 (60) hide show
  1. package/dist/components/graph/graph-canvas.d.ts +20 -0
  2. package/dist/components/graph/graph-canvas.d.ts.map +1 -0
  3. package/dist/components/graph/graph-canvas.js +387 -0
  4. package/dist/components/graph/graph-canvas.js.map +1 -0
  5. package/dist/components/graph/graph-controls.d.ts +8 -0
  6. package/dist/components/graph/graph-controls.d.ts.map +1 -0
  7. package/dist/components/graph/graph-controls.js +132 -0
  8. package/dist/components/graph/graph-controls.js.map +1 -0
  9. package/dist/components/graph/graph-empty-state.d.ts +15 -0
  10. package/dist/components/graph/graph-empty-state.d.ts.map +1 -0
  11. package/dist/components/graph/graph-empty-state.js +21 -0
  12. package/dist/components/graph/graph-empty-state.js.map +1 -0
  13. package/dist/components/graph/graph-page.d.ts +7 -0
  14. package/dist/components/graph/graph-page.d.ts.map +1 -0
  15. package/dist/components/graph/graph-page.js +400 -0
  16. package/dist/components/graph/graph-page.js.map +1 -0
  17. package/dist/components/graph/lib/graph-helpers.d.ts +98 -0
  18. package/dist/components/graph/lib/graph-helpers.d.ts.map +1 -0
  19. package/dist/components/graph/lib/graph-helpers.js +240 -0
  20. package/dist/components/graph/lib/graph-helpers.js.map +1 -0
  21. package/dist/components/graph/node-popover.d.ts +11 -0
  22. package/dist/components/graph/node-popover.d.ts.map +1 -0
  23. package/dist/components/graph/node-popover.js +39 -0
  24. package/dist/components/graph/node-popover.js.map +1 -0
  25. package/dist/components/graph/use-graph-theme.d.ts +19 -0
  26. package/dist/components/graph/use-graph-theme.d.ts.map +1 -0
  27. package/dist/components/graph/use-graph-theme.js +38 -0
  28. package/dist/components/graph/use-graph-theme.js.map +1 -0
  29. package/dist/components/layout/mobile-tab-bar.d.ts.map +1 -1
  30. package/dist/components/layout/mobile-tab-bar.js +16 -5
  31. package/dist/components/layout/mobile-tab-bar.js.map +1 -1
  32. package/dist/components/layout/side-rail.d.ts.map +1 -1
  33. package/dist/components/layout/side-rail.js +14 -4
  34. package/dist/components/layout/side-rail.js.map +1 -1
  35. package/dist/index.d.ts +3 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/stores/graph-store.d.ts +85 -0
  40. package/dist/stores/graph-store.d.ts.map +1 -0
  41. package/dist/stores/graph-store.js +236 -0
  42. package/dist/stores/graph-store.js.map +1 -0
  43. package/dist/stores/ui-store.d.ts +5 -0
  44. package/dist/stores/ui-store.d.ts.map +1 -1
  45. package/dist/stores/ui-store.js +2 -0
  46. package/dist/stores/ui-store.js.map +1 -1
  47. package/dist/styles.css +1 -1
  48. package/package.json +5 -2
  49. package/src/components/graph/graph-canvas.tsx +450 -0
  50. package/src/components/graph/graph-controls.tsx +436 -0
  51. package/src/components/graph/graph-empty-state.tsx +45 -0
  52. package/src/components/graph/graph-page.tsx +1045 -0
  53. package/src/components/graph/lib/graph-helpers.ts +311 -0
  54. package/src/components/graph/node-popover.tsx +135 -0
  55. package/src/components/graph/use-graph-theme.ts +51 -0
  56. package/src/components/layout/mobile-tab-bar.tsx +26 -3
  57. package/src/components/layout/side-rail.tsx +28 -4
  58. package/src/index.ts +3 -1
  59. package/src/stores/graph-store.ts +345 -0
  60. package/src/stores/ui-store.ts +8 -0
@@ -0,0 +1,85 @@
1
+ import type { GraphMetaResponse, GraphSubgraphResponse, GraphMaintenanceResponse } from "@schlessera/brain-ui-sdk/protocol";
2
+ export type GraphMode = "clusters" | "discovery" | "local" | "maintenance";
3
+ export type LocalDirection = "in" | "out" | "both";
4
+ /**
5
+ * How a fetch failed. "unavailable" carries the server's gating reason
6
+ * (schema too old / not yet computed); "unsupported" means the server predates
7
+ * the graph API entirely (404 on /graph/meta).
8
+ */
9
+ export type GraphErrorKind = "unavailable" | "unsupported" | "network";
10
+ interface GraphError {
11
+ kind: GraphErrorKind;
12
+ reason?: "schema" | "not_computed";
13
+ message: string;
14
+ }
15
+ export interface LocalParams {
16
+ center: string | null;
17
+ depth: 1 | 2 | 3;
18
+ direction: LocalDirection;
19
+ }
20
+ export interface DiscoveryParams {
21
+ /** null = the precomputed default root (direction is fixed there). */
22
+ root: string | null;
23
+ maxDepth: number;
24
+ }
25
+ export interface ClustersParams {
26
+ /** null = all communities. */
27
+ community: number | null;
28
+ isolates: boolean;
29
+ }
30
+ export interface MaintenanceParams {
31
+ staleDays: number;
32
+ }
33
+ export type SizeBy = "degree" | "pagerank";
34
+ export type DiscoveryColorBy = "distance" | "folder";
35
+ /** Which finding sections are visible — a client-side filter, no refetch. */
36
+ export interface MaintenanceFilters {
37
+ orphans: boolean;
38
+ unreachable: boolean;
39
+ broken: boolean;
40
+ stale: boolean;
41
+ }
42
+ type FetchState = "idle" | "loading" | "done" | "error";
43
+ interface GraphState {
44
+ mode: GraphMode;
45
+ meta: GraphMetaResponse | null;
46
+ metaState: FetchState;
47
+ local: LocalParams;
48
+ discovery: DiscoveryParams;
49
+ clusters: ClustersParams;
50
+ maintenance: MaintenanceParams;
51
+ /** Scene for the current mode (subgraph modes). */
52
+ subgraph: GraphSubgraphResponse | null;
53
+ findings: GraphMaintenanceResponse | null;
54
+ dataState: FetchState;
55
+ error: GraphError | null;
56
+ /** In-scene search query — highlights matching nodes, does not refetch. */
57
+ sceneQuery: string;
58
+ clustersSizeBy: SizeBy;
59
+ discoveryColorBy: DiscoveryColorBy;
60
+ maintenanceFilters: MaintenanceFilters;
61
+ selectedId: number | null;
62
+ hoveredId: number | null;
63
+ setMode: (mode: GraphMode) => void;
64
+ setLocalParams: (params: Partial<LocalParams>) => void;
65
+ setDiscoveryParams: (params: Partial<DiscoveryParams>) => void;
66
+ setClustersParams: (params: Partial<ClustersParams>) => void;
67
+ setMaintenanceParams: (params: Partial<MaintenanceParams>) => void;
68
+ setClustersSizeBy: (sizeBy: SizeBy) => void;
69
+ setDiscoveryColorBy: (colorBy: DiscoveryColorBy) => void;
70
+ setMaintenanceFilters: (filters: Partial<MaintenanceFilters>) => void;
71
+ setSceneQuery: (q: string) => void;
72
+ select: (id: number | null) => void;
73
+ hover: (id: number | null) => void;
74
+ fetchMeta: (force?: boolean) => Promise<void>;
75
+ /** Fetch the scene for the current mode + params (cached per query + computedAt). */
76
+ fetchScene: () => Promise<void>;
77
+ /** Local mode: pull the depth-1 ego of a node and merge it into the scene. */
78
+ expandNode: (path: string) => Promise<void>;
79
+ reset: () => void;
80
+ }
81
+ /** Test/dev hook: drop every cached scene. */
82
+ export declare function clearGraphSceneCache(): void;
83
+ export declare const useGraphStore: import("zustand").UseBoundStore<import("zustand").StoreApi<GraphState>>;
84
+ export {};
85
+ //# sourceMappingURL=graph-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-store.d.ts","sourceRoot":"","sources":["../../src/stores/graph-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ import { create } from "zustand";
2
+ import { API_BASE } from "../lib/backend.js";
3
+ import { buildQuery, mergeSubgraphs } from "../components/graph/lib/graph-helpers.js";
4
+ /** Cache of scene responses, keyed by `${endpoint}?${query}|${computedAt}`. */
5
+ const sceneCache = new Map();
6
+ const SCENE_CACHE_MAX = 40;
7
+ /** Test/dev hook: drop every cached scene. */
8
+ export function clearGraphSceneCache() {
9
+ sceneCache.clear();
10
+ }
11
+ /**
12
+ * Monotonic tokens for scene and meta fetches. Every call claims a new
13
+ * token; only the holder of the latest token may write results (success OR
14
+ * error), so a slow older response can never overwrite newer state. Meta
15
+ * needs this too: forced mount-time refetches can overlap when the view is
16
+ * toggled quickly, and an older /meta response landing last would restore a
17
+ * stale computedAt — which is the key every scene-cache lookup hangs off.
18
+ */
19
+ let sceneRequestToken = 0;
20
+ let metaRequestToken = 0;
21
+ function cachePut(key, value) {
22
+ if (sceneCache.size >= SCENE_CACHE_MAX) {
23
+ const oldest = sceneCache.keys().next().value;
24
+ if (oldest !== undefined)
25
+ sceneCache.delete(oldest);
26
+ }
27
+ sceneCache.set(key, value);
28
+ }
29
+ async function fetchGraphJson(pathAndQuery) {
30
+ const res = await fetch(`${API_BASE}/graph${pathAndQuery}`);
31
+ if (!res.ok) {
32
+ const body = await res.json().catch(() => ({}));
33
+ const err = new Error(body.error || `HTTP ${res.status}`);
34
+ err.status = res.status;
35
+ err.reason = body.reason;
36
+ throw err;
37
+ }
38
+ return res.json();
39
+ }
40
+ function toGraphError(err) {
41
+ const e = err;
42
+ if (e.status === 404) {
43
+ return {
44
+ kind: "unsupported",
45
+ message: "This server does not know the graph API yet.",
46
+ };
47
+ }
48
+ if (e.status === 503) {
49
+ return {
50
+ kind: "unavailable",
51
+ reason: e.reason === "schema" ? "schema" : "not_computed",
52
+ message: e.message || "graph_unavailable",
53
+ };
54
+ }
55
+ return { kind: "network", message: e.message || "Request failed" };
56
+ }
57
+ function sceneRequest(state) {
58
+ switch (state.mode) {
59
+ case "clusters":
60
+ return {
61
+ endpoint: "/clusters",
62
+ query: buildQuery({
63
+ community: state.clusters.community,
64
+ isolates: state.clusters.isolates ? 1 : null,
65
+ }),
66
+ };
67
+ case "discovery":
68
+ return {
69
+ endpoint: "/discovery",
70
+ query: buildQuery({
71
+ root: state.discovery.root,
72
+ maxDepth: state.discovery.maxDepth,
73
+ }),
74
+ };
75
+ case "local":
76
+ if (!state.local.center)
77
+ return null;
78
+ return {
79
+ endpoint: "/neighborhood",
80
+ query: buildQuery({
81
+ center: state.local.center,
82
+ depth: state.local.depth,
83
+ direction: state.local.direction,
84
+ }),
85
+ };
86
+ case "maintenance":
87
+ return {
88
+ endpoint: "/maintenance",
89
+ query: buildQuery({ staleDays: state.maintenance.staleDays }),
90
+ };
91
+ }
92
+ }
93
+ export const useGraphStore = create((set, get) => ({
94
+ mode: "local",
95
+ meta: null,
96
+ metaState: "idle",
97
+ local: { center: null, depth: 1, direction: "both" },
98
+ discovery: { root: null, maxDepth: 8 },
99
+ clusters: { community: null, isolates: false },
100
+ maintenance: { staleDays: 180 },
101
+ subgraph: null,
102
+ findings: null,
103
+ dataState: "idle",
104
+ error: null,
105
+ sceneQuery: "",
106
+ clustersSizeBy: "degree",
107
+ discoveryColorBy: "distance",
108
+ maintenanceFilters: { orphans: true, unreachable: true, broken: true, stale: true },
109
+ selectedId: null,
110
+ hoveredId: null,
111
+ setMode: (mode) => {
112
+ if (mode === get().mode)
113
+ return;
114
+ set({ mode, subgraph: null, findings: null, dataState: "idle", error: null, selectedId: null, hoveredId: null, sceneQuery: "" });
115
+ void get().fetchScene();
116
+ },
117
+ setLocalParams: (params) => {
118
+ set((s) => ({ local: { ...s.local, ...params }, selectedId: null }));
119
+ if (get().mode === "local")
120
+ void get().fetchScene();
121
+ },
122
+ setDiscoveryParams: (params) => {
123
+ set((s) => ({ discovery: { ...s.discovery, ...params }, selectedId: null }));
124
+ if (get().mode === "discovery")
125
+ void get().fetchScene();
126
+ },
127
+ setClustersParams: (params) => {
128
+ set((s) => ({ clusters: { ...s.clusters, ...params }, selectedId: null }));
129
+ if (get().mode === "clusters")
130
+ void get().fetchScene();
131
+ },
132
+ setMaintenanceParams: (params) => {
133
+ set((s) => ({ maintenance: { ...s.maintenance, ...params } }));
134
+ if (get().mode === "maintenance")
135
+ void get().fetchScene();
136
+ },
137
+ setClustersSizeBy: (sizeBy) => set({ clustersSizeBy: sizeBy }),
138
+ setDiscoveryColorBy: (colorBy) => set({ discoveryColorBy: colorBy }),
139
+ setMaintenanceFilters: (filters) => set((s) => ({ maintenanceFilters: { ...s.maintenanceFilters, ...filters } })),
140
+ setSceneQuery: (q) => set({ sceneQuery: q }),
141
+ select: (id) => set({ selectedId: id }),
142
+ hover: (id) => set({ hoveredId: id }),
143
+ fetchMeta: async (force) => {
144
+ const { metaState } = get();
145
+ if (!force && (metaState === "loading" || metaState === "done"))
146
+ return;
147
+ const token = ++metaRequestToken;
148
+ set({ metaState: "loading" });
149
+ try {
150
+ const meta = await fetchGraphJson("/meta");
151
+ if (token !== metaRequestToken)
152
+ return;
153
+ set({ meta, metaState: "done" });
154
+ }
155
+ catch (err) {
156
+ if (token !== metaRequestToken)
157
+ return;
158
+ set({ metaState: "error", error: toGraphError(err) });
159
+ }
160
+ },
161
+ fetchScene: async () => {
162
+ const state = get();
163
+ const token = ++sceneRequestToken;
164
+ const req = sceneRequest(state);
165
+ if (!req) {
166
+ // Local mode without a center: nothing to fetch, the page shows the picker.
167
+ set({ subgraph: null, findings: null, dataState: "idle", error: null });
168
+ return;
169
+ }
170
+ const cacheKey = `${req.endpoint}?${req.query}|${state.meta?.computedAt ?? ""}`;
171
+ const cached = sceneCache.get(cacheKey);
172
+ if (cached) {
173
+ if (state.mode === "maintenance") {
174
+ set({ findings: cached, subgraph: null, dataState: "done", error: null });
175
+ }
176
+ else {
177
+ set({ subgraph: cached, findings: null, dataState: "done", error: null });
178
+ }
179
+ return;
180
+ }
181
+ set({ dataState: "loading", error: null });
182
+ const requestedMode = state.mode;
183
+ try {
184
+ const data = await fetchGraphJson(`${req.endpoint}${req.query ? `?${req.query}` : ""}`);
185
+ // The cache is always safe to fill; the visible scene belongs to the
186
+ // latest request only (rapid param changes race their responses).
187
+ cachePut(cacheKey, data);
188
+ if (token !== sceneRequestToken)
189
+ return;
190
+ if (requestedMode === "maintenance") {
191
+ set({ findings: data, subgraph: null, dataState: "done" });
192
+ }
193
+ else {
194
+ set({ subgraph: data, findings: null, dataState: "done" });
195
+ }
196
+ }
197
+ catch (err) {
198
+ if (token !== sceneRequestToken)
199
+ return;
200
+ set({ dataState: "error", error: toGraphError(err) });
201
+ }
202
+ },
203
+ expandNode: async (path) => {
204
+ const state = get();
205
+ if (state.mode !== "local" || !state.subgraph)
206
+ return;
207
+ try {
208
+ const ego = await fetchGraphJson(`/neighborhood?${buildQuery({ center: path, depth: 1, direction: "both" })}`);
209
+ const current = get();
210
+ if (current.mode !== "local" || !current.subgraph)
211
+ return;
212
+ set({ subgraph: mergeSubgraphs(current.subgraph, ego) });
213
+ }
214
+ catch {
215
+ // Expansion is additive sugar — a failure leaves the scene as-is.
216
+ }
217
+ },
218
+ reset: () => set({
219
+ subgraph: null,
220
+ findings: null,
221
+ dataState: "idle",
222
+ error: null,
223
+ selectedId: null,
224
+ hoveredId: null,
225
+ sceneQuery: "",
226
+ }),
227
+ }));
228
+ // Dev-only handle for exercising the view with injected fixtures (the
229
+ // window.__chatStore precedent). The env read is defensive: outside a Vite
230
+ // build `import.meta.env` does not exist.
231
+ const devEnv = import.meta.env;
232
+ if (typeof window !== "undefined" && devEnv?.DEV) {
233
+ window.__graphStore =
234
+ useGraphStore;
235
+ }
236
+ //# sourceMappingURL=graph-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-store.js","sourceRoot":"","sources":["../../src/stores/graph-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  /** Which tab the settings panel opens on. */
2
2
  export type SettingsTab = "models" | "security";
3
+ /** Full-screen surface currently shown inside the AppShell. */
4
+ export type ActiveView = "chat" | "graph";
3
5
  interface UIState {
6
+ activeView: ActiveView;
4
7
  sessionPanelOpen: boolean;
5
8
  syncPanelOpen: boolean;
6
9
  whatsupPanelOpen: boolean;
@@ -9,6 +12,8 @@ interface UIState {
9
12
  filePanelOpen: boolean;
10
13
  settingsPanelOpen: boolean;
11
14
  settingsTab: SettingsTab;
15
+ /** Switch the full-screen view; closes any open panel so the new view starts clean. */
16
+ setActiveView: (view: ActiveView) => void;
12
17
  toggleSessionPanel: () => void;
13
18
  toggleSyncPanel: () => void;
14
19
  toggleWhatsupPanel: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-store.d.ts","sourceRoot":"","sources":["../../src/stores/ui-store.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD,UAAU,OAAO;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,mBAAmB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mBAAmB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,oEAAoE;IACpE,YAAY,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAYD,eAAO,MAAM,UAAU,sEA4BpB,CAAC"}
1
+ {"version":3,"file":"ui-store.d.ts","sourceRoot":"","sources":["../../src/stores/ui-store.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,UAAU,OAAO;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,uFAAuF;IACvF,aAAa,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,mBAAmB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mBAAmB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,oEAAoE;IACpE,YAAY,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAYD,eAAO,MAAM,UAAU,sEA8BpB,CAAC"}
@@ -10,7 +10,9 @@ const CLOSED = {
10
10
  };
11
11
  export const useUIStore = create((set) => ({
12
12
  ...CLOSED,
13
+ activeView: "chat",
13
14
  settingsTab: "models",
15
+ setActiveView: (view) => set({ ...CLOSED, activeView: view }),
14
16
  toggleSessionPanel: () => set((s) => ({ ...CLOSED, sessionPanelOpen: !s.sessionPanelOpen })),
15
17
  toggleSyncPanel: () => set((s) => ({ ...CLOSED, syncPanelOpen: !s.syncPanelOpen })),
16
18
  toggleWhatsupPanel: () => set((s) => ({ ...CLOSED, whatsupPanelOpen: !s.whatsupPanelOpen })),
@@ -1 +1 @@
1
- {"version":3,"file":"ui-store.js","sourceRoot":"","sources":["../../src/stores/ui-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-store.js","sourceRoot":"","sources":["../../src/stores/ui-store.ts"],"names":[],"mappings":"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"}