Disable the sleep boundary that repeats the last one

While asleep, tapping "Sleep start" again can only produce a zero-length
sleep window, and likewise "Sleep end" while awake — so renderActionHints
now disables that button outright instead of merely dimming it, with a
title explaining why ("Already asleep" / "Already awake"). Every other
action stays clickable, and a genuinely missed boundary is still fixable
from the event log, which accepts any time. With no sleep history yet,
either boundary remains a valid first event.

Also adds nodejs to the dev shell for `node --check` on src/*.js.
This commit is contained in:
Alexander Heldt
2026-08-18 18:35:14 +00:00
parent f9894abfc9
commit 93d6ea27a7
4 changed files with 32 additions and 5 deletions
+11
View File
@@ -272,6 +272,17 @@ button.action.note { background: var(--note); }
but fully tappable, so corrections are never blocked. */
button.action.unlikely { opacity: 0.4; }
/* The boundary that would repeat the latest sleep event is disabled outright
(see renderActionHints) — greyed out rather than merely dimmed, so it reads
as unavailable instead of just discouraged. */
button.action:disabled {
opacity: 0.35;
filter: grayscale(1);
cursor: not-allowed;
}
button.action:disabled:active { transform: none; }
button.action:disabled:hover { filter: grayscale(1); }
button.ghost {
background: transparent;
color: var(--text);