feat(todo): dialogs on the desktop, the tabs reordered, a task's path and menu (ADR 0033, D11 to D14)
- halkyon_ui: showAdaptiveSheet shows a dialog on Linux, macOS and Windows at every width (bottom sheets stay on phones and tablets below expanded windows), so Learn and Train follow; SheetScaffold takes a heading in the title's place and may leave out its close button. - Todo: the tabs are Inbox, Today, Upcoming, Browse, Today still opening; `serverpod start` launches the app on Linux, as it has no web build. - A task's sheet shows where the task is (its project, an icon once tasks are above it, and the tasks above it, each opening what it names) and a ⋮ menu in place of its close button: when it was added (its UUID v7), Duplicate with its sub-tasks, hiding its done sub-tasks (synced in its payload), Close in the pane, Delete after asking. The description's icon stays by its first line. - A row names its project and section at the end of its date's line; every menu entry has its icon. - Learn: a studyset's path starts at the Library tab's icon, named by its tooltip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
666e8dbcbb
commit
b908019969
1 changed files with 1050 additions and 125 deletions
|
|
@ -160,6 +160,52 @@ the rail, a wash of strawberry, settings grouped as theirs. What the screenshots
|
|||
related (ADR 0031, D1). The agent made no recommendation; this is the default the
|
||||
decision of 1 Nov left in place, to be asked again if the screens look wrong beside it.
|
||||
|
||||
## Decisions after trying it (1 Nov 2026, the developer's)
|
||||
|
||||
The developer used the first build beside Todoist's and asked for these; where an
|
||||
alternative was put to them, the choice is theirs.
|
||||
|
||||
- **D11 Sheets are dialogs on the desktop, at every width** (over the window's size
|
||||
alone, and over Todo alone): halkyon_ui's `showAdaptiveSheet` shows a centred dialog
|
||||
(Material's term) on Linux, macOS and Windows however narrow the window, and on phones
|
||||
and tablets a bottom sheet below expanded windows as before, so Learn and Train follow.
|
||||
A bottom sheet is a touch surface; rising from the foot of a desktop window it reads
|
||||
as a phone's screen. In a narrow window the dialog keeps a smaller margin.
|
||||
- **D12 The tabs are Inbox, Today, Upcoming, Browse; Today still opens** (amends D2's
|
||||
order, not what opens).
|
||||
- **D13 A task's sheet** names where the task is on top (its project, an icon once tasks
|
||||
are above it, then each task above it; the project goes to its list, a task opens in
|
||||
the sheet's place), as Learn's path through a studyset, and has a ⋮ menu in place of
|
||||
its close button (`SheetScaffold`'s `heading` and `closeButton`): when it was added
|
||||
(from its UUID v7, so the payload needn't say it), Duplicate (with its sub-tasks, right
|
||||
after it), hiding or showing its done sub-tasks (`hideDoneSubTasks` in its payload,
|
||||
so every device hides them, schema 1 as nothing is released), Close in the pane, and
|
||||
Delete after asking. Copy link, View activity, Email to the task, Print and Open in a
|
||||
new window wait for what they need (deep links, an activity log; mailing in is ruled
|
||||
out by D5). The description's icon stays by its first line.
|
||||
- **D14 Rows and menus**: a row shows its project and section ("Inbox / Errands" with the
|
||||
project's icon) at the end of the line of its date, not beside the whole row; every
|
||||
menu entry has its icon, a destructive one in the error colour (`MenuEntry`).
|
||||
- **D15 Typed tokens in quick add** (amends D7's later step; recommended, the developer
|
||||
asking whether the keyboard's language could choose): `#project`, `@label`,
|
||||
`{deadline}`, `!!1` and `p1` to `p4`, `!30m`, dates and times (`9am`, `Mon 18:00`,
|
||||
`ev Tue 7pm`) and recurrences (`every day`, `every 2 days`, `every second day`), each
|
||||
highlighted as it is recognised and undone with a tap. The words are data, a table per
|
||||
language (weekdays, months, *tomorrow*, *every*, *next*, times), read in the app's
|
||||
language and English, so a new app language adds a table, not a parser. Not the
|
||||
keyboard's language: Flutter tells nothing of it, Android doesn't reliably, and it
|
||||
changes as the person switches keyboards while typing. Symbols hold in every language.
|
||||
- **To come, in this order**: section headings that stay atop the list as it scrolls;
|
||||
Upcoming's month opening inline beneath its strip (a handle dragged down, or the
|
||||
month's name) with a way back to today beside it once another week shows, and its ⋮
|
||||
with *Select tasks*; a row swiped left picks its date, swiped right selects it, a tap
|
||||
then selecting more, with a bar of date, move, labels, priority and ⋮ (delete,
|
||||
duplicate, complete, deadline); rows dragged into another order, and a little to the
|
||||
right to become the sub-task of the row above, with Undo; the add button dragged onto
|
||||
the list to add a task there, dropped back on its place (an ×) to give up, wherever
|
||||
it shows; and quick add showing its fields as typing starts, its + opening the rest
|
||||
(D15 with it).
|
||||
|
||||
## Steps
|
||||
|
||||
1. **The frame**: go_router and `NavigationFrame` with the four tabs (empty screens that
|
||||
|
|
|
|||
Loading…
Reference in a new issue