Skip to content

Commit 6b4e511

Browse files
fix(lib): fix .was-validated for .control-item
1 parent fd960b4 commit 6b4e511

File tree

2 files changed

+72
-38
lines changed

2 files changed

+72
-38
lines changed

scss/forms/_control-item.scss

Lines changed: 72 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,24 @@
1313
}
1414

1515
// stylelint-disable selector-no-qualifying-type
16-
&.was-validated:has(input:invalid) .control-item-error-message,
1716
&:has(input.is-invalid) .control-item-error-message {
1817
display: block;
1918
}
2019
// stylelint-enable selector-no-qualifying-type
2120
}
2221

22+
.was-validated {
23+
.control-items-list,
24+
.switch-item-container,
25+
.checkbox-item-container {
26+
// stylelint-disable selector-no-qualifying-type
27+
&:has(input:invalid) .control-item-error-message {
28+
display: block;
29+
}
30+
// stylelint-enable selector-no-qualifying-type
31+
}
32+
}
33+
2334
.control-item-error-message {
2435
padding: $ouds-control-item-space-padding-block-top-error-text $ouds-control-item-space-padding-inline 0;
2536
color: var(--#{$prefix}color-content-status-negative);
@@ -150,6 +161,22 @@
150161
&:has(input:invalid:active) {
151162
--#{$prefix}control-item-label-color: #{$ouds-color-action-negative-pressed};
152163
}
164+
165+
.control-item-indicator:invalid {
166+
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-enabled};
167+
168+
&:hover {
169+
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-hover};
170+
}
171+
172+
&:focus-visible {
173+
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-focus};
174+
}
175+
176+
&:active {
177+
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-pressed};
178+
}
179+
}
153180
}
154181

155182
//
@@ -417,27 +444,27 @@
417444
.control-item-divider {
418445
padding-bottom: calc($ouds-control-item-space-padding-block-default - $ouds-divider-border-width);
419446
border-bottom: $ouds-divider-border-width solid $ouds-color-border-default;
447+
}
420448

421-
&:has(.is-invalid),
422-
.was-validated &:has(input:invalid) {
423-
border-color: var(--#{$prefix}control-item-label-color);
424-
}
449+
.control-item-divider:has(.is-invalid),
450+
.was-validated .control-item-divider:has(input:invalid) {
451+
border-color: var(--#{$prefix}control-item-label-color);
425452
}
426453

427454
.control-item-reverse {
428455
flex-direction: row-reverse;
456+
}
429457

430-
// stylelint-disable selector-no-qualifying-type
431-
&:has(input.is-invalid),
432-
.was-validated &:has(input:invalid) {
433-
--#{$prefix}control-item-error-icon-offset-right: unset;
434-
--#{$prefix}control-item-error-icon-offset-left: var(--#{$prefix}control-item-error-icon-offset);
458+
// stylelint-disable selector-no-qualifying-type
459+
.control-item-reverse:has(input.is-invalid),
460+
.was-validated .control-item-reverse:has(input:invalid) {
461+
--#{$prefix}control-item-error-icon-offset-right: unset;
462+
--#{$prefix}control-item-error-icon-offset-left: var(--#{$prefix}control-item-error-icon-offset);
435463

436-
padding-right: $ouds-control-item-space-padding-inline;
437-
padding-left: calc($ouds-control-item-space-padding-inline + $ouds-control-item-size-icon + $ouds-control-item-space-column-gap);
438-
}
439-
// stylelint-enable selector-no-qualifying-type
464+
padding-right: $ouds-control-item-space-padding-inline;
465+
padding-left: calc($ouds-control-item-space-padding-inline + $ouds-control-item-size-icon + $ouds-control-item-space-column-gap);
440466
}
467+
// stylelint-enable selector-no-qualifying-type
441468

442469

443470
//
@@ -663,6 +690,12 @@
663690

664691
.was-validated .radio-button-item-outlined:has(input:invalid) {
665692
border-color: var(--#{$prefix}control-item-label-color);
693+
694+
&:hover,
695+
&:active,
696+
&:has(input:checked) {
697+
--#{$prefix}control-item-error-icon-offset: #{$ouds-control-item-space-padding-inline + $ouds-control-item-space-padding-inline-error-icon - $ouds-divider-border-width};
698+
}
666699
}
667700

668701

@@ -700,6 +733,31 @@
700733
}
701734
}
702735

736+
.was-validated {
737+
.switch-item,
738+
.form-switch {
739+
// stylelint-disable selector-no-qualifying-type
740+
&:has(input:invalid) {
741+
--#{$prefix}control-item-error-icon-offset-right: unset;
742+
--#{$prefix}control-item-error-icon-offset-left: var(--#{$prefix}control-item-error-icon-offset);
743+
744+
padding-right: $ouds-control-item-space-padding-inline;
745+
padding-left: calc($ouds-control-item-space-padding-inline + $ouds-control-item-size-icon + $ouds-control-item-space-column-gap);
746+
}
747+
// stylelint-enable selector-no-qualifying-type
748+
749+
// stylelint-disable selector-no-qualifying-type
750+
&.control-item-reverse:has(input:invalid) {
751+
--#{$prefix}control-item-error-icon-offset-right: var(--#{$prefix}control-item-error-icon-offset);
752+
--#{$prefix}control-item-error-icon-offset-left: unset;
753+
754+
padding-right: calc($ouds-control-item-space-padding-inline + $ouds-control-item-size-icon + $ouds-control-item-space-column-gap);
755+
padding-left: $ouds-control-item-space-padding-inline;
756+
}
757+
// stylelint-enable selector-no-qualifying-type
758+
}
759+
}
760+
703761
.switch-standalone {
704762
@extend %control-item-standalone;
705763
padding: 0;

scss/mixins/_forms.scss

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -139,30 +139,6 @@
139139
}
140140
}
141141

142-
.control-item-indicator {
143-
@include form-validation-state-selector($state) {
144-
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-enabled}; // OUDS mod
145-
// OUDS mod: no `border-color`
146-
147-
// OUDS mod: no `:checked`
148-
// OUDS mod: no `:focus`
149-
150-
// OUDS mod
151-
&:hover {
152-
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-hover};
153-
}
154-
155-
&:focus-visible {
156-
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-focus};
157-
}
158-
159-
&:active {
160-
--#{$prefix}control-item-indicator-color: #{$ouds-color-action-negative-pressed};
161-
}
162-
// // End mod
163-
}
164-
}
165-
166142
// OUDS mod no form-check-inline
167143
}
168144
// End mod

0 commit comments

Comments
 (0)