[UI]
AXIS UI subsystem: chart host, editor, UI shell, indicators, results, and Solid store—presentation without a closed engine.
UI
UI is the AXIS browser presentation layer: everything the operator sees and clicks that is not language evaluation. Engines are plugins; AXIS applies their outputs to panes, markers, and drawers.
Abstract
| Subsystem | Responsibility |
|---|---|
| Charting | lightweight-charts panes, drawings, crosshair |
| Editor | CodeMirror 6 Pine surface, dock/popout |
| UI shell | Topbar, watchlist, status, manager chrome |
| Indicators | Run pipeline, overlay apply, indicator list |
| Results & strategy | Event normalize, trades, export |
| Store | Solid store, persistence, active plugins |
Conceptual model
Invariant (AXIS ≠ engine): no Solid component imports PYNE directly; only engine modules talk to Python/HTTP runtimes.
Interface surface (visual map)
┌─ Topbar ──────────────────────────────────────────────┐
├─ Watchlist ─┬─ ChartHost + drawings ─┬─ Indicators ─┬─ Editor ─┤
├─ Results drawer ──────────────────────────────────────┤
├─ System logs ─────────────────────────────────────────┤
└─ StatusBar ───────────────────────────────────────────┘
+ Settings modal + Plugin Manager modal
Implemented in frontend/src/app.tsx.
Stack
| Concern | Choice |
|---|---|
| Framework | SolidJS 1.9 |
| Bundler | Vite 6 + vite-plugin-solid |
| Charts | lightweight-charts 5 |
| Editor | CodeMirror 6 |
| Icons | lucide-solid |
| Style | Tailwind 4 + void tokens (data-theme) |
Relation to other tracks
- Operators: End User
- Structure: Architecture
- Contracts: Plugins
- Language: PYNE runtime
See also
frontend/LEGACY.md— what is not the AXIS product pathfrontend/TESTING.md— unit/e2e around UI modules