feat(todo): a project's Calendar as a month on wide windows (ADR 0033, D17)

From 720 pixels of the Calendar's own width on, a month grid in place
of the agenda: the month's weeks from the week's first day, the days
of the months beside it muted, each day with as many of its tasks as
fit and the rest counted, opening the day's tasks in a sheet; past
days with their overdue and done tasks. A task held and dropped on
another day moves there (moveTask), a day's free space tapped adds a
task on it, a line tapped opens its task.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-01 21:33:51 +01:00
commit 0b6f79244f
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -294,9 +294,20 @@ alternative was put to them, the choice is theirs.
occurrences* (off at first, kept with the rest) shows each repeating task not done on
the days it will come back, the first as if done today (`Repeat.next`), until its
recurrence ends, 400 at most: muted rows with the recurrence's mark in place of the
check, opening the task, neither ticked off nor dragged (`calendarOf`). The agenda on
every width: a month grid on wide windows can come with Upcoming's 3-day grid, which
needs a grid of days anyway. **Upcoming's Display** (as built, 1 Nov, the developer's
check, opening the task, neither ticked off nor dragged (`calendarOf`). **The month**
(built 1 Nov 2026, the developer asked for it): from 720 pixels of the Calendar's own
width on (seven days of a little over a hundred each, a desktop's window beside its
rail; below it the agenda, as on a phone), the month's weeks from the week's first
day (`monthWeeks`), the days of the months beside it muted, each day with as many of
its tasks as fit, a line each (its time, its title, its mark in its priority's
colour), and the rest counted (*3 more*), opening all of the day's in a sheet. Past
days show their tasks too, overdue or done (`monthOf`; the agenda counts those as
overdue, a month has no such place), later times of repeating ones from today on.
The month's name, back to today, *No date*, the month before and after above it. A
task held and dropped on another day moves there as on Upcoming's (`DayDropArea`,
`moveTask`), a day's free space tapped opens quick add on it in the project (where
the agenda has the add button, which can still be dropped on a day), a line tapped
opens its task. The 3-day grid stays Upcoming's. **Upcoming's Display** (as built, 1 Nov, the developer's
"as much as possible without my input"): the same sheet over another target
(`DisplayTarget`: `projectDisplay`, `upcomingDisplay`), its layout Agenda or 3-day,
done tasks, future occurrences, sorting (Smart, by time then priority, as Todoist
@ -321,8 +332,7 @@ alternative was put to them, the choice is theirs.
it loses its time and duration. Either can be undone for a moment, as a row dropped
on Upcoming's day (`moveTask`, shared with `DayDropArea`). A later time of a
repeating task doesn't move: only the task itself, at its next time, does. Dragging
past the three days shown waits until someone misses it. **To come**: a month grid
on wide windows.
past the three days shown waits until someone misses it.
## Steps