-
Notifications
You must be signed in to change notification settings - Fork 1
Flow animation on connectors: element.pulse(connectorId, { durationMs, color?, glow? }) #13
Description
Besoin
Un viewer temps réel (0rchestria) anime des livraisons de messages le long des connecteurs. Aujourd'hui il triche : rebascule le connecteur DOTTED→SOLID + width pendant ~1,4 s via un remplacement complet du modèle. On veut une vraie API d'animation de flux.
API retenue (impérative, éphémère)
element.pulse(connectorId, { durationMs, color?, glow? })
- Pointillés qui défilent le long du chemin, dans le sens from→to du connecteur.
- Animation en CSS (
stroke-dashoffset), pas de re-render JS par frame. color?: surcharge la couleur du flux (défaut : couleur du connecteur).glow?: boolean: halo doux (filtre SVG / drop-shadow) sur le connecteur actif — surtout utile en thème sombre.durationMs: le pulse s'auto-nettoie à la fin.
Contrainte : composant DOM uniquement
Un pulse est une animation d'interaction runtime, pas un document exporté. Le renderer headless (render-svg.js) ne le rend pas — un export PDF/SVG est statique. Donc le code vit dans lit-isoflow.js seul, l'état "actif" est runtime (hors modèle), et l'invariant des deux renderers n'est pas concerné.
Plus tard (non bloquant)
Un pendant déclaratif connector.animated = true dans le modèle, pour un flux continu (agent qui streame en permanence), exportable et persistant. Suivi séparément.
Demandé par une session embarquant lit-isoflow en link: local, qui validera à chaud.