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
@@ -816,6 +816,15 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get deleteTooltip => '删除';
@override
String get alarmHeroSkipAction => 'Saltar';
@override
String get alarmDeleteConfirmTitle => '¿Eliminar alarma?';
@override
String get alarmDeleteConfirmMessage => 'Esta acción no se puede deshacer.';
@override
String get alarmSkippedNoNextSnackbar => '已跳过闹钟。没有剩余的下次执行。';
@@ -966,6 +975,21 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get deleteRangeTooltip => '删除范围';
@override
String vacationRangesCount(int count) {
return '$count rangos';
}
@override
String vacationSummaryActiveCountdown(int days) {
return 'En curso · quedan $days días';
}
@override
String vacationSummaryUpcomingCountdown(int days) {
return 'Próximo rango en $days días';
}
@override
String get vacationsDefaultName => '假期';