gioser-web: replace Rust SVG graph with Cytoscape.js

- Add cytoscape-graph.js: fetches /graph, renders with Cytoscape.js
- Style: round-rect nodes, cose layout, edge width proportional to weight
- Click: center node + fade rest (wineandcheesemap effect)
- Double-click: trigger navigation callback
- Hover: tooltip with preview text
- Click background: restore all
- Remove gioser-graph-web crate dependency (no longer needed)
- Add CDN cytoscape@3.30.4 + defer script to index.html
- gioser-graph custom element auto-initialized on mount
This commit is contained in:
Sergio
2026-05-23 15:17:28 +00:00
parent 529287f01d
commit d4c31d70b7
10 changed files with 853 additions and 548 deletions
Generated
+12 -405
View File
@@ -1347,61 +1347,6 @@ dependencies = [
"fs_extra",
]
[[package]]
name = "axum"
version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f"
dependencies = [
"async-trait",
"axum-core",
"bytes",
"futures-util",
"http",
"http-body",
"http-body-util",
"hyper",
"hyper-util",
"itoa",
"matchit",
"memchr",
"mime",
"percent-encoding",
"pin-project-lite",
"rustversion",
"serde",
"serde_json",
"serde_path_to_error",
"serde_urlencoded",
"sync_wrapper",
"tokio",
"tower",
"tower-layer",
"tower-service",
"tracing",
]
[[package]]
name = "axum-core"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199"
dependencies = [
"async-trait",
"bytes",
"futures-util",
"http",
"http-body",
"http-body-util",
"mime",
"pin-project-lite",
"rustversion",
"sync_wrapper",
"tower-layer",
"tower-service",
"tracing",
]
[[package]]
name = "backtrace"
version = "0.3.76"
@@ -2251,15 +2196,6 @@ dependencies = [
"unicode-security",
]
[[package]]
name = "celestial-eop-data"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0db7627f7cbdcaed155e66503e07025e10701a3566bc211a85e35b918bc40812"
dependencies = [
"zstd",
]
[[package]]
name = "cexpr"
version = "0.6.0"
@@ -2989,196 +2925,6 @@ dependencies = [
"unicode-segmentation",
]
[[package]]
name = "cosmobiologia"
version = "0.1.0"
dependencies = [
"brahman-sidecar",
"cosmobiologia-canvas",
"cosmobiologia-card",
"cosmobiologia-engine",
"cosmobiologia-model",
"cosmobiologia-modules",
"cosmobiologia-panel",
"cosmobiologia-store",
"cosmobiologia-theme",
"cosmobiologia-tree",
"directories",
"gpui",
"nahual-core",
"nahual-theme",
"nahual-widget-container-core",
"nahual-widget-splitter",
"nahual-widget-theme-switcher",
"serde_json",
]
[[package]]
name = "cosmobiologia-canvas"
version = "0.1.0"
dependencies = [
"cosmobiologia-engine",
"cosmobiologia-model",
"cosmobiologia-modules",
"cosmobiologia-render",
"cosmobiologia-theme",
"gpui",
"nahual-theme",
]
[[package]]
name = "cosmobiologia-card"
version = "0.1.0"
dependencies = [
"brahman-card",
"brahman-sidecar",
"cosmobiologia-engine",
"cosmobiologia-model",
"directories",
"postcard",
"serde",
"thiserror 2.0.18",
"tokio",
"tracing",
"ulid",
]
[[package]]
name = "cosmobiologia-cli"
version = "0.1.0"
dependencies = [
"anyhow",
"clap",
"cosmobiologia-card",
"cosmobiologia-model",
"serde_json",
"tokio",
]
[[package]]
name = "cosmobiologia-corpus"
version = "0.1.0"
dependencies = [
"ron",
"serde",
]
[[package]]
name = "cosmobiologia-engine"
version = "0.1.0"
dependencies = [
"cosmobiologia-corpus",
"cosmobiologia-model",
"cosmobiologia-render",
"eternal-astrology",
"eternal-sky",
"serde",
"thiserror 2.0.18",
]
[[package]]
name = "cosmobiologia-model"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
"thiserror 2.0.18",
"ulid",
]
[[package]]
name = "cosmobiologia-modules"
version = "0.1.0"
dependencies = [
"cosmobiologia-engine",
"cosmobiologia-model",
"serde",
"serde_json",
]
[[package]]
name = "cosmobiologia-panel"
version = "0.1.0"
dependencies = [
"cosmobiologia-model",
"cosmobiologia-modules",
"cosmobiologia-theme",
"gpui",
"nahual-theme",
"serde_json",
]
[[package]]
name = "cosmobiologia-render"
version = "0.1.0"
dependencies = [
"cosmobiologia-model",
"serde",
]
[[package]]
name = "cosmobiologia-server"
version = "0.1.0"
dependencies = [
"axum",
"clap",
"cosmobiologia-engine",
"cosmobiologia-model",
"cosmobiologia-render",
"cosmobiologia-store",
"directories",
"serde",
"serde_json",
"thiserror 2.0.18",
"tokio",
"tower-http",
"tracing",
"tracing-subscriber",
]
[[package]]
name = "cosmobiologia-store"
version = "0.1.0"
dependencies = [
"cosmobiologia-model",
"rusqlite",
"serde",
"serde_json",
"thiserror 2.0.18",
"ulid",
]
[[package]]
name = "cosmobiologia-theme"
version = "0.1.0"
dependencies = [
"gpui",
"nahual-theme",
]
[[package]]
name = "cosmobiologia-tree"
version = "0.1.0"
dependencies = [
"cosmobiologia-model",
"cosmobiologia-store",
"gpui",
"nahual-theme",
"nahual-widget-text-input",
"nahual-widget-tree",
]
[[package]]
name = "cosmobiologia-web"
version = "0.1.0"
dependencies = [
"cosmobiologia-render",
"getrandom 0.3.4",
"serde",
"serde_json",
"wasm-bindgen",
]
[[package]]
name = "cpufeatures"
version = "0.2.17"
@@ -4152,88 +3898,6 @@ dependencies = [
"svg_fmt",
]
[[package]]
name = "eternal-astrology"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-core",
"eternal-ephemeris",
"eternal-sky",
"eternal-time",
"eternal-validation",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-coords"
version = "0.1.1-alpha.2"
dependencies = [
"celestial-eop-data",
"eternal-core",
"eternal-time",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-core"
version = "0.1.1-alpha.2"
dependencies = [
"libm",
"once_cell",
"regex",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-ephemeris"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-coords",
"eternal-core",
"eternal-time",
"libm",
"memmap2",
]
[[package]]
name = "eternal-sky"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-coords",
"eternal-core",
"eternal-ephemeris",
"eternal-time",
"eternal-validation",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-time"
version = "0.1.1-alpha.2"
dependencies = [
"eternal-core",
"libm",
"thiserror 2.0.18",
]
[[package]]
name = "eternal-validation"
version = "0.1.1-alpha.2"
dependencies = [
"anyhow",
"clap",
"eternal-coords",
"eternal-core",
"eternal-ephemeris",
"eternal-time",
"libm",
"serde",
"serde_json",
]
[[package]]
name = "euclid"
version = "0.22.14"
@@ -5081,6 +4745,18 @@ dependencies = [
name = "gioser-geom"
version = "0.1.0"
[[package]]
name = "gioser-graph-web"
version = "0.1.0"
dependencies = [
"js-sys",
"serde",
"serde_json",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
]
[[package]]
name = "gioser-palette"
version = "0.1.0"
@@ -5841,24 +5517,12 @@ dependencies = [
"pin-project-lite",
]
[[package]]
name = "http-range-header"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c"
[[package]]
name = "httparse"
version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
[[package]]
name = "httpdate"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
[[package]]
name = "humantime"
version = "2.3.0"
@@ -5879,7 +5543,6 @@ dependencies = [
"http",
"http-body",
"httparse",
"httpdate",
"itoa",
"pin-project-lite",
"smallvec",
@@ -7503,12 +7166,6 @@ dependencies = [
"regex-automata",
]
[[package]]
name = "matchit"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
[[package]]
name = "matilda"
version = "0.1.0"
@@ -12066,17 +11723,6 @@ dependencies = [
"serde",
]
[[package]]
name = "serde_path_to_error"
version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457"
dependencies = [
"itoa",
"serde",
"serde_core",
]
[[package]]
name = "serde_repr"
version = "0.1.20"
@@ -13851,7 +13497,6 @@ dependencies = [
"tokio",
"tower-layer",
"tower-service",
"tracing",
]
[[package]]
@@ -13862,23 +13507,13 @@ checksum = "68d6fdd9f81c2819c9a8b0e0cd91660e7746a8e6ea2ba7c6b2b057985f6bcb51"
dependencies = [
"bitflags 2.11.1",
"bytes",
"futures-core",
"futures-util",
"http",
"http-body",
"http-body-util",
"http-range-header",
"httpdate",
"mime",
"mime_guess",
"percent-encoding",
"pin-project-lite",
"tokio",
"tokio-util",
"tower",
"tower-layer",
"tower-service",
"tracing",
"url",
]
@@ -16564,34 +16199,6 @@ version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
[[package]]
name = "zstd"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
version = "7.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d"
dependencies = [
"zstd-sys",
]
[[package]]
name = "zstd-sys"
version = "2.0.16+zstd.1.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748"
dependencies = [
"cc",
"pkg-config",
]
[[package]]
name = "zune-core"
version = "0.5.1"