feat(alarmas): simplify alarm cards and add vacation summary row

Restyle the Alarmas root per the functional redesign: alarm cards drop
the always-visible edit/skip/delete button row for a minimal giant
time + station + switch layout. Tap opens the editor, swipe deletes
(with an AlertDialog confirmation), and the hero banner gains an
inline "Saltar" pill for the featured (soonest-firing) alarm's skip
action. No capability from the old button row is lost, only the
trigger location moved; estado_alarmas.dart and its scheduling/
snooze/dismiss-guard tests are untouched.

The vacation inline panel becomes a tappable summary row (range count
+ next-range countdown, computed over the existing estado.vacaciones)
that pushes a Vacaciones manager screen. That destination is a
placeholder for now (_PantallaVacacionesTemporal, holding the old
panel's body verbatim so add/delete-range capability is preserved) --
WU9 replaces it with the real PantallaVacaciones per design ADR-6.

New ARB keys (en/es only; other 11 locales are WU18's job):
alarmHeroSkipAction, alarmDeleteConfirmTitle/Message,
vacationRangesCount, vacationSummary{Active,Upcoming}Countdown.
This commit is contained in:
2026-07-29 10:20:25 +02:00
parent 6653e044c7
commit 9a2eb57a0e
19 changed files with 876 additions and 237 deletions
+24
View File
@@ -842,6 +842,15 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get deleteTooltip => 'Delete';
@override
String get alarmHeroSkipAction => 'Skip';
@override
String get alarmDeleteConfirmTitle => 'Delete alarm?';
@override
String get alarmDeleteConfirmMessage => 'This can\'t be undone.';
@override
String get alarmSkippedNoNextSnackbar =>
'Alarm skipped. There is no next occurrence left.';
@@ -996,6 +1005,21 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get deleteRangeTooltip => 'Delete range';
@override
String vacationRangesCount(int count) {
return '$count ranges';
}
@override
String vacationSummaryActiveCountdown(int days) {
return 'Active now · $days days left';
}
@override
String vacationSummaryUpcomingCountdown(int days) {
return 'Next range in $days days';
}
@override
String get vacationsDefaultName => 'Vacation';