Pit Friedrich 21834ec9a0
CI / build-and-test (pull_request) Successful in 2m24s
fix: add KPI tile widget type to the dashboard (#26)
Adds a non-chart dashboard widget: a large value with its label, an
optional signed delta versus the previous period, and an optional
sparkline. Four tiles now sit above the charts, 3x1 each.

- KpiTile draws no surface of its own and fills the grid item's, styled
  from the --dialect-* token layer; the delta's up/down colors are new
  tokens rather than literals, so they follow the light/dark toggle.
- Value and delta share one row: stacking them costs a line the tile does
  not have at its default height of one grid cell.
- SparklineChart is a chrome-free line chart built on DialectTheme, so it
  shares the palette and font with the real charts.
- ApexCharts' sparkline.enabled drops the axes on the initial render but
  updateOptions (how the theme toggle recolors a chart) brings the y-axis
  labels back; they are hidden in CSS, which reaches the chart SVG since
  it renders into light DOM.

The registry registration the issue asks for is left out: #21 is blocked,
so there is no widget picker to register with yet. The tiles are wired
into DashboardView the same way the chart widgets are, and their values
come from the translation bundle until the data service (#20) lands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0124BiJikbhbiEsNfJxdWM69
2026-07-28 19:57:55 +02:00
2026-07-25 20:37:28 +02:00
2026-07-19 21:15:23 +02:00
2026-07-04 06:04:51 +00:00
2026-07-25 20:37:28 +02:00
2026-07-12 18:10:26 +02:00
2026-07-19 21:15:23 +02:00
2026-07-11 22:31:08 +02:00
2026-07-04 06:04:51 +00:00
2026-07-26 19:14:58 +02:00
2026-07-04 06:04:51 +00:00
2026-07-25 21:56:47 +02:00
2026-07-25 21:56:47 +02:00
2026-07-26 20:10:08 +02:00
2026-07-04 06:04:51 +00:00
2026-07-05 17:06:59 +02:00
2026-07-05 17:06:59 +02:00

My Application

A Spring Boot + Vaadin project. Build your UI in pure Java — no HTML, no JavaScript.

New to Vaadin? The 5-minute Quickstart walks you from here to your first running app, a live code change, and an AI-assisted edit with Copilot.


Fastest start — no plugin needed

From the project folder:

./mvnw spring-boot:run        # Windows: mvnw.cmd spring-boot:run

Then open http://localhost:8080.

The first start takes ~30 seconds while Maven downloads dependencies.

Port 8080 already in use? Stop the other process, or set server.port=8081 in src/main/resources/application.properties and open that port instead.

To stop the app: press Ctrl+C in the terminal (or the red Stop button if you launched from your IDE).

Optional upgrade — instant hotswap

Running with spring-boot:run works, but Java code changes need a server restart. For live reload — edit Java, see it in the browser without restarting — install the Vaadin plugin and start the app through it:

  • IntelliJ IDEA: install Vaadin from the JetBrains Marketplace → Debug using Hotswap Agent (dropdown next to Run). Just installed it? Let IntelliJ finish indexing, or restart it, if the menu item isn't there yet.
  • VS Code: install the Vaadin extension → Vaadin: Debug using Hotswap Agent from the command palette.
  • Eclipse: install the Vaadin plugin → right-click the project → Run As → Vaadin Application.

This is what makes the edit-and-see-it loop feel instant — and it's required for the AI edits in Vaadin Copilot.


Ask your AI assistant about Vaadin (optional)

If you use Claude Code, Cursor, or another AI coding assistant, connect it to the Vaadin MCP server so it answers against real Vaadin docs and the exact API of your installed version — instead of guessing from outdated training data.

# One-time setup — see https://vaadin.com/docs/latest/building-apps/mcp

A .mcp.json is included (commented out by default). Uncomment it, or run the setup command above, to activate.


Build for production

./mvnw package
java -jar target/*.jar

Learn more

S
Description
No description provided
Readme 34 MiB
Languages
Java 84%
TypeScript 7.2%
CSS 6.3%
HTML 2.3%
Dockerfile 0.2%