feat(calendar): the day sheet — untimed first, the axis collapses #261

Merged
nalum merged 2 commits from feat/calendar-day-sheet into main 2026-08-26 18:38:01 +00:00
Owner

Implements #191 on both surfaces.

  • Untimed first under No time set with a count, each §2.1 row wearing its tick box — a due date may or may not carry a time, so that split is the day's real structure. A span underway before this day rides here with its clipped → 17:00 label rather than pretending to start at midnight.
  • The axis collapses under Through the day: two quiet hours or more become one named line (nothing until 16:00 · 6 hours) that expands in place, Show all 24 hours / Collapse the quiet hours escapes, occupied hours keep their pitch, no row under 48px, and empty hours are + add at 09:00 targets. Timed rows wear the owner's rail (new §2.1 fixture case + goldens on both surfaces).
  • The summary line counts the day (3 things · 2 people · today); the footer's one primary is New event on this day, absent (never dead) without the matrix verb. Ticking here is the full §2.3 completion site on both surfaces.
  • Verdict: the demo's day ⋯ is deliberately omitted — both its entries already sit on the sheet (New event is the footer primary, Show all 24 hours heads the axis); a menu of two duplicates is chrome. Add targets open the existing create form until #194 replaces it.
  • Known gap, noted honestly: the sheet itself has no posed screenshot golden yet (its rows' goldens cross the matrix; the live pages don't open sheets). A render-calendar-day fixture family in the jobsheet pattern is the right shape — I'll fold it into the #196 wave, which re-poses these sheets anyway.

Stacked on #260. Design: calendar handoff §2.7, calendar-demo.dc.html.

🤖 Generated with Claude Code

Implements #191 on both surfaces. - **Untimed first** under `No time set` with a count, each §2.1 row wearing its tick box — a due date may or may not carry a time, so that split is the day's real structure. A span underway before this day rides here with its clipped `→ 17:00` label rather than pretending to start at midnight. - **The axis collapses** under `Through the day`: two quiet hours or more become one named line (`nothing until 16:00 · 6 hours`) that expands in place, `Show all 24 hours` / `Collapse the quiet hours` escapes, occupied hours keep their pitch, no row under 48px, and empty hours are `+ add at 09:00` targets. Timed rows wear the owner's rail (new §2.1 fixture case + goldens on both surfaces). - The summary line counts the day (`3 things · 2 people · today`); the footer's one primary is `New event on this day`, absent (never dead) without the matrix verb. Ticking here is the full §2.3 completion site on both surfaces. - **Verdict:** the demo's day `⋯` is deliberately omitted — both its entries already sit on the sheet (New event is the footer primary, Show all 24 hours heads the axis); a menu of two duplicates is chrome. Add targets open the existing create form until #194 replaces it. - **Known gap, noted honestly:** the sheet itself has no posed screenshot golden yet (its rows' goldens cross the matrix; the live pages don't open sheets). A `render-calendar-day` fixture family in the jobsheet pattern is the right shape — I'll fold it into the #196 wave, which re-poses these sheets anyway. Stacked on #260. Design: calendar handoff §2.7, calendar-demo.dc.html. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The §2.7 day sheet (#191) stops spending 1,400px of ruled hours on one
dinner. Untimed items come first under a 'No time set' heading with a
count, each §2.1 row wearing its tick box; the timed axis follows under
'Through the day', where empty stretches of two hours or more collapse
to one named line — 'nothing until 16:00 · 6 hours' — that expands in
place, 'Show all 24 hours' escapes for anyone dragging times about,
occupied hours keep their pitch, no row goes under 48px, and empty
hours are add targets reading '+ add at 09:00'. Timed rows wear the
owner's rail (the is-timed modifier, new fixture case and goldens). A
span underway before this day rides the untimed block with its clipped
'→ 17:00' label rather than pretending to start at midnight.

The summary line under the title counts the day — '3 things · 2 people
· today'. The footer's one primary is New event on this day (absent,
never dead, when the matrix says no); the demo's day ⋯ is deliberately
omitted — both its entries already sit on this sheet, New event as the
footer primary and Show all 24 hours heading the axis, and a menu
holding two duplicates is chrome. Add targets open the existing create
form until #194 replaces it.

Design: calendar handoff §2.7, calendar-demo.dc.html.
feat(calendar): the day sheet — untimed first, the axis collapses, compose twin
Some checks failed
check / commits (pull_request) Successful in 23s
check / go (pull_request) Successful in 2m50s
check / report (pull_request) Successful in 9s
android / build (pull_request) Failing after 4m47s
check / web (pull_request) Successful in 4m24s
android / report (pull_request) Successful in 9s
03166705ac
The Android half of #191: DayTimelineSheet becomes the §2.7 list — the
summary line, untimed rows first under 'No time set' with their tick
boxes, the collapsed axis under 'Through the day' with named gaps, add
targets, 'Show all 24 hours', and the New-event footer (absent, never
dead, without the matrix verb). Timed rows wear the owner's rail; the
row component gains the same rail and clipped-label props as the web's
(new fixture case, goldens recorded on both surfaces in their own
commits' matrices).

Design: calendar handoff §2.7, calendar-demo.dc.html.

Test report

Suite Tests Result Skipped
Unit 1440 ✅ pass 1
Integration 133 ✅ pass —

Coverage: 27.0%

Updated by the check workflow · commit 00cace0c4a

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1440 | ✅ pass | 1 | | Integration | 133 | ✅ pass | — | **Coverage:** 27.0% <sub>Updated by the check workflow · commit 00cace0c4a1313aa26ef6a6b7ef56b3ce0077b86</sub>

Android test report

Suite Tests Result Skipped
Unit (debug) 193 ✅ pass 0

Coverage: 9.5% of lines

Updated by the android workflow · commit 00cace0c4a

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 193 | ✅ pass | 0 | **Coverage:** 9.5% of lines <sub>Updated by the android workflow · commit 00cace0c4a1313aa26ef6a6b7ef56b3ce0077b86</sub>
nalum force-pushed feat/calendar-day-sheet from 03166705ac
Some checks failed
check / commits (pull_request) Successful in 23s
check / go (pull_request) Successful in 2m50s
check / report (pull_request) Successful in 9s
android / build (pull_request) Failing after 4m47s
check / web (pull_request) Successful in 4m24s
android / report (pull_request) Successful in 9s
to 42af4f0313
All checks were successful
check / commits (pull_request) Successful in 17s
check / go (pull_request) Successful in 2m47s
android / build (pull_request) Successful in 7m28s
check / web (pull_request) Successful in 4m56s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 3s
2026-08-26 03:45:36 +00:00
Compare
nalum force-pushed feat/calendar-day-sheet from 42af4f0313
All checks were successful
check / commits (pull_request) Successful in 17s
check / go (pull_request) Successful in 2m47s
android / build (pull_request) Successful in 7m28s
check / web (pull_request) Successful in 4m56s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 3s
to db15b4655f
Some checks failed
check / commits (pull_request) Successful in 14s
android / build (pull_request) Successful in 7m23s
check / go (pull_request) Successful in 3m6s
check / web (pull_request) Successful in 4m47s
android / report (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
2026-08-26 04:32:31 +00:00
Compare
nalum force-pushed feat/calendar-day-sheet from db15b4655f
Some checks failed
check / commits (pull_request) Successful in 14s
android / build (pull_request) Successful in 7m23s
check / go (pull_request) Successful in 3m6s
check / web (pull_request) Successful in 4m47s
android / report (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
to 849cb0807b
All checks were successful
check / commits (pull_request) Successful in 23s
check / go (pull_request) Successful in 2m50s
android / build (pull_request) Successful in 7m28s
check / web (pull_request) Successful in 4m59s
check / report (pull_request) Successful in 3s
android / report (pull_request) Successful in 4s
2026-08-26 04:56:43 +00:00
Compare
nalum force-pushed feat/calendar-day-sheet from 849cb0807b
All checks were successful
check / commits (pull_request) Successful in 23s
check / go (pull_request) Successful in 2m50s
android / build (pull_request) Successful in 7m28s
check / web (pull_request) Successful in 4m59s
check / report (pull_request) Successful in 3s
android / report (pull_request) Successful in 4s
to 6c89c29f0d
Some checks failed
check / commits (pull_request) Successful in 51s
check / go (pull_request) Successful in 2m46s
android / build (pull_request) Successful in 7m11s
check / web (pull_request) Successful in 4m55s
android / report (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
2026-08-26 05:41:05 +00:00
Compare
nalum force-pushed feat/calendar-day-sheet from 6c89c29f0d
Some checks failed
check / commits (pull_request) Successful in 51s
check / go (pull_request) Successful in 2m46s
android / build (pull_request) Successful in 7m11s
check / web (pull_request) Successful in 4m55s
android / report (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
to 6346a7145e
All checks were successful
check / commits (pull_request) Successful in 18s
check / go (pull_request) Successful in 2m44s
android / build (pull_request) Successful in 7m2s
check / web (pull_request) Successful in 7m4s
check / report (pull_request) Successful in 3s
android / report (pull_request) Successful in 4s
2026-08-26 06:16:39 +00:00
Compare
nalum force-pushed feat/calendar-day-sheet from 6346a7145e
All checks were successful
check / commits (pull_request) Successful in 18s
check / go (pull_request) Successful in 2m44s
android / build (pull_request) Successful in 7m2s
check / web (pull_request) Successful in 7m4s
check / report (pull_request) Successful in 3s
android / report (pull_request) Successful in 4s
to 00cace0c4a
Some checks failed
check / commits (pull_request) Successful in 14s
check / go (pull_request) Successful in 2m47s
android / build (pull_request) Successful in 7m9s
check / web (pull_request) Successful in 4m37s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 3s
android / build (push) Has been cancelled
android / report (push) Has been cancelled
check / commits (push) Has been cancelled
check / go (push) Has been cancelled
check / report (push) Has been cancelled
check / web (push) Has been cancelled
tag / tag (push) Has been cancelled
2026-08-26 07:03:21 +00:00
Compare
nalum changed target branch from feat/calendar-month to main 2026-08-26 18:37:52 +00:00
nalum merged commit 00cace0c4a into main 2026-08-26 18:38:01 +00:00
nalum deleted branch feat/calendar-day-sheet 2026-08-26 18:38:03 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app!261
No description provided.