feat: add bounded agenda view
Add a read-only 42-day occurrence agenda with keyboard navigation, six-week paging, exact return-to-grid focus, search and calendar overlays, and bounded recurrence expansion. Keep agenda state outside persistence, document month-only mutations, and cover empty windows, filtering, overlays, navigation, rendering, and terminal restoration.
This commit is contained in:
19
README.md
19
README.md
@@ -6,7 +6,8 @@ inherits its colors from your terminal theme.
|
||||
|
||||
This repository currently contains the first local-calendar vertical slice:
|
||||
date/domain logic, guarded atomic iCalendar persistence, add/edit/delete forms,
|
||||
a responsive ANSI terminal UI, tests, and Linux launch integration. See [the product specification](docs/PRODUCT.md),
|
||||
a responsive ANSI terminal UI with month and agenda views, tests, and Linux
|
||||
launch integration. See [the product specification](docs/PRODUCT.md),
|
||||
[architecture](docs/ARCHITECTURE.md), and [roadmap](docs/ROADMAP.md).
|
||||
|
||||
## Controls
|
||||
@@ -15,7 +16,11 @@ Use arrow keys or `h j k l` to move, `PageUp`/`PageDown` or `p`/`n` to change
|
||||
month, and `t` for today. On a day with appointments, `Tab` and `Shift-Tab`
|
||||
move focus through them and `Enter` opens the appointment reader. In the
|
||||
reader, arrows/Vim keys or Tab variants browse the day's appointments and
|
||||
`Esc` returns to the month. Press `c` to open the calendar picker; arrows or
|
||||
`Esc` returns to the month. Press `g` to open a read-only 42-day agenda starting
|
||||
on the selected date. Arrows, `j`/`k`, or Tab variants choose an occurrence;
|
||||
`Enter` returns to the month at that exact occurrence. `PageUp`/`PageDown` or
|
||||
`p`/`n` shift the agenda by 42 days, while `Esc` or `g` returns without changing
|
||||
the month selection. Press `c` to open the calendar picker; arrows or
|
||||
`j`/`k` select a calendar and `Enter` toggles its in-session visibility. Press
|
||||
`a` to add an appointment. Focus an
|
||||
appointment and press `e` to edit it or `d` to delete it. Forms use `Tab` and
|
||||
@@ -24,6 +29,8 @@ appointment and press `e` to edit it or `d` to delete it. Forms use `Tab` and
|
||||
last successful mutation and `Ctrl-R` redoes it. Press `/` to search titles,
|
||||
descriptions, locations, and calendar IDs. Search results use arrows or
|
||||
`j`/`k`; `Enter` jumps to the exact occurrence and `Esc` returns to the month.
|
||||
The calendar picker and search are also available over the agenda with `c` and
|
||||
`/`. Add, edit, and delete remain month-view workflows.
|
||||
Press `?` for help and `q` to quit.
|
||||
|
||||
## Build and run
|
||||
@@ -48,9 +55,11 @@ clearly operate on the entire series.
|
||||
Search expands recurring matches within five years on either side of the
|
||||
currently selected date. This finite window keeps unbounded recurrence rules
|
||||
responsive while one-time and recurring results share the same chronological
|
||||
result list. Hidden calendars are excluded consistently from the month grid,
|
||||
appointment focus, and search. Visibility is session-only presentation state;
|
||||
saves always retain events from hidden calendars.
|
||||
result list. Agenda recurrence expansion is bounded to its visible 42-day
|
||||
window. Hidden calendars are excluded consistently from the month grid,
|
||||
agenda, appointment focus, and search. Visibility and agenda position are
|
||||
session-only presentation state; saves always retain events from hidden
|
||||
calendars.
|
||||
|
||||
Calendars containing features this version cannot preserve—such as `RDATE`,
|
||||
detached recurrence overrides, ordinal `BYDAY`, embedded `VTIMEZONE`
|
||||
|
||||
Reference in New Issue
Block a user