@db-ux/core-components 3.1.16 → 3.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +1 -1
  2. package/agent/_instructions.md +9 -0
  3. package/build/components/accordion-item/accordion-item.css +3 -1
  4. package/build/components/accordion-item/accordion-item.scss +3 -1
  5. package/build/components/badge/badge.css +3 -1
  6. package/build/components/brand/brand.css +3 -1
  7. package/build/components/brand/brand.scss +2 -1
  8. package/build/components/button/button.css +3 -1
  9. package/build/components/card/card.css +3 -1
  10. package/build/components/card/card.scss +1 -1
  11. package/build/components/checkbox/checkbox.css +29 -24
  12. package/build/components/checkbox/checkbox.scss +2 -1
  13. package/build/components/custom-select/custom-select.css +34 -26
  14. package/build/components/custom-select/custom-select.scss +1 -1
  15. package/build/components/custom-select-dropdown/custom-select-dropdown.css +3 -3
  16. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +1 -1
  17. package/build/components/custom-select-form-field/custom-select-form-field.css +6 -2
  18. package/build/components/custom-select-form-field/custom-select-form-field.scss +5 -2
  19. package/build/components/custom-select-list/custom-select-list.css +3 -1
  20. package/build/components/custom-select-list/custom-select-list.scss +4 -1
  21. package/build/components/custom-select-list-item/custom-select-list-item.css +3 -1
  22. package/build/components/custom-select-list-item/custom-select-list-item.scss +2 -1
  23. package/build/components/drawer/drawer.css +8 -4
  24. package/build/components/drawer/drawer.scss +29 -5
  25. package/build/components/header/header.css +46 -24
  26. package/build/components/header/header.scss +27 -18
  27. package/build/components/icon/icon.css +1 -1
  28. package/build/components/icon/icon.scss +2 -1
  29. package/build/components/infotext/infotext.css +2 -0
  30. package/build/components/infotext/infotext.scss +2 -2
  31. package/build/components/input/input.css +30 -26
  32. package/build/components/link/link.css +2 -2
  33. package/build/components/navigation/navigation.css +4 -2
  34. package/build/components/navigation/navigation.scss +4 -2
  35. package/build/components/navigation-item/navigation-item.css +15 -6
  36. package/build/components/navigation-item/navigation-item.scss +10 -6
  37. package/build/components/notification/notification-grid-non-overlay.scss +3 -1
  38. package/build/components/notification/notification.css +6 -4
  39. package/build/components/notification/notification.scss +2 -1
  40. package/build/components/page/page.css +12 -4
  41. package/build/components/page/page.scss +8 -3
  42. package/build/components/popover/popover.css +3 -1
  43. package/build/components/popover/popover.scss +4 -1
  44. package/build/components/radio/radio.css +4 -1
  45. package/build/components/select/select.css +34 -26
  46. package/build/components/select/select.scss +2 -1
  47. package/build/components/stack/stack-web-component.css +3 -1
  48. package/build/components/stack/stack.css +3 -1
  49. package/build/components/switch/switch.css +7 -2
  50. package/build/components/switch/switch.scss +3 -1
  51. package/build/components/tab-item/tab-item.css +6 -2
  52. package/build/components/tab-item/tab-item.scss +6 -2
  53. package/build/components/tab-list/tab-list.css +3 -1
  54. package/build/components/tab-list/tab-list.scss +2 -1
  55. package/build/components/tab-panel/tab-panel.css +1 -1
  56. package/build/components/tab-panel/tab-panel.scss +2 -1
  57. package/build/components/tabs/tabs.css +58 -56
  58. package/build/components/tabs/tabs.scss +4 -3
  59. package/build/components/tag/tag.css +11 -5
  60. package/build/components/tag/tag.scss +5 -3
  61. package/build/components/textarea/textarea.css +27 -25
  62. package/build/styles/absolute.css +16 -16
  63. package/build/styles/index.css +15 -15
  64. package/build/styles/internal/_button-components.scss +5 -1
  65. package/build/styles/internal/_form-components.scss +8 -6
  66. package/build/styles/internal/_link-components.scss +2 -2
  67. package/build/styles/internal/_select-components.scss +9 -0
  68. package/build/styles/internal/_stack-components.scss +2 -1
  69. package/build/styles/relative.css +16 -16
  70. package/build/styles/rollup.css +16 -16
  71. package/build/styles/webpack.css +16 -16
  72. package/package.json +6 -2
@@ -198,7 +198,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
198
198
  }
199
199
  }
200
200
  .db-navigation > menu {
201
- display: flex;
202
201
  flex-direction: column;
203
202
  padding: 0;
204
203
  margin: 0;
@@ -206,6 +205,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
206
205
  /* stylelint-disable-next-line media-query-no-invalid */
207
206
  /* stylelint-disable-next-line at-rule-empty-line-before */
208
207
  }
208
+ .db-navigation > menu:not([hidden]) {
209
+ display: flex;
210
+ }
209
211
  @media screen and (min-width: 64em) {
210
212
  .db-navigation > menu:not([data-force-mobile]), .db-navigation > menu[data-force-mobile=false] {
211
213
  flex-direction: row;
@@ -286,7 +288,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
286
288
  /* stylelint-disable-next-line at-rule-empty-line-before */
287
289
  }
288
290
  @media screen and (min-width: 64em) {
289
- .db-navigation[data-force-close=true] > menu menu:not([data-force-mobile]), .db-navigation[data-force-close=true] > menu menu[data-force-mobile=false] {
291
+ .db-navigation[data-force-close=true] > menu menu:not([data-force-mobile]):not([hidden]), .db-navigation[data-force-close=true] > menu menu[data-force-mobile=false]:not([hidden]) {
290
292
  display: none;
291
293
  }
292
294
  }
@@ -1,6 +1,7 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
2
  @use "@db-ux/core-foundations/build/styles/screen-sizes";
3
3
  @use "../../styles/internal/component";
4
+ @use "@db-ux/core-foundations/build/styles/helpers/display";
4
5
  @use "../../styles/internal/form-components";
5
6
  @use "../../styles/internal/db-puls";
6
7
 
@@ -14,7 +15,8 @@
14
15
  }
15
16
 
16
17
  > menu {
17
- display: flex;
18
+ @include display.display(flex);
19
+
18
20
  flex-direction: column;
19
21
  padding: 0;
20
22
  margin: 0;
@@ -100,7 +102,7 @@
100
102
  &[data-force-close="true"] {
101
103
  > menu menu {
102
104
  @include screen-sizes.screen("md") {
103
- display: none;
105
+ @include display.display(none);
104
106
  }
105
107
  }
106
108
  }
@@ -277,7 +277,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
277
277
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
278
278
  cursor: pointer;
279
279
  inline-size: 100%;
280
- display: inline-flex;
281
280
  border-radius: var(--db-border-radius-sm);
282
281
  padding: var(--db-spacing-fixed-xs) var(--db-spacing-fixed-sm);
283
282
  white-space: nowrap;
@@ -286,6 +285,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
286
285
  justify-content: space-between;
287
286
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
288
287
  }
288
+ .db-navigation-item .db-navigation-item-expand-button:not([hidden]):is(button),
289
+ .db-navigation-item .db-navigation-item-expand-button > button:not([hidden]), .db-navigation-item a:not([hidden]) {
290
+ display: inline-flex;
291
+ }
289
292
  .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(button),
290
293
  .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]) {
291
294
  cursor: var(--db-overwrite-cursor, pointer);
@@ -323,7 +326,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
323
326
 
324
327
  .db-navigation-item {
325
328
  --db-has-before: 0;
326
- display: inline-flex;
327
329
  position: relative;
328
330
  inline-size: auto;
329
331
  /* stylelint-disable-next-line media-query-no-invalid */
@@ -345,6 +347,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
345
347
  /* stylelint-disable-next-line db-ux/use-spacings */
346
348
  padding-inline-start: var(--db-padding-inline-start);
347
349
  }
350
+ .db-navigation-item:not([hidden]) {
351
+ display: inline-flex;
352
+ }
348
353
  .db-navigation-item[data-wrap=true] :is(a, .db-navigation-item-expand-button):first-of-type {
349
354
  white-space: normal;
350
355
  text-align: start;
@@ -441,7 +446,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
441
446
 
442
447
  .db-sub-navigation {
443
448
  margin: 0;
444
- display: flex;
445
449
  flex-direction: column;
446
450
  z-index: 70;
447
451
  inset-inline-start: 0;
@@ -453,6 +457,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
453
457
  /* stylelint-disable-next-line media-query-no-invalid */
454
458
  /* stylelint-disable-next-line at-rule-empty-line-before */
455
459
  }
460
+ .db-sub-navigation:not([hidden]) {
461
+ display: flex;
462
+ }
456
463
  .db-sub-navigation[data-force-mobile=true] {
457
464
  padding: var(--db-spacing-fixed-md);
458
465
  inline-size: 100%;
@@ -470,7 +477,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
470
477
  }
471
478
  }
472
479
  @media screen and (min-width: 64em) {
473
- .db-sub-navigation:not([data-force-mobile]) .db-mobile-navigation-back, .db-sub-navigation[data-force-mobile=false] .db-mobile-navigation-back {
480
+ .db-sub-navigation:not([data-force-mobile]) .db-mobile-navigation-back:not([hidden]), .db-sub-navigation[data-force-mobile=false] .db-mobile-navigation-back:not([hidden]) {
474
481
  display: none;
475
482
  }
476
483
  }
@@ -542,7 +549,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
542
549
  inline-size: var(--db-spacing-fixed-xs);
543
550
  }
544
551
  }
545
- .db-sub-navigation:empty {
552
+ .db-sub-navigation:empty:not([hidden]) {
546
553
  display: none;
547
554
  }
548
555
  .db-sub-navigation .db-navigation-item {
@@ -553,7 +560,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
553
560
  }
554
561
 
555
562
  .db-mobile-navigation-back {
556
- display: flex;
557
563
  font-weight: normal;
558
564
  background-color: var(--db-adaptive-bg-basic-level-1-default);
559
565
  padding-block-end: var(--db-spacing-fixed-md);
@@ -561,6 +567,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
561
567
  --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
562
568
  position: var(--db-tooltip-parent-position, relative);
563
569
  }
570
+ .db-mobile-navigation-back:not([hidden]) {
571
+ display: flex;
572
+ }
564
573
  .db-mobile-navigation-back[data-emphasis=strong] {
565
574
  --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
566
575
  }
@@ -56,7 +56,6 @@
56
56
  background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
57
57
  cursor: pointer;
58
58
  inline-size: 100%;
59
- display: inline-flex;
60
59
  border-radius: variables.$db-border-radius-sm;
61
60
  padding: variables.$db-spacing-fixed-xs variables.$db-spacing-fixed-sm;
62
61
  white-space: nowrap; // we don't want to break
@@ -64,6 +63,8 @@
64
63
  align-items: center; // Centering the content vertically and horizontally
65
64
  justify-content: space-between;
66
65
 
66
+ @include helpers.display(inline-flex);
67
+
67
68
  @include helpers.hover {
68
69
  background-color: colors.$db-adaptive-bg-basic-transparent-full-hovered;
69
70
  }
@@ -82,8 +83,8 @@
82
83
 
83
84
  @extend %db-overwrite-font-size-md;
84
85
  @include icon-passing.icon-passing;
86
+ @include helpers.display(inline-flex);
85
87
 
86
- display: inline-flex;
87
88
  position: relative;
88
89
  inline-size: auto;
89
90
 
@@ -186,7 +187,9 @@
186
187
  @extend %component-border;
187
188
 
188
189
  margin: 0;
189
- display: flex;
190
+
191
+ @include helpers.display(flex);
192
+
190
193
  flex-direction: column;
191
194
  z-index: 70;
192
195
  inset-inline-start: 0;
@@ -199,7 +202,7 @@
199
202
 
200
203
  @include screen-sizes.screen("md") {
201
204
  .db-mobile-navigation-back {
202
- display: none;
205
+ @include helpers.display(none);
203
206
  }
204
207
  }
205
208
 
@@ -304,7 +307,7 @@
304
307
  }
305
308
 
306
309
  &:empty {
307
- display: none;
310
+ @include helpers.display(none);
308
311
  }
309
312
 
310
313
  .db-navigation-item {
@@ -317,7 +320,8 @@
317
320
  }
318
321
 
319
322
  .db-mobile-navigation-back {
320
- display: flex;
323
+ @include helpers.display(flex);
324
+
321
325
  font-weight: normal;
322
326
  background-color: colors.$db-adaptive-bg-basic-level-1-default;
323
327
  padding-block-end: variables.$db-spacing-fixed-md;
@@ -1,6 +1,8 @@
1
+ @use "@db-ux/core-foundations/build/styles/helpers/display";
2
+
1
3
  %grid-layout-variant-not-overlay {
2
4
  span {
3
- display: none;
5
+ @include display.display(none);
4
6
  }
5
7
 
6
8
  // has link
@@ -1040,7 +1040,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
1040
1040
  transform: rotate(1turn);
1041
1041
  }
1042
1042
  }
1043
- .db-notification a {
1043
+ .db-notification a:not([hidden]) {
1044
1044
  display: inline-block;
1045
1045
  }
1046
1046
  .db-notification a:not([data-wrap=true]) {
@@ -1081,7 +1081,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
1081
1081
  .db-notification a:not([data-wrap=true], [data-variant=inline]) {
1082
1082
  white-space: nowrap;
1083
1083
  }
1084
- .db-notification a[data-variant=inline] {
1084
+ .db-notification a[data-variant=inline]:not([hidden]) {
1085
1085
  display: inline;
1086
1086
  }
1087
1087
  .db-notification a:focus-visible {
@@ -1158,7 +1158,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
1158
1158
  grid-template-areas: "icon head timestamp close" "icon content content content";
1159
1159
  }
1160
1160
 
1161
- .db-notification:not([data-variant=overlay]) span {
1161
+ .db-notification:not([data-variant=overlay]) span:not([hidden]) {
1162
1162
  display: none;
1163
1163
  }
1164
1164
  .db-notification:has(a):not([data-link-variant=inline]):not([data-variant=overlay]) {
@@ -1198,12 +1198,14 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
1198
1198
  }
1199
1199
 
1200
1200
  .db-notification {
1201
- display: grid;
1202
1201
  padding: var(--db-spacing-fixed-md);
1203
1202
  gap: var(--db-spacing-fixed-xs) var(--db-spacing-fixed-md);
1204
1203
  inline-size: inherit;
1205
1204
  background-color: var(--db-adaptive-bg-basic-level-2-default);
1206
1205
  }
1206
+ .db-notification:not([hidden]) {
1207
+ display: grid;
1208
+ }
1207
1209
  .db-notification::before {
1208
1210
  --db-icon-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
1209
1211
  }
@@ -1,6 +1,7 @@
1
1
  @use "sass:map";
2
2
  @use "@db-ux/core-foundations/build/styles/density";
3
3
  @use "@db-ux/core-foundations/build/styles/variables";
4
+ @use "@db-ux/core-foundations/build/styles/helpers/display";
4
5
  @use "@db-ux/core-foundations/build/styles/colors";
5
6
  @use "@db-ux/core-foundations/build/styles/icons";
6
7
  @use "@db-ux/core-foundations/build/styles/screen-sizes";
@@ -27,8 +28,8 @@
27
28
  @extend %component-border;
28
29
  @extend %grid-layout-default;
29
30
  @extend %ugly-line-height-workarounds;
31
+ @include display.display(grid);
30
32
 
31
- display: grid;
32
33
  padding: variables.$db-spacing-fixed-md;
33
34
  gap: variables.$db-spacing-fixed-xs variables.$db-spacing-fixed-md;
34
35
  inline-size: inherit;
@@ -27,26 +27,34 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
27
27
  .db-page[data-variant=fixed] {
28
28
  block-size: 100%;
29
29
  min-block-size: 100%;
30
- display: flex;
31
30
  flex-direction: column;
32
31
  /* workaround for angular */
33
32
  }
34
33
  .db-page[data-variant=fixed] > :is(.db-header, .db-footer, header, footer) {
35
- display: flex;
36
34
  flex: 0 1 auto;
37
35
  flex-grow: 0;
38
36
  flex-shrink: 0;
39
37
  }
40
- .db-page[data-variant=fixed] > :is(db-header, dbheader, dbfooter, db-footer) > :is(.db-header, .db-footer, header, footer) {
38
+ .db-page[data-variant=fixed] > :is(.db-header, .db-footer, header, footer):not([hidden]) {
41
39
  display: flex;
40
+ }
41
+ .db-page[data-variant=fixed]:not([hidden]) {
42
+ display: flex;
43
+ }
44
+ .db-page[data-variant=fixed] > :is(db-header, dbheader, dbfooter, db-footer) > :is(.db-header, .db-footer, header, footer) {
42
45
  flex: 0 1 auto;
43
46
  flex-grow: 0;
44
47
  flex-shrink: 0;
45
48
  }
46
- .db-page[data-variant=fixed] > .db-main {
49
+ .db-page[data-variant=fixed] > :is(db-header, dbheader, dbfooter, db-footer) > :is(.db-header, .db-footer, header, footer):not([hidden]) {
47
50
  display: flex;
51
+ }
52
+ .db-page[data-variant=fixed] > .db-main {
48
53
  flex-direction: column;
49
54
  overflow: auto;
50
55
  flex: 1 1 auto;
51
56
  inline-size: 100%;
52
57
  }
58
+ .db-page[data-variant=fixed] > .db-main:not([hidden]) {
59
+ display: flex;
60
+ }
@@ -1,4 +1,5 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/helpers/display";
2
3
 
3
4
  .db-page-document {
4
5
  block-size: 100%;
@@ -7,7 +8,8 @@
7
8
 
8
9
  @mixin header-footer-style {
9
10
  > :is(.db-header, .db-footer, header, footer) {
10
- display: flex;
11
+ @include display.display(flex);
12
+
11
13
  flex: 0 1 auto;
12
14
  flex-grow: 0;
13
15
  flex-shrink: 0;
@@ -33,7 +35,9 @@
33
35
 
34
36
  block-size: 100%;
35
37
  min-block-size: 100%;
36
- display: flex;
38
+
39
+ @include display.display(flex);
40
+
37
41
  flex-direction: column;
38
42
 
39
43
  /* workaround for angular */
@@ -42,7 +46,8 @@
42
46
  }
43
47
 
44
48
  > .db-main {
45
- display: flex;
49
+ @include display.display(flex);
50
+
46
51
  flex-direction: column;
47
52
  overflow: auto;
48
53
  flex: 1 1 auto;
@@ -350,10 +350,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
350
350
 
351
351
  .db-popover {
352
352
  position: relative;
353
- display: flex;
354
353
  block-size: fit-content;
355
354
  inline-size: fit-content;
356
355
  }
356
+ .db-popover:not([hidden]) {
357
+ display: flex;
358
+ }
357
359
  .db-popover > article {
358
360
  /* stylelint-disable-next-line at-rule-empty-line-before */
359
361
  }
@@ -1,10 +1,13 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/helpers/display";
2
3
  @use "../../styles/internal/popover-component";
3
4
  @use "../../styles/internal/component";
4
5
 
5
6
  .db-popover {
6
7
  position: relative;
7
- display: flex;
8
+
9
+ @include display.display(flex);
10
+
8
11
  block-size: fit-content;
9
12
  inline-size: fit-content;
10
13
 
@@ -169,11 +169,14 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
169
169
  }
170
170
  .db-radio:is(label),
171
171
  .db-radio > label {
172
- display: flex;
173
172
  align-items: flex-start;
174
173
  position: relative;
175
174
  color: var(--db-check-element-label-color, var(--db-adaptive-on-bg-basic-emphasis-100-default));
176
175
  }
176
+ .db-radio:is(label):not([hidden]),
177
+ .db-radio > label:not([hidden]) {
178
+ display: flex;
179
+ }
177
180
  .db-radio input {
178
181
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
179
182
  place-content: center center;
@@ -559,8 +559,8 @@ input[type=radio]:checked) > label {
559
559
  .db-select > .db-infotext {
560
560
  margin-block-start: var(--db-spacing-fixed-2xs);
561
561
  }
562
- .db-select > db-infotext > .db-infotext:is([data-semantic=successful], [data-semantic=critical]),
563
- .db-select > .db-infotext:is([data-semantic=successful], [data-semantic=critical]) {
562
+ .db-select > db-infotext > .db-infotext:is([data-semantic=successful], [data-semantic=critical]):not([hidden]),
563
+ .db-select > .db-infotext:is([data-semantic=successful], [data-semantic=critical]):not([hidden]) {
564
564
  display: none;
565
565
  }
566
566
 
@@ -572,6 +572,12 @@ input[type=radio]:checked) > label {
572
572
  position: absolute;
573
573
  inset-block-start: 0;
574
574
  inset-inline-start: 0;
575
+ opacity: 0;
576
+ }
577
+ @media screen and (prefers-reduced-motion: no-preference) {
578
+ .db-select-placeholder {
579
+ transition: opacity var(--db-transition-straight-emotional), outline var(--db-transition-duration-extra-fast), border-color var(--db-transition-straight-emotional), background-color var(--db-transition-straight-emotional);
580
+ }
575
581
  }
576
582
 
577
583
  .db-select [id$=-placeholder] {
@@ -603,9 +609,11 @@ input[type=radio]:checked) > label {
603
609
  .db-select {
604
610
  --db-form-has-before: 0;
605
611
  position: relative;
606
- display: flex;
607
612
  flex-direction: column;
608
613
  }
614
+ .db-select:not([hidden]) {
615
+ display: flex;
616
+ }
609
617
  .db-select[data-variant=floating], .db-select[data-hide-label=true] {
610
618
  --db-label-visible-above: 0;
611
619
  }
@@ -701,15 +709,15 @@ input[type=radio]:checked) [id$=-placeholder] {
701
709
  /* stylelint-disable-next-line at-rule-empty-line-before */
702
710
  }
703
711
  .db-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
704
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
712
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
705
713
  .db-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
706
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful] {
714
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]) {
707
715
  display: flex;
708
716
  }
709
717
  .db-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
710
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
718
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
711
719
  .db-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
712
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]) {
720
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]) {
713
721
  display: none;
714
722
  }
715
723
  .db-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
@@ -737,21 +745,21 @@ input[type=radio]:checked) [id$=-placeholder] {
737
745
  /* stylelint-disable-next-line at-rule-empty-line-before */
738
746
  }
739
747
  .db-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
740
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
748
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
741
749
  .db-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
742
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful], .db-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
743
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
750
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]), .db-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
751
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
744
752
  .db-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
745
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful] {
753
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]) {
746
754
  display: flex;
747
755
  }
748
756
  .db-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
749
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
757
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
750
758
  .db-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
751
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]), .db-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
752
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
759
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]), .db-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
760
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
753
761
  .db-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
754
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]) {
762
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]) {
755
763
  display: none;
756
764
  }
757
765
  .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) {
@@ -762,12 +770,12 @@ input[type=radio]:checked) [id$=-placeholder] {
762
770
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
763
771
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
764
772
  }
765
- .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > db-infotext > .db-infotext[data-semantic=critical],
766
- .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > .db-infotext[data-semantic=critical] {
773
+ .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
774
+ .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > .db-infotext[data-semantic=critical]:not([hidden]) {
767
775
  display: flex;
768
776
  }
769
- .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > db-infotext > .db-infotext:not([data-semantic]),
770
- .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > .db-infotext:not([data-semantic]) {
777
+ .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
778
+ .db-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > .db-infotext:not([data-semantic]):not([hidden]) {
771
779
  display: none;
772
780
  }
773
781
  .db-select:has(select[data-custom-validity=invalid]), .db-select[data-custom-validity=invalid] {
@@ -779,14 +787,14 @@ input[type=radio]:checked) [id$=-placeholder] {
779
787
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
780
788
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
781
789
  }
782
- .db-select:has(select[data-custom-validity=invalid]) > db-infotext > .db-infotext[data-semantic=critical],
783
- .db-select:has(select[data-custom-validity=invalid]) > .db-infotext[data-semantic=critical], .db-select[data-custom-validity=invalid] > db-infotext > .db-infotext[data-semantic=critical],
784
- .db-select[data-custom-validity=invalid] > .db-infotext[data-semantic=critical] {
790
+ .db-select:has(select[data-custom-validity=invalid]) > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
791
+ .db-select:has(select[data-custom-validity=invalid]) > .db-infotext[data-semantic=critical]:not([hidden]), .db-select[data-custom-validity=invalid] > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
792
+ .db-select[data-custom-validity=invalid] > .db-infotext[data-semantic=critical]:not([hidden]) {
785
793
  display: flex;
786
794
  }
787
- .db-select:has(select[data-custom-validity=invalid]) > db-infotext > .db-infotext:not([data-semantic]),
788
- .db-select:has(select[data-custom-validity=invalid]) > .db-infotext:not([data-semantic]), .db-select[data-custom-validity=invalid] > db-infotext > .db-infotext:not([data-semantic]),
789
- .db-select[data-custom-validity=invalid] > .db-infotext:not([data-semantic]) {
795
+ .db-select:has(select[data-custom-validity=invalid]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
796
+ .db-select:has(select[data-custom-validity=invalid]) > .db-infotext:not([data-semantic]):not([hidden]), .db-select[data-custom-validity=invalid] > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
797
+ .db-select[data-custom-validity=invalid] > .db-infotext:not([data-semantic]):not([hidden]) {
790
798
  display: none;
791
799
  }
792
800
  .db-select select::placeholder,
@@ -874,6 +882,6 @@ select[aria-disabled=true]) {
874
882
  .db-select optgroup {
875
883
  background-color: var(--db-adaptive-bg-basic-level-3-default);
876
884
  }
877
- .db-select:has(> select option:checked:not(.placeholder)) [id$=-placeholder] {
885
+ .db-select:has(> select option:checked:not(.placeholder)) [id$=-placeholder]:not([hidden]) {
878
886
  display: none;
879
887
  }
@@ -6,6 +6,7 @@
6
6
  @use "../../styles/internal/form-components";
7
7
  @use "../../styles/internal/component";
8
8
  @use "../../styles/internal/select-components";
9
+ @use "@db-ux/core-foundations/build/styles/helpers/display";
9
10
 
10
11
  .db-select-placeholder {
11
12
  @extend %select-absolute-placeholder;
@@ -46,7 +47,7 @@
46
47
 
47
48
  &:has(> select option:checked:not(.placeholder)) {
48
49
  [id$="-placeholder"] {
49
- display: none;
50
+ @include display.display(none);
50
51
  }
51
52
  }
52
53
  }
@@ -44,13 +44,15 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
44
44
  @layer variables {}
45
45
 
46
46
  .db-stack {
47
- display: flex;
48
47
  gap: var(--db-spacing-fixed-sm);
49
48
  justify-content: flex-start;
50
49
  block-size: 100%;
51
50
  inline-size: 100%;
52
51
  overflow: auto;
53
52
  }
53
+ .db-stack:not([hidden]) {
54
+ display: flex;
55
+ }
54
56
  .db-stack:is([data-direction=column], :not([data-direction])) {
55
57
  flex-direction: column;
56
58
  }
@@ -44,13 +44,15 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
44
44
  @layer variables {}
45
45
 
46
46
  .db-stack {
47
- display: flex;
48
47
  gap: var(--db-spacing-fixed-sm);
49
48
  justify-content: flex-start;
50
49
  block-size: 100%;
51
50
  inline-size: 100%;
52
51
  overflow: auto;
53
52
  }
53
+ .db-stack:not([hidden]) {
54
+ display: flex;
55
+ }
54
56
  .db-stack:is([data-direction=column], :not([data-direction])) {
55
57
  flex-direction: column;
56
58
  }
@@ -532,11 +532,14 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
532
532
  }
533
533
  .db-switch:is(label),
534
534
  .db-switch > label {
535
- display: flex;
536
535
  align-items: flex-start;
537
536
  position: relative;
538
537
  color: var(--db-check-element-label-color, var(--db-adaptive-on-bg-basic-emphasis-100-default));
539
538
  }
539
+ .db-switch:is(label):not([hidden]),
540
+ .db-switch > label:not([hidden]) {
541
+ display: flex;
542
+ }
540
543
  .db-switch input {
541
544
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
542
545
  place-content: center center;
@@ -591,13 +594,15 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
591
594
  inline-size: calc(var(--db-icon-font-size) * 2 + 0.125rem);
592
595
  block-size: var(--db-icon-font-size);
593
596
  box-sizing: content-box;
594
- display: flex;
595
597
  align-items: center;
596
598
  /* stylelint-disable-next-line db-ux/use-spacings */
597
599
  gap: 0.125rem;
598
600
  border-radius: var(--db-border-radius-full);
599
601
  /* positioned at the end of the track: track length - 100% (thumb width) */
600
602
  }
603
+ .db-switch > input:not([hidden]) {
604
+ display: flex;
605
+ }
601
606
  .db-switch > input:not([data-show-icon-trailing=false])::after {
602
607
  --db-icon-trailing: "cross";
603
608
  margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
@@ -57,7 +57,9 @@ $checked-active-transition-size: calc(
57
57
  );
58
58
  block-size: form-components.$font-size-height;
59
59
  box-sizing: content-box;
60
- display: flex;
60
+
61
+ @include helpers.display(flex);
62
+
61
63
  align-items: center;
62
64
  /* stylelint-disable-next-line db-ux/use-spacings */
63
65
  gap: $switch-fixed-padding;
@@ -142,10 +142,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
142
142
 
143
143
  .db-tab-item {
144
144
  position: relative;
145
- display: inline-flex;
146
145
  list-style-type: "";
147
146
  border-radius: var(--db-border-radius-sm);
148
147
  }
148
+ .db-tab-item:not([hidden]) {
149
+ display: inline-flex;
150
+ }
149
151
  .db-tab-item:has(input:disabled) {
150
152
  opacity: var(--db-opacity-md);
151
153
  }
@@ -153,7 +155,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
153
155
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
154
156
  padding: var(--db-spacing-fixed-xs);
155
157
  align-items: center;
156
- display: inline-block;
157
158
  white-space: nowrap;
158
159
  border: 0;
159
160
  border-radius: var(--db-border-radius-sm);
@@ -162,6 +163,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
162
163
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
163
164
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
164
165
  }
166
+ .db-tab-item label:not([hidden]) {
167
+ display: inline-block;
168
+ }
165
169
  .db-tab-item label:hover:not(:disabled, [aria-disabled=true]) {
166
170
  cursor: var(--db-overwrite-cursor, pointer);
167
171
  }