lukas c7c6491175 feat(date-range-filter): clamp typed digits per part with smart advance
Typed digits in the segmented date field were unvalidated — you could
enter 60 for a day or 30 for a month. Now each digit is clamped to its
part's range and auto-advances:

- A digit that cannot validly extend the current part commits as a
  zero-padded value and moves to the next part (month 9 → 09▶, day 6 →
  06▶).
- An ambiguous digit that could still take a second stays pending
  (month 1 → 01; then 2 → 12▶, or 9 → 09▶ dropping the overflowed 1).
- Day/month show a pending single digit zero-padded; the year part keeps
  its existing right-fill placeholder display and 4-digit advance.

Logic lives in a pure applyDigit() helper; completion is normalized to a
full-width buffer so syncHiddenFromSegments commits it. Adds 10 e2e tests
covering clamping, auto-advance, overflow-drop, zero-pad display, the
single-digit commit invariant, and restart-on-full.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 15:01:08 +02:00
2024-11-09 11:56:20 +01:00
2023-01-16 19:46:15 +01:00
2025-03-22 20:58:30 +01:00
2026-05-12 16:29:34 +00:00
2023-11-16 16:30:17 +01:00
2026-06-19 11:28:16 +02:00
2024-08-08 14:48:20 +02:00
2026-06-19 12:37:25 +02:00
2026-05-12 16:29:34 +00:00
2026-05-12 16:29:34 +00:00
2026-05-12 18:36:46 +02:00
2024-11-09 11:56:20 +01:00
2024-08-11 17:24:26 +02:00
2026-06-09 12:47:44 +02:00
2026-06-02 15:07:53 +02:00
2026-06-19 12:36:40 +02:00

Timetracker

A simple game catalogue and play session tracker.

Development

The project uses uv to manage Python versions and dependencies. Simply run:

make init

This installs the correct Python version, syncs all dependencies, and installs npm packages. Afterwards, you can start the development server using make dev.

S
Description
No description provided
Readme 16 MiB
2026-05-12 16:36:46 +00:00
Languages
Python 76.1%
JavaScript 9.5%
TypeScript 9.3%
HTML 3.9%
CSS 0.4%
Other 0.8%