@mateusbmp/backup-manager 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -259,7 +259,7 @@ Every key (generated from the schema):
259
259
  │ Doctor │ │ ✔ production 20261109-033000 complete 1.6 GiB 9h ago │
260
260
  │ Settings │ ╰──────────────────────────────────────────────────────────────╯
261
261
  ╰──────────────────╯
262
- ↑↓ move ⏎ backups r run now n new backup e environments tab pane ? help q quit
262
+ ↑↓ move ⏎ backups r run now n new backup e environments ctrl+←↓→ zones ? help q quit
263
263
  ```
264
264
 
265
265
  | Screen | What you can do |
@@ -280,6 +280,13 @@ Every key (generated from the schema):
280
280
  field) · `1`–`9` jump to a menu entry · `n` new backup · `e` environments · `s` service ·
281
281
  `Ctrl-S` saves a form · `?` help · `q` quit.
282
282
 
283
+ **Buttons and zones:** every action on the footer line is also a button. `Ctrl+↓` focuses
284
+ the footer as a button bar (`[ save ] [ cancel ] …`); `←→` picks a button, `⏎` presses it,
285
+ and `Esc` or `↑` returns. `Ctrl+←` focuses the sidebar, and `Ctrl+→` or `Ctrl+↑` returns to
286
+ the content. `Alt` works in place of `Ctrl`. Use these in terminals that swallow chords
287
+ like `Ctrl-S` (Termius, or any terminal with XON/XOFF flow control): every form can be
288
+ saved with its **save** button, and screens you reached from another one get a **back** button.
289
+
283
290
  Below 90 columns the sidebar becomes a tab bar, and below 60×16 the UI asks you to resize.
284
291
  `NO_COLOR` is honored.
285
292
 
@@ -466,6 +473,7 @@ JSON config validated by zod. npm.
466
473
  ## Conventions
467
474
 
468
475
  - Ink: colors only from `ui/theme.ts`; gate every `useInput` with `isActive` (`useScreenActive()`); forms take the keyboard via `useCaptureKeys`; size from the App context (`width`/`height`), not ad-hoc.
476
+ - Actions: declare each screen action once with `useHints([{ key, label, run }])`. The footer shows it as a hint, and as a button once Ctrl/Alt+↓ focuses the bar, so the key handler and the button share one function. Ctrl/Alt+arrows belong to App's zone switching: arrow handlers ignore them (`isZoneKey`; `isUp`/`isDown` already do).
469
477
  - Tests: vitest + ink-testing-library (100 columns; send a no-op key after mount and wait before keys; match frames after `stripVTControlCharacters`, since CI forces color). Temp dirs via `tests/helpers.ts`; fake `mariadb-dump` (`installFakeDump`) and fake systemd (`fakeSystemd`).
470
478
  - Every behavior change needs tests; keep README (and this block) in sync in the same change.
471
479