From e3f4c8a39bd970d20b82bd3b7af66f6e721554c7 Mon Sep 17 00:00:00 2001 From: Emilio Balda Date: Wed, 2 Sep 2026 13:03:45 +0300 Subject: [PATCH 1/4] chore: remove graph layout selector --- src/App.jsx | 15 --------------- src/Graph.jsx | 8 ++++---- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 34cbbb3..e6d7619 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -24,7 +24,6 @@ const Graph = lazy(() => import("./Graph.jsx").then((module) => ({ default: modu export function App({ bundle }) { const [search, setSearch] = useState(""); const [typeFilter, setTypeFilter] = useState(""); - const [layout, setLayout] = useState("cose"); const [selectedId, setSelectedId] = useState(bundle.nodes[0]?.data.id || null); const [resetSignal, setResetSignal] = useState(0); const [sidebarOpen, setSidebarOpen] = useState( @@ -115,19 +114,6 @@ export function App({ bundle }) { ))} - @@ -186,7 +172,6 @@ export function App({ bundle }) { Loading graph…}> { const graph = graphRef.current; From 1664173f2135a3ce616345a33806faa0306a20ee Mon Sep 17 00:00:00 2001 From: Emilio Balda Date: Wed, 2 Sep 2026 13:10:10 +0300 Subject: [PATCH 2/4] Migrate inline SVG icons to lucide-react Replaces hand-drawn sidebar toggle, theme, and search icons with lucide-react components for consistency and easier maintenance. Co-authored-by: Cursor --- package-lock.json | 10 ++++++++++ package.json | 1 + src/App.jsx | 17 ++++------------- src/Sidebar.jsx | 13 ++----------- 4 files changed, 17 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index dd72970..254e187 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "cytoscape": "^3.34.2", + "lucide-react": "^1.39.0", "markdown-to-jsx": "^7.7.17", "react": "^19.2.8", "react-dom": "^19.2.8", @@ -844,6 +845,15 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lucide-react": { + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.39.0.tgz", + "integrity": "sha512-y8nXoEwvqqIsF927NBWXODa4bfMrcUeEb/9sgpwFqg0gUjgn3j5Hznk+v7STmPgZ2iQ11JKlbQGdFRuTOwvYkA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", diff --git a/package.json b/package.json index 6bd4833..4f7614c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ }, "dependencies": { "cytoscape": "^3.34.2", + "lucide-react": "^1.39.0", "markdown-to-jsx": "^7.7.17", "react": "^19.2.8", "react-dom": "^19.2.8", diff --git a/src/App.jsx b/src/App.jsx index e6d7619..09e0a8e 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -13,6 +13,7 @@ // limitations under the License. import { lazy, Suspense, useCallback, useEffect, useMemo, useState } from "react"; +import { Moon, PanelLeft, Sun } from "lucide-react"; import { filterConceptIds } from "./navigation.js"; import { Sidebar } from "./Sidebar.jsx"; @@ -87,12 +88,7 @@ export function App({ bundle }) { aria-label={sidebarOpen ? "Hide file sidebar" : "Show file sidebar"} onClick={() => setSidebarOpen((open) => !open)} > - +