`).join('')}
`;
container.appendChild(card);
});
}
function escHtml(str) {
return str.replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"');
}
function addCategory() {
const input = document.getElementById('newCategoryInput');
const name = input.value.trim();
if (!name) return;
data.push({ name, tasks: [] });
save();
render();
input.value = '';
input.focus();
}
function deleteCategory(ci) {
if (!confirm(`Видалити категорію "${data[ci].name}"?`)) return;
data.splice(ci, 1);
save();
render();
}
function addTask(ci, input) {
const text = input.value.trim();
if (!text) return;
data[ci].tasks.push({ text, done: false });
save();
render();
// Re-focus the input after render
setTimeout(() => {
const el = document.getElementById(`task-input-${ci}`);
if (el) el.focus();
}, 50);
}
function toggleTask(ci, ti, checked) {
data[ci].tasks[ti].done = checked;
save();
render();
}
function deleteTask(ci, ti) {
data[ci].tasks.splice(ti, 1);
save();
render();
}
document.getElementById('newCategoryInput').addEventListener('keydown', e => {
if (e.key === 'Enter') addCategory();
});
render();