diff --git a/components/interactive-elements.html b/components/interactive-elements.html
index 698d0cd..57cbb6a 100644
--- a/components/interactive-elements.html
+++ b/components/interactive-elements.html
@@ -704,11 +704,6 @@
if (isActive && !hasSelectedOption) {
options[0].setAttribute('aria-checked', 'true');
}
-
- options.forEach((option) => {
- option.classList.toggle('sg-checkbox-field--inactive-selectable', !isActive);
- option.classList.toggle('sg-form-active', isActive && option.getAttribute('aria-checked') === 'true');
- });
target.dataset.open = 'false';
trigger.setAttribute('aria-expanded', 'false');
updatePulldownSelectionState(target);
@@ -840,6 +835,9 @@
if (checkbox.disabled) {
return;
}
+ if (checkbox.matches('[data-pulldown-option]')) {
+ return;
+ }
const activatableOption = checkbox.closest('[data-component="checkbox-field"][data-activatable="true"]');
if (activatableOption) {
@@ -926,6 +924,7 @@
const updatePulldownSelectionState = (demo) => {
const trigger = demo.querySelector('.sg-pulldown-demo__trigger');
const selectableOptions = demo.querySelectorAll('[data-pulldown-option]');
+ const isActivatableInactive = demo.dataset.activatable === 'true' && demo.dataset.componentState !== 'active';
if (!trigger || selectableOptions.length === 0) {
return;
@@ -936,22 +935,30 @@
}).length;
selectableOptions.forEach((option) => {
+ const isSelected = option.getAttribute('aria-checked') === 'true';
const optionRow = option.closest('.sg-pulldown-option');
if (!optionRow) {
+ if (option.classList.contains('sg-checkbox-field')) {
+ option.classList.toggle('sg-form-active', !isActivatableInactive && isSelected);
+ option.classList.toggle('sg-checkbox-field--inactive-selectable', isActivatableInactive || !isSelected);
+ }
return;
}
optionRow.classList.toggle(
'sg-pulldown-option--selected',
- option.getAttribute('aria-checked') === 'true'
+ isSelected
);
+ if (option.classList.contains('sg-checkbox-field')) {
+ option.classList.toggle('sg-form-active', !isActivatableInactive && isSelected);
+ option.classList.toggle('sg-checkbox-field--inactive-selectable', isActivatableInactive || !isSelected);
+ }
});
const labelBase = trigger.dataset.labelBase || 'Auswahl';
trigger.textContent = selectedCount > 0 ? `${labelBase} (${selectedCount})` : labelBase;
const isActivatableActive = demo.dataset.activatable === 'true' && demo.dataset.componentState === 'active';
- const isActivatableInactive = demo.dataset.activatable === 'true' && demo.dataset.componentState !== 'active';
const showActiveState = !isActivatableInactive && (selectedCount > 0 || isActivatableActive);
trigger.classList.toggle('sg-pulldown--selected', showActiveState);
trigger.classList.toggle('sg-form-active', showActiveState);