function limitCheckboxes(limit, widget) {
widget.addEventListener('change', function onchange() {
const checked = widget.querySelectorAll('input[type="checkbox"]:checked');
const unchecked = widget.querySelectorAll('input[type="checkbox"]:not(:checked)');
for(const n of unchecked) n.disabled = checked.length >= limit;
});
return widget;
}