@cryptiklemur/lattice 1.16.5 → 1.17.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.
- package/client/src/components/analytics/chartTokens.ts +18 -9
- package/client/src/components/sidebar/Sidebar.tsx +1 -1
- package/client/src/components/workspace/TabBar.tsx +3 -2
- package/client/src/components/workspace/WorkspaceView.tsx +2 -0
- package/client/src/stores/workspace.ts +2 -1
- package/package.json +1 -1
|
@@ -72,17 +72,26 @@ var _cacheKey: string = "";
|
|
|
72
72
|
* the same render cycle are cheap.
|
|
73
73
|
*/
|
|
74
74
|
export function getChartColors(): ChartColors {
|
|
75
|
-
var key = css("--color-primary") + css("--color-base-content");
|
|
75
|
+
var key = css("--color-primary") + css("--color-base-content") + css("--base0D");
|
|
76
76
|
if (_cache && _cacheKey === key) return _cache;
|
|
77
77
|
|
|
78
|
-
var
|
|
79
|
-
var
|
|
80
|
-
var
|
|
81
|
-
var
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
var
|
|
85
|
-
var
|
|
78
|
+
var b08 = css("--base08");
|
|
79
|
+
var b09 = css("--base09");
|
|
80
|
+
var b0A = css("--base0A");
|
|
81
|
+
var b0B = css("--base0B");
|
|
82
|
+
var b0C = css("--base0C");
|
|
83
|
+
var b0D = css("--base0D");
|
|
84
|
+
var b0E = css("--base0E");
|
|
85
|
+
var b0F = css("--base0F");
|
|
86
|
+
|
|
87
|
+
var primary = b0D || oklch(css("--color-primary"));
|
|
88
|
+
var secondary = b0E || oklch(css("--color-secondary"));
|
|
89
|
+
var accent = b0C || oklch(css("--color-accent"));
|
|
90
|
+
var success = b0B || oklch(css("--color-success"));
|
|
91
|
+
var warning = b0A || oklch(css("--color-warning"));
|
|
92
|
+
var error = b08 || oklch(css("--color-error"));
|
|
93
|
+
var orange = b09 || warning;
|
|
94
|
+
var magenta = b0F || secondary;
|
|
86
95
|
var contentRaw = css("--color-base-content");
|
|
87
96
|
|
|
88
97
|
var tickFill = contentRaw
|
|
@@ -322,7 +322,7 @@ export function Sidebar({ onSessionSelect }: { onSessionSelect?: () => void }) {
|
|
|
322
322
|
})}
|
|
323
323
|
<button
|
|
324
324
|
type="button"
|
|
325
|
-
onClick={
|
|
325
|
+
onClick={function () { openTab("analytics"); }}
|
|
326
326
|
className="flex items-center gap-2 px-2 py-1.5 rounded-lg text-[11px] text-base-content/40 hover:text-base-content/70 hover:bg-base-300/30 transition-colors"
|
|
327
327
|
>
|
|
328
328
|
<BarChart3 size={12} />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useState, useEffect, useRef } from "react";
|
|
2
|
-
import { X, Columns2, Rows2, MessageSquare, FolderOpen, TerminalSquare, StickyNote, Calendar, Bookmark } from "lucide-react";
|
|
2
|
+
import { X, Columns2, Rows2, MessageSquare, FolderOpen, TerminalSquare, StickyNote, Calendar, Bookmark, BarChart3 } from "lucide-react";
|
|
3
3
|
import { useWorkspace } from "../../hooks/useWorkspace";
|
|
4
4
|
import { useSession } from "../../hooks/useSession";
|
|
5
5
|
import type { Tab, TabType } from "../../stores/workspace";
|
|
@@ -23,6 +23,7 @@ var TAB_ICONS: Record<TabType, typeof MessageSquare> = {
|
|
|
23
23
|
notes: StickyNote,
|
|
24
24
|
tasks: Calendar,
|
|
25
25
|
bookmarks: Bookmark,
|
|
26
|
+
analytics: BarChart3,
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
export function TabBar({ paneId, isActivePane }: TabBarProps) {
|
|
@@ -69,7 +70,7 @@ export function TabBar({ paneId, isActivePane }: TabBarProps) {
|
|
|
69
70
|
activeTabId = workspace.activeTabId;
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
var shouldShow = paneTabs.length > 1 ||
|
|
73
|
+
var shouldShow = paneTabs.length > 1 || workspace.panes.length > 1;
|
|
73
74
|
|
|
74
75
|
function getTabLabel(tab: Tab): string {
|
|
75
76
|
if (tab.type === "chat" && tab.sessionId) {
|
|
@@ -10,6 +10,7 @@ import { FileBrowser } from "./FileBrowser";
|
|
|
10
10
|
import { NotesView } from "./NotesView";
|
|
11
11
|
import { ScheduledTasksView } from "./ScheduledTasksView";
|
|
12
12
|
import { BookmarksView } from "./BookmarksView";
|
|
13
|
+
import { AnalyticsView } from "../analytics/AnalyticsView";
|
|
13
14
|
import type { Pane, Tab } from "../../stores/workspace";
|
|
14
15
|
|
|
15
16
|
var NON_CHAT_COMPONENTS: Record<string, () => React.JSX.Element> = {
|
|
@@ -18,6 +19,7 @@ var NON_CHAT_COMPONENTS: Record<string, () => React.JSX.Element> = {
|
|
|
18
19
|
notes: NotesView,
|
|
19
20
|
tasks: ScheduledTasksView,
|
|
20
21
|
bookmarks: BookmarksView,
|
|
22
|
+
analytics: AnalyticsView,
|
|
21
23
|
};
|
|
22
24
|
|
|
23
25
|
function PaneContent({ pane, tabs, isActive, onFocus }: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Store } from "@tanstack/react-store";
|
|
2
2
|
|
|
3
|
-
export type TabType = "chat" | "files" | "terminal" | "notes" | "tasks" | "bookmarks";
|
|
3
|
+
export type TabType = "chat" | "files" | "terminal" | "notes" | "tasks" | "bookmarks" | "analytics";
|
|
4
4
|
|
|
5
5
|
export interface Tab {
|
|
6
6
|
id: string;
|
|
@@ -69,6 +69,7 @@ export function openTab(type: TabType): void {
|
|
|
69
69
|
notes: "Notes",
|
|
70
70
|
tasks: "Tasks",
|
|
71
71
|
bookmarks: "Bookmarks",
|
|
72
|
+
analytics: "Analytics",
|
|
72
73
|
};
|
|
73
74
|
var tab: Tab = {
|
|
74
75
|
id: type,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptiklemur/lattice",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.1",
|
|
4
4
|
"description": "Multi-machine agentic dashboard for Claude Code. Monitor sessions, manage MCP servers and skills, orchestrate across mesh-networked nodes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Aaron Scherer <me@aaronscherer.me>",
|