feat(month): add the Dense style, rule under the Continuous header (#38)
Continuous's month blocks make the boundaries legible, but the seams are exactly what someone who wants a dense calendar doesn't want. Both are now offered: - **Dense** is the old flowing layout, kept rather than replaced — one uninterrupted stream of weeks with months running into each other, the 1st naming its month, and the top bar keeping the full month title (there is no sticky header to defer to). - Continuous gains a **rule under its month label**, closing the header off against the grid. On trial: it comes out again if it doesn't earn its place. One provider query serves both. `ContinuousMonthUiState.Success` now carries the same loaded window laid out twice — `monthsByIndex` clipped into blocks, `weeksByIndex` left whole — rather than standing up a second flow and querying the same range again. Both styles report *months* as they scroll, so the window hysteresis is shared; `weekWindowFor` maps a month window onto the Dense rows it covers, widened a week each side so boundary rows don't flicker. The list state is keyed on style *and* week start: Dense indexes by week, which the week-start preference moves, while Continuous indexes by month, which it doesn't — carrying an offset between the two would land somewhere arbitrary. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -380,6 +380,8 @@
|
||||
<string name="month_style_paged_summary">One month at a time. Swipe sideways to change month.</string>
|
||||
<string name="month_style_continuous">Continuous</string>
|
||||
<string name="month_style_continuous_summary">Scroll up and down through the months. Each month keeps to itself under its own heading, with no days borrowed from its neighbours.</string>
|
||||
<string name="month_style_dense">Dense</string>
|
||||
<string name="month_style_dense_summary">The same endless scroll with the seams taken out — one unbroken run of weeks, months flowing into each other.</string>
|
||||
<string name="month_style_split">Split</string>
|
||||
<string name="month_style_split_summary">A compact grid with dots for events, and the day you tap listed underneath.</string>
|
||||
<string name="month_split_no_events">Nothing scheduled</string>
|
||||
|
||||
Reference in New Issue
Block a user