feat(calendar): the toolbar regrouped by grammar (#197) #265

Merged
nalum merged 3 commits from feat/calendar-toolbar into main 2026-08-26 18:38:23 +00:00
Owner

Closes #197. Stacked on #264 (feat/calendar-create) — merge that first.

The calendar's seven-control chrome regroups into one toolbar, both surfaces (calendar handoff §6, calendar-demo.dc.html):

  • When is ‹ › around the one Today control — a drawn calendar box with today's date inside it. The arrows step weeks while the week view is on.
  • Who is the members' marks that tap to solo — hidden at one member, inline to five, horizontally scrolling at six or more with Everyone pinned outside the scroller. The filter state narrows from a multi-set to solo-or-everyone, which the §2.6 dot rule already assumed.
  • What is one segmented control (All / Events / Jobs), selected in the accent — a filter changes what you see.
  • How is a second segmented control (Month / Week / Agenda), selected neutrally — a view only changes how.
  • + New event moves off the page heading into the toolbar, targeting the day in focus.

Also in the stack: the web calViewToEnum/FromEnum maps learn WEEK (the pref now round-trips through UserSettings), Android's MonthNav and the week view's inner stepper row retire (the toolbar owns both), and the calendar live-page goldens re-record in their own commit.

No recorded divergences — the Compose toolbar is the web's, group for group.

Closes #197. Stacked on #264 (`feat/calendar-create`) — merge that first. The calendar's seven-control chrome regroups into one toolbar, both surfaces (calendar handoff §6, calendar-demo.dc.html): - **When** is ‹ › around the one Today control — a drawn calendar box with today's date inside it. The arrows step weeks while the week view is on. - **Who** is the members' marks that tap to solo — hidden at one member, inline to five, horizontally scrolling at six or more with Everyone pinned outside the scroller. The filter state narrows from a multi-set to solo-or-everyone, which the §2.6 dot rule already assumed. - **What** is one segmented control (All / Events / Jobs), selected in the accent — a filter changes what you see. - **How** is a second segmented control (Month / Week / Agenda), selected neutrally — a view only changes how. - **+ New event** moves off the page heading into the toolbar, targeting the day in focus. Also in the stack: the web `calViewToEnum`/`FromEnum` maps learn `WEEK` (the pref now round-trips through `UserSettings`), Android's `MonthNav` and the week view's inner stepper row retire (the toolbar owns both), and the calendar live-page goldens re-record in their own commit. No recorded divergences — the Compose toolbar is the web's, group for group.
The shipped toolbar was seven controls in three grammars — who as four
labelled chips, what as three chips, when and how as five circles —
eating 380px of a phone before a date appears, with two selected styles
reading as one choice and two calendar icons meaning different things.
Regrouped (#197): Who is member avatars that tap to solo, scaling by
roster — hidden at one member, inline at two to five, horizontally
scrolling at six or more with Everyone pinned outside the scroller;
What is one segmented control (All / Events / Jobs), selected in the
accent because a filter changes what you see; How is a second segmented
control (Month / Week / Agenda), selected neutrally because a view only
changes how; When is ‹ › around the one Today control — a drawn
calendar box with today's date inside it, never an emoji over a
numeral; and + New event sits in the toolbar targeting the day in
focus. The who-filter narrows from a multi-set to solo-or-everyone,
which is what the § 2.6 dot rule already assumed.

Design: calendar handoff §6, calendar-demo.dc.html.
The same regrouping as the web commit below it, in Compose: the four
chrome lambdas (nav, view toggle, who chips, what chips) collapse into
one toolbar — ‹ › around the drawn today-box, the title, the members'
marks that tap to solo with Everyone pinned outside the scroller, the
What segmented control selected in the accent, the How one selected
neutrally, and New event moved off the page heading into the row.

The filter state narrows to match the grammar: Who is one member or
everyone (soloing replaces multi-select), What is one of all / events /
jobs. The week view's inner stepper row goes — the toolbar's arrows step
weeks while that view is on — and MonthNav goes with it, its only caller
gone. The agenda's leading-chrome count drops from six items to three.

Recorded divergence: none — the toolbar is the web's, group for group.
test(ui): re-record the calendar page goldens for the toolbar
Some checks failed
check / commits (pull_request) Successful in 22s
check / go (pull_request) Successful in 4m3s
android / build (pull_request) Failing after 4m55s
check / web (pull_request) Failing after 4m49s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 5s
1050004744

Test report

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

Coverage: 27.0%

Updated by the check workflow · commit eb743cd3fb

<!-- 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 eb743cd3fbf5effd245bbde337b5c4504baf7472</sub>

Android test report

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

Coverage: 8.9% of lines

Updated by the android workflow · commit eb743cd3fb

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 193 | ✅ pass | 0 | **Coverage:** 8.9% of lines <sub>Updated by the android workflow · commit eb743cd3fbf5effd245bbde337b5c4504baf7472</sub>
nalum force-pushed feat/calendar-toolbar from 1050004744
Some checks failed
check / commits (pull_request) Successful in 22s
check / go (pull_request) Successful in 4m3s
android / build (pull_request) Failing after 4m55s
check / web (pull_request) Failing after 4m49s
check / report (pull_request) Successful in 4s
android / report (pull_request) Successful in 5s
to 796cc1eb3d
Some checks failed
check / commits (pull_request) Successful in 16s
check / go (pull_request) Successful in 2m55s
check / web (pull_request) Failing after 3m52s
check / report (pull_request) Successful in 11s
android / build (pull_request) Successful in 7m21s
android / report (pull_request) Successful in 9s
2026-08-26 03:45:52 +00:00
Compare
nalum force-pushed feat/calendar-toolbar from 796cc1eb3d
Some checks failed
check / commits (pull_request) Successful in 16s
check / go (pull_request) Successful in 2m55s
check / web (pull_request) Failing after 3m52s
check / report (pull_request) Successful in 11s
android / build (pull_request) Successful in 7m21s
android / report (pull_request) Successful in 9s
to 097cf3998a
Some checks failed
android / build (pull_request) Has been cancelled
android / report (pull_request) Has been cancelled
check / commits (pull_request) Has been cancelled
check / go (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
2026-08-26 04:32:47 +00:00
Compare
nalum force-pushed feat/calendar-toolbar from 097cf3998a
Some checks failed
android / build (pull_request) Has been cancelled
android / report (pull_request) Has been cancelled
check / commits (pull_request) Has been cancelled
check / go (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
to 8c7cbdfee4
Some checks failed
check / commits (pull_request) Successful in 19s
check / go (pull_request) Successful in 2m51s
check / report (pull_request) Successful in 4s
android / build (pull_request) Successful in 7m15s
android / report (pull_request) Successful in 5s
check / web (pull_request) Failing after 3m35s
2026-08-26 04:56:51 +00:00
Compare
nalum force-pushed feat/calendar-toolbar from 8c7cbdfee4
Some checks failed
check / commits (pull_request) Successful in 19s
check / go (pull_request) Successful in 2m51s
check / report (pull_request) Successful in 4s
android / build (pull_request) Successful in 7m15s
android / report (pull_request) Successful in 5s
check / web (pull_request) Failing after 3m35s
to fa8006c528
Some checks failed
android / report (pull_request) Has been cancelled
check / commits (pull_request) Has been cancelled
check / go (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
android / build (pull_request) Has been cancelled
2026-08-26 05:41:14 +00:00
Compare
nalum force-pushed feat/calendar-toolbar from fa8006c528
Some checks failed
android / report (pull_request) Has been cancelled
check / commits (pull_request) Has been cancelled
check / go (pull_request) Has been cancelled
check / report (pull_request) Has been cancelled
check / web (pull_request) Has been cancelled
android / build (pull_request) Has been cancelled
to d8c0513b1d
All checks were successful
check / commits (pull_request) Successful in 26s
check / go (pull_request) Successful in 2m52s
check / report (pull_request) Successful in 3s
android / build (pull_request) Successful in 6m48s
android / report (pull_request) Successful in 5s
check / web (pull_request) Successful in 4m28s
2026-08-26 06:16:46 +00:00
Compare
nalum force-pushed feat/calendar-toolbar from d8c0513b1d
All checks were successful
check / commits (pull_request) Successful in 26s
check / go (pull_request) Successful in 2m52s
check / report (pull_request) Successful in 3s
android / build (pull_request) Successful in 6m48s
android / report (pull_request) Successful in 5s
check / web (pull_request) Successful in 4m28s
to eb743cd3fb
Some checks failed
check / commits (pull_request) Successful in 15s
check / go (pull_request) Successful in 2m53s
check / web (pull_request) Successful in 4m40s
android / build (pull_request) Successful in 7m20s
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:28 +00:00
Compare
nalum changed target branch from feat/calendar-create to main 2026-08-26 18:38:20 +00:00
nalum merged commit eb743cd3fb into main 2026-08-26 18:38:23 +00:00
nalum deleted branch feat/calendar-toolbar 2026-08-26 18:38:24 +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!265
No description provided.