Nothing logged yet — your day is ahead of you.
";
return;
}
wrap.innerHTML = [...eventLog].reverse().map((e, idx) =>
"" +
"
" +
"" + esc(e.name) + "" +
"" +
(e.type === "drain" ? "−" : "+") + e.value +
"" +
"
" +
"
" +
"
"
).join("");
wrap.querySelectorAll("[data-remove-index]").forEach(btn => {
btn.addEventListener("click", () => {
const reverseIndex = Number(btn.dataset.removeIndex);
const actualIndex = eventLog.length - 1 - reverseIndex;
removeLogEntry(actualIndex);
});
});
}
function renderGrid(type) {
const items = type === "drain" ? drainItems : restoreItems;
const grid = qs("#st-" + type + "-grid");
grid.innerHTML = "";
if (items.length === 0) {
grid.innerHTML = "Add " + (type === "drain" ? "an activity" : "a rest option") + " above to get started.
";
updateHeight();
return;
}
items.forEach(item => {
const card = document.createElement("div");
card.className = "st-item-card" + (type === "restore" ? " restore-card" : "");
const canUse = type === "drain" ? current >= item.value : true;
const useLabel = type === "drain" ? "Subtract" : "Add back";
const useCls = "st-use-btn" + (type === "drain" ? " drain-use" : " restore-use") + (canUse ? "" : " disabled");
const subText = type === "drain"
? ("Costs " + item.value + " spoon" + (item.value !== 1 ? "s" : ""))
: ("+" + item.value + " spoon" + (item.value !== 1 ? "s" : ""));
card.innerHTML =
"