From b5032de1e3c8c27ce375137584c4ed873a13bdfd Mon Sep 17 00:00:00 2001 From: Sergio Date: Sat, 23 May 2026 15:34:54 +0000 Subject: [PATCH] gioser-graph: grid layout 3 cols, line brightness by weight, breathing animation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replaced force-directed layout with explicit grid: 3 columns wide, rows based on node count (minimum 3 visual rows) - Nodes are larger: 170x44px with 8px radius - Lines: color brightness + stroke opacity based on normalized weight (weight 1.0 → white #ffff, 0.5 → dimmer rgb) - CSS animation 'graph-breathe': opacity pulses slowly (4.2s ease-in-out) - Hover: drop-shadow glow + fill-opacity increase - Glow circle behind each node (subtle) --- crates/apps/gioser-web/pkg/gioser_web.d.ts | 10 +- crates/apps/gioser-web/pkg/gioser_web.js | 50 +- crates/apps/gioser-web/pkg/gioser_web_bg.wasm | Bin 526317 -> 526424 bytes .../gioser-web/pkg/gioser_web_bg.wasm.d.ts | 10 +- .../gioser/gioser-graph-web/src/lib.rs | 428 +++++++++--------- 5 files changed, 251 insertions(+), 247 deletions(-) diff --git a/crates/apps/gioser-web/pkg/gioser_web.d.ts b/crates/apps/gioser-web/pkg/gioser_web.d.ts index d5a7121..d37c8a2 100644 --- a/crates/apps/gioser-web/pkg/gioser_web.d.ts +++ b/crates/apps/gioser-web/pkg/gioser_web.d.ts @@ -8,12 +8,12 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl export interface InitOutput { readonly memory: WebAssembly.Memory; readonly boot: () => void; + readonly __wasm_bindgen_func_elem_219: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_1408: (a: number, b: number, c: number, d: number) => void; readonly __wasm_bindgen_func_elem_218: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_1398: (a: number, b: number, c: number, d: number) => void; - readonly __wasm_bindgen_func_elem_217: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_217_3: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_494: (a: number, b: number, c: number) => void; - readonly __wasm_bindgen_func_elem_593: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_218_3: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_496: (a: number, b: number, c: number) => void; + readonly __wasm_bindgen_func_elem_602: (a: number, b: number, c: number) => void; readonly __wasm_bindgen_func_elem_289: (a: number, b: number, c: number) => void; readonly __wasm_bindgen_func_elem_288: (a: number, b: number) => void; readonly __wbindgen_export: (a: number, b: number) => number; diff --git a/crates/apps/gioser-web/pkg/gioser_web.js b/crates/apps/gioser-web/pkg/gioser_web.js index 5a39956..df3c8bd 100644 --- a/crates/apps/gioser-web/pkg/gioser_web.js +++ b/crates/apps/gioser-web/pkg/gioser_web.js @@ -297,6 +297,16 @@ function __wbg_get_imports() { const ret = result; return ret; }, + __wbg_instanceof_SvgCircleElement_b8f3b45ab1053e3e: function(arg0) { + let result; + try { + result = getObject(arg0) instanceof SVGCircleElement; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, __wbg_instanceof_SvgElement_46537942d3e1376d: function(arg0) { let result; try { @@ -560,33 +570,33 @@ function __wbg_get_imports() { return ret; }, __wbindgen_cast_0000000000000001: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 176, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_1398); + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 179, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`. + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_1408); return addHeapObject(ret); }, __wbindgen_cast_0000000000000002: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [F64], shim_idx: 2, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_218); + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_219); return addHeapObject(ret); }, __wbindgen_cast_0000000000000003: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("Event")], shim_idx: 6, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_217); + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_218); return addHeapObject(ret); }, __wbindgen_cast_0000000000000004: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("KeyboardEvent")], shim_idx: 6, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_217_3); + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_218_3); return addHeapObject(ret); }, __wbindgen_cast_0000000000000005: function(arg0, arg1) { // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("MouseEvent")], shim_idx: 137, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_494); + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_496); return addHeapObject(ret); }, __wbindgen_cast_0000000000000006: function(arg0, arg1) { - // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("MouseEvent")], shim_idx: 170, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. - const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_593); + // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [NamedExternref("MouseEvent")], shim_idx: 173, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`. + const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_602); return addHeapObject(ret); }, __wbindgen_cast_0000000000000007: function(arg0, arg1) { @@ -627,30 +637,30 @@ function __wasm_bindgen_func_elem_288(arg0, arg1) { wasm.__wasm_bindgen_func_elem_288(arg0, arg1); } -function __wasm_bindgen_func_elem_217(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_217(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_218(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_218(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_217_3(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_217_3(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_218_3(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_218_3(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_494(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_494(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_496(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_496(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_593(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_593(arg0, arg1, addHeapObject(arg2)); +function __wasm_bindgen_func_elem_602(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_602(arg0, arg1, addHeapObject(arg2)); } function __wasm_bindgen_func_elem_289(arg0, arg1, arg2) { wasm.__wasm_bindgen_func_elem_289(arg0, arg1, addHeapObject(arg2)); } -function __wasm_bindgen_func_elem_1398(arg0, arg1, arg2) { +function __wasm_bindgen_func_elem_1408(arg0, arg1, arg2) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.__wasm_bindgen_func_elem_1398(retptr, arg0, arg1, addHeapObject(arg2)); + wasm.__wasm_bindgen_func_elem_1408(retptr, arg0, arg1, addHeapObject(arg2)); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { @@ -661,8 +671,8 @@ function __wasm_bindgen_func_elem_1398(arg0, arg1, arg2) { } } -function __wasm_bindgen_func_elem_218(arg0, arg1, arg2) { - wasm.__wasm_bindgen_func_elem_218(arg0, arg1, arg2); +function __wasm_bindgen_func_elem_219(arg0, arg1, arg2) { + wasm.__wasm_bindgen_func_elem_219(arg0, arg1, arg2); } function addHeapObject(obj) { diff --git a/crates/apps/gioser-web/pkg/gioser_web_bg.wasm b/crates/apps/gioser-web/pkg/gioser_web_bg.wasm index 49ad85b7b51d75efcf5a83d2fdd0ca29fd85936b..310d68efcb84f06bfb9fefcf20f8c3d1501e2c88 100644 GIT binary patch delta 70874 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Ð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 delta 71444 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 void; +export const __wasm_bindgen_func_elem_219: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_1408: (a: number, b: number, c: number, d: number) => void; export const __wasm_bindgen_func_elem_218: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_1398: (a: number, b: number, c: number, d: number) => void; -export const __wasm_bindgen_func_elem_217: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_217_3: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_494: (a: number, b: number, c: number) => void; -export const __wasm_bindgen_func_elem_593: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_218_3: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_496: (a: number, b: number, c: number) => void; +export const __wasm_bindgen_func_elem_602: (a: number, b: number, c: number) => void; export const __wasm_bindgen_func_elem_289: (a: number, b: number, c: number) => void; export const __wasm_bindgen_func_elem_288: (a: number, b: number) => void; export const __wbindgen_export: (a: number, b: number) => number; diff --git a/crates/modules/gioser/gioser-graph-web/src/lib.rs b/crates/modules/gioser/gioser-graph-web/src/lib.rs index b089b4d..aad4d8c 100644 --- a/crates/modules/gioser/gioser-graph-web/src/lib.rs +++ b/crates/modules/gioser/gioser-graph-web/src/lib.rs @@ -1,16 +1,11 @@ //! `gioser-graph-web` — widget de grafo semántico SVG inline. //! -//! Fetchea `GET /graph` de la API de gioser, parsea nodos + aristas, -//! y renderiza un grafo SVG interactivo dentro de un contenedor dado. -//! -//! Los nodos son **rectángulos redondeados** horizontales con el texto -//! dentro (no círculos) para mejor legibilidad. Las aristas varían en -//! grosor según la intensidad semántica (k-NN weight). -//! -//! ## Contrato DOM -//! -//! El caller pasa un `
` contenedor y un callback `on_navigate(doc_id)`. -//! El widget monta un `` dentro con viewBox fijo. +//! Layout grid: 3 columnas, filas según la cantidad de nodos. +//! Los nodos son rectángulos redondeados con texto + subtexto (camino). +//! Aristas se dibujan entre todos los pares con líneas semitransparentes: +//! mientras mayor el weight, más opaca y brillante la línea. +//! Animación CSS de respiración suave en el SVG. +//! Hover: glow + opacidad. use std::cell::RefCell; use std::rc::Rc; @@ -21,7 +16,7 @@ use wasm_bindgen::JsCast; use wasm_bindgen_futures::JsFuture; use web_sys::{ Document, HtmlElement, MouseEvent, Response, SvgLineElement, SvgRectElement, - SvgsvgElement, SvgTextElement, + SvgsvgElement, SvgTextElement, SvgCircleElement, }; pub(crate) fn document() -> Option { @@ -79,37 +74,49 @@ struct GraphStats { type NavCallback = Rc>>>; -const CANVAS_W: f64 = 600.0; -const CANVAS_H: f64 = 270.0; -/// Ancho del rectángulo nodo (horizontal para texto largo). -const NODE_W: f64 = 120.0; -/// Alto del rectángulo nodo. -const NODE_H: f64 = 28.0; +const CANVAS_W: f64 = 800.0; +const CANVAS_H: f64 = 420.0; +const NODE_W: f64 = 170.0; // más grandes +const NODE_H: f64 = 44.0; // más grandes +const COLS: usize = 3; const CAMINO_COLORS: &[(&str, &str)] = &[ - ("logos", "#d0dbff"), - ("aire", "#d0dbff"), - ("nomos", "#f59056"), - ("fuego", "#f59056"), - ("kay", "#d49873"), - ("tierra", "#d49873"), - ("uku", "#6cd0f3"), - ("agua", "#6cd0f3"), + ("logos", "#d0dbff"), ("aire", "#d0dbff"), + ("nomos", "#f59056"), ("fuego", "#f59056"), + ("kay", "#d49873"), ("tierra", "#d49873"), + ("uku", "#6cd0f3"), ("agua", "#6cd0f3"), ]; fn camino_color(camino: &str) -> &str { for (k, v) in CAMINO_COLORS { - if *k == camino { - return v; - } + if *k == camino { return v; } } "#888888" } +fn weight_alpha(w: Option) -> f64 { + // weight 0.5 → 0.40, weight 1.0 → 0.85 + match w { + Some(v) => 0.40 + (v - 0.5).max(0.0) * 0.9, + None => 0.35, + } + .clamp(0.15, 0.95) +} + +fn weight_stroke_color(w: Option, base: &str) -> String { + let alpha = weight_alpha(w); + // Extraer color base, añadir alpha + // Asumimos formato #rrggbb + if base.len() >= 7 && alpha < 1.0 { + format!("{}", base) // se sobreescribe con stroke-opacity + } else { + base.to_string() + } +} + pub struct GraphWidget { container: HtmlElement, api_url: String, - svg: Option, nodes: Vec, edges: Vec, on_navigate: NavCallback, @@ -130,7 +137,6 @@ impl GraphWidget { Self { container, api_url: api_url.to_string(), - svg: None, nodes: Vec::new(), edges: Vec::new(), on_navigate: Rc::new(RefCell::new(on_navigate)), @@ -164,10 +170,6 @@ impl GraphWidget { self.nodes = nodes; self.edges = edges; - // Pequeño delay para evitar "Layout was forced before fully loaded" - let _ = js_sys::Promise::resolve(&JsValue::NULL); - let mut_self = &*self as *const GraphWidget; - // Render síncrono, el delay no es necesario pero mantenemos la deferencia. self.render(); Ok(()) } @@ -179,7 +181,7 @@ impl GraphWidget { return; } - let positions = force_layout(&self.nodes, &self.edges, CANVAS_W, CANVAS_H); + let positions = grid_layout(&self.nodes, CANVAS_W, CANVAS_H); let ns = "http://www.w3.org/2000/svg"; let svg: SvgsvgElement = self @@ -188,293 +190,285 @@ impl GraphWidget { .unwrap() .dyn_into() .unwrap(); - svg.set_attribute("viewBox", &format!("0 0 {} {}", CANVAS_W as u32, CANVAS_H as u32)) - .ok(); + svg.set_attribute("viewBox", &format!("0 0 {} {}", CANVAS_W as u32, CANVAS_H as u32)).ok(); svg.set_attribute("width", "100%").ok(); svg.set_attribute("height", &format!("{}px", CANVAS_H as u32)).ok(); + svg.set_attribute("preserveAspectRatio", "xMidYMid meet").ok(); svg.style().set_property("display", "block").ok(); svg.style().set_property("margin", "1.5rem auto 0").ok(); svg.style().set_property("max-width", "100%").ok(); - svg.style() - .set_property("background", "rgba(255,255,255,0.02)") - .ok(); + svg.style().set_property("height", "auto").ok(); + svg.style().set_property("background", "rgba(255,255,255,0.02)").ok(); svg.style().set_property("border-radius", "12px").ok(); - svg.style() - .set_property("border", "1px solid rgba(216,168,93,0.15)") - .ok(); + svg.style().set_property("border", "1px solid rgba(216,168,93,0.15)").ok(); - // ── Aristas con grosor proporcional al weight ── + // Estilo para animación de respiración en el SVG + // Se añade un