# aristrahatsuyu/qurx-report architecture

> Architecture diagram of the GitHub repository aristrahatsuyu/qurx-report, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aristrahatsuyu/qurx-report
- Repository: https://github.com/aristrahatsuyu/qurx-report

## Overview

QURX Report turns declarative `.qr` reports and host-provided variables into embeddable dashboards. The main flow is authoring and compilation to IR, runtime validation and variable resolution, then DOM rendering; host applications supply data and handle emitted actions. Framework packages adapt lifecycle and events around the renderer. The graph preserves documented chart, widget, diagnostics, CLI, theme, and integration capabilities; some renderer internals are unsampled, so uncertain wiring is omitted.

Main entry points: [`packages/renderer/src/index.ts`](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/index.ts) (Report runtime), [`packages/compiler/src/index.ts`](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/compiler/src/index.ts) (QR compiler), [`packages/angular/src/index.ts`](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/angular/src/index.ts) (Angular adapter), [`packages/compiler/src/cli.ts`](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/compiler/src/cli.ts) (Compiler CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Authoring and compilation"]
  node_compiler["QR compiler<br/>[index.ts]"]
  node_cli["Compiler CLI<br/>[cli.ts]"]
end

subgraph group_core["Core report model"]
  node_ir["Report IR<br/>[model.ts]"]
  node_registry["Component catalog<br/>[registry.ts]"]
  node_validation["IR and data validation<br/>[validate.ts]"]
  node_values["Bindings and values<br/>[values.ts]"]
  node_store[("Variable store<br/>[store.ts]")]
  node_theme["Theme handling<br/>[theme.ts]"]
end

subgraph group_rendering["Rendering runtime"]
  node_renderer["Report runtime<br/>[index.ts]"]
  node_widgets["DOM widgets<br/>[widgets.ts]"]
  node_charts["Chart rendering<br/>[charts.ts]"]
  node_styles["Report styles<br/>[styles.ts]"]
  node_renderer_theme["Runtime theme<br/>[theme.ts]"]
end

subgraph group_adapters["Framework adapters"]
  node_webcomponent["Web Component<br/>[index.ts]"]
  node_react["React adapter<br/>[index.ts]"]
  node_vue["Vue adapter<br/>[index.ts]"]
  node_svelte["Svelte adapter<br/>[QurxReport.svelte]"]
  node_solid["Solid adapter<br/>[index.ts]"]
  node_angular["Angular adapter<br/>[index.ts]"]
end

node_author(("Agent or developer"))
node_host(("Host application"))
node_data(("Host data sources"))

node_author -->|"provides source"| node_compiler
node_compiler -->|"reads descriptors"| node_registry
node_compiler -->|"validates IR"| node_validation
node_compiler -->|"produces IR"| node_ir
node_author -->|"invokes"| node_cli
node_cli -->|"compiles source"| node_compiler
node_host -->|"mounts report"| node_renderer
node_host -->|"passes variables"| node_renderer
node_data -->|"supplies results"| node_host
node_renderer -->|"compiles source"| node_compiler
node_renderer -->|"validates report"| node_validation
node_renderer -->|"updates variables"| node_store
node_renderer -->|"resolves bindings"| node_values
node_renderer -->|"validates theme"| node_theme
node_renderer -->|"creates elements"| node_widgets
node_renderer -->|"emits actions"| node_host
node_widgets -.->|"uses descriptors"| node_registry
node_renderer_theme -.->|"uses theme rules"| node_theme
node_webcomponent -->|"mounts and updates"| node_renderer
node_react -->|"mounts and updates"| node_renderer
node_vue -->|"mounts and updates"| node_renderer
node_svelte -->|"mounts and updates"| node_renderer
node_solid -->|"mounts and updates"| node_renderer
node_angular -->|"mounts report"| node_renderer
node_angular -->|"defines element"| node_webcomponent

click node_compiler "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/compiler/src/index.ts"
click node_cli "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/compiler/src/cli.ts"
click node_ir "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/model.ts"
click node_registry "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/registry.ts"
click node_validation "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/validate.ts"
click node_values "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/values.ts"
click node_store "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/store.ts"
click node_theme "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/theme.ts"
click node_renderer "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/index.ts"
click node_widgets "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/widgets.ts"
click node_charts "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/charts.ts"
click node_styles "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/styles.ts"
click node_renderer_theme "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/theme.ts"
click node_webcomponent "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/web-component/src/index.ts"
click node_react "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/react/src/index.ts"
click node_vue "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/vue/src/index.ts"
click node_svelte "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/svelte/src/QurxReport.svelte"
click node_solid "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/solid/src/index.ts"
click node_angular "https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/angular/src/index.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_compiler,node_cli toneBlue
class node_ir,node_registry,node_validation,node_values,node_store,node_theme toneAmber
class node_renderer,node_widgets,node_charts,node_styles,node_renderer_theme toneMint
class node_webcomponent,node_react,node_vue,node_svelte,node_solid,node_angular toneRose
class node_author,node_host,node_data toneIndigo
```

## Components

### Authoring and compilation

- [QR compiler](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/compiler/src/index.ts): `packages/compiler/src/index.ts`
- [Compiler CLI](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/compiler/src/cli.ts): `packages/compiler/src/cli.ts`

### Core report model

- [Report IR](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/model.ts): `packages/core/src/model.ts`
- [Component catalog](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/registry.ts): `packages/core/src/registry.ts`
- [IR and data validation](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/validate.ts): `packages/core/src/validate.ts`
- [Bindings and values](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/values.ts): `packages/core/src/values.ts`
- [Variable store](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/store.ts): `packages/core/src/store.ts`
- [Theme handling](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/core/src/theme.ts): `packages/core/src/theme.ts`

### Rendering runtime

- [Report runtime](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/index.ts): `packages/renderer/src/index.ts`
- [DOM widgets](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/widgets.ts): `packages/renderer/src/widgets.ts`
- [Chart rendering](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/charts.ts): `packages/renderer/src/charts.ts`
- [Report styles](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/styles.ts): `packages/renderer/src/styles.ts`
- [Runtime theme](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/renderer/src/theme.ts): `packages/renderer/src/theme.ts`

### Framework adapters

- [Web Component](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/web-component/src/index.ts): `packages/web-component/src/index.ts`
- [React adapter](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/react/src/index.ts): `packages/react/src/index.ts`
- [Vue adapter](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/vue/src/index.ts): `packages/vue/src/index.ts`
- [Svelte adapter](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/svelte/src/QurxReport.svelte): `packages/svelte/src/QurxReport.svelte`
- [Solid adapter](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/solid/src/index.ts): `packages/solid/src/index.ts`
- [Angular adapter](https://github.com/aristrahatsuyu/qurx-report/blob/main/packages/angular/src/index.ts): `packages/angular/src/index.ts`

### Other components

- **Agent or developer**
- **Host application**
- **Host data sources**

## Connections

- Agent or developer → QR compiler: provides source
- QR compiler → Component catalog: reads descriptors
- QR compiler → IR and data validation: validates IR
- QR compiler → Report IR: produces IR
- Agent or developer → Compiler CLI: invokes
- Compiler CLI → QR compiler: compiles source
- Host application → Report runtime: mounts report
- Host application → Report runtime: passes variables
- Host data sources → Host application: supplies results
- Report runtime → QR compiler: compiles source
- Report runtime → IR and data validation: validates report
- Report runtime → Variable store: updates variables
- Report runtime → Bindings and values: resolves bindings
- Report runtime → Theme handling: validates theme
- Report runtime → DOM widgets: creates elements
- Report runtime → Host application: emits actions
- DOM widgets → Component catalog: uses descriptors
- Runtime theme → Theme handling: uses theme rules
- Web Component → Report runtime: mounts and updates
- React adapter → Report runtime: mounts and updates
- Vue adapter → Report runtime: mounts and updates
- Svelte adapter → Report runtime: mounts and updates
- Solid adapter → Report runtime: mounts and updates
- Angular adapter → Report runtime: mounts report
- Angular adapter → Web Component: defines element
