summaryrefslogtreecommitdiff
path: root/docs/DECISIONS.md
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-22 12:26:48 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-22 12:26:48 +0200
commit597811e780e423120bdbd61a17d78fb7c5733415 (patch)
treed98f1a8ad27daf223622523afe028cbf2cb3a6f8 /docs/DECISIONS.md
parent0f286b6eda8405f14f18543f6b56bf0bd29c4fc9 (diff)
downloadbokf-0.1.64.tar.gz
bokf-0.1.64.zip
docs: TUI interaction model (draft lifecycle, explicit Spara, F2 actions)v0.1.64
Diffstat (limited to 'docs/DECISIONS.md')
-rw-r--r--docs/DECISIONS.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/docs/DECISIONS.md b/docs/DECISIONS.md
index 6b3467b..1522842 100644
--- a/docs/DECISIONS.md
+++ b/docs/DECISIONS.md
@@ -238,6 +238,25 @@ kept verbatim from the STATE.md they were pruned from (2026-09-21).
lönebesked prints the employer name in its header too, so the
`MAKANDRA AB` outlines are unused at runtime (kept in the generated
header). Images remain out of scope.
+28. **TUI interaction model (2026-09-22, design)**: settled in the UX
+ session; the spec is `TUI-GUIDELINES.md` "Interaction model" and is not
+ implemented yet. Two focus modes: the navigation keys (`Tab`, arrows,
+ `Home`/`End`, `PgUp`/`PgDn`) only move focus/selection/scroll and never
+ mutate data, while an active field keeps caret semantics. `Enter`
+ activates the focused item only when it owns an action (menu item,
+ action row, opening list row); a plain report has none, so `Enter` does
+ nothing there — it never saves a whole form, deletes or posts. Entities
+ have one of three lifecycles: **register** (explicit `Spara` after
+ validation; drafts live in memory and in
+ `$XDG_CACHE_HOME/bokf/drafts.json`, marked `<UTKAST>`, deletable from
+ the list and from the editor), **document** (the form is the draft,
+ explicit post, immutable) and **settings** (explicit `Spara`; the
+ per-field autosave is dropped). Every savable form ends with a `Spara`
+ (or `Posta`) action row; commit is blocked while invalid and a server
+ error keeps the draft. Screens declare actions in one ordered
+ `struct tui_action` list that drives the `F2` menu, the accelerator keys
+ and the footer hints; `F2` only, no `§`; `Ctrl+Enter` is dropped as a
+ commit key (`F9` and the save action row remain). Pilots on Kunder.
## Completed work formerly listed under "Pending decisions"