Fix multiselect pulldown control start alignment by panel label width

This commit is contained in:
2026-05-25 08:52:09 +02:00
parent 2792104f45
commit 730cc137bb
2 changed files with 28 additions and 3 deletions
+21
View File
@@ -389,6 +389,24 @@
); );
}; };
const updateMultiselectLabelAlignment = () => {
document.querySelectorAll('.sg-options-row[data-pattern="multiselektions-pulldown"] .sg-pulldown-panel').forEach((panel) => {
const labels = panel.querySelectorAll(
'.sg-slider-row[data-activatable="true"] > .sg-label, .sg-radio-activatable-group > .sg-label, [data-pulldown-filter-row] > .sg-pulldown-panel__label'
);
let maxWidth = 0;
labels.forEach((label) => {
const width = Math.ceil(label.getBoundingClientRect().width);
if (width > maxWidth) {
maxWidth = width;
}
});
panel.style.setProperty('--sg-multiselect-label-column-width', `${maxWidth}px`);
});
};
document.querySelectorAll('.sg-slider-row').forEach((row) => { document.querySelectorAll('.sg-slider-row').forEach((row) => {
const slider = row.querySelector('.sg-slider'); const slider = row.querySelector('.sg-slider');
const valueOutput = row.querySelector('.sg-slider-value'); const valueOutput = row.querySelector('.sg-slider-value');
@@ -469,6 +487,9 @@
}); });
}); });
updateMultiselectLabelAlignment();
window.addEventListener('resize', updateMultiselectLabelAlignment);
document.querySelectorAll('.sg-pulldown-demo').forEach((demo) => { document.querySelectorAll('.sg-pulldown-demo').forEach((demo) => {
const trigger = demo.querySelector('.sg-pulldown-demo__trigger'); const trigger = demo.querySelector('.sg-pulldown-demo__trigger');
+7 -3
View File
@@ -73,9 +73,13 @@
margin-top: var(--spacing-large); margin-top: var(--spacing-large);
} }
.sg-options-row[data-pattern="multiselektions-pulldown"] .sg-pulldown-panel {
--sg-multiselect-label-column-width: max-content;
}
.sg-options-row[data-pattern="multiselektions-pulldown"] .sg-slider-row[data-activatable="true"] { .sg-options-row[data-pattern="multiselektions-pulldown"] .sg-slider-row[data-activatable="true"] {
display: grid; display: grid;
grid-template-columns: max-content max-content minmax(0, 1fr) auto; grid-template-columns: max-content var(--sg-multiselect-label-column-width) minmax(0, 1fr) auto;
align-items: center; align-items: center;
column-gap: var(--spacing-large); column-gap: var(--spacing-large);
} }
@@ -105,7 +109,7 @@
.sg-options-row[data-pattern="multiselektions-pulldown"] .sg-radio-activatable-group { .sg-options-row[data-pattern="multiselektions-pulldown"] .sg-radio-activatable-group {
display: grid; display: grid;
grid-template-columns: max-content max-content minmax(0, 1fr); grid-template-columns: max-content var(--sg-multiselect-label-column-width) minmax(0, 1fr);
align-items: center; align-items: center;
column-gap: var(--spacing-large); column-gap: var(--spacing-large);
} }
@@ -124,7 +128,7 @@
} }
.sg-options-row[data-pattern="multiselektions-pulldown"] [data-pulldown-filter-row] { .sg-options-row[data-pattern="multiselektions-pulldown"] [data-pulldown-filter-row] {
grid-template-columns: max-content max-content minmax(0, 1fr); grid-template-columns: max-content var(--sg-multiselect-label-column-width) minmax(0, 1fr);
column-gap: var(--spacing-large); column-gap: var(--spacing-large);
} }