@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
@@ -26,6 +26,10 @@
26
26
 
27
27
  %full-horizontal {
28
28
  &:not([data-width="full"]) {
29
+ /// Sets the maximum height of the drawer
30
+ /// @propertyname max-block-size
31
+ /// @cssprop --db-drawer-max-height
32
+ /// @default calc(100% - #{variables.$db-spacing-fixed-xl})
29
33
  max-block-size: var(
30
34
  --db-drawer-max-height,
31
35
  calc(100% - #{variables.$db-spacing-fixed-xl})
@@ -87,6 +91,10 @@ $spacings: (
87
91
 
88
92
  .db-drawer-header {
89
93
  // We need this variable to overwrite it inside the header
94
+ /// Controls the bottom padding inside the drawer header
95
+ /// @propertyname padding-block-end
96
+ /// @cssprop --db-drawer-header-padding-block-end
97
+ /// @default #{map.get($spacing, "block")}
90
98
  /* stylelint-disable-next-line db-ux/use-spacings */
91
99
  padding-block-end: var(
92
100
  --db-drawer-header-padding-block-end,
@@ -97,6 +105,10 @@ $spacings: (
97
105
 
98
106
  .db-drawer-content {
99
107
  // We need this variable to overwrite it inside the header
108
+ /// Controls left/right padding inside the drawer content area
109
+ /// @propertyname padding-inline
110
+ /// @cssprop --db-drawer-content-padding-inline
111
+ /// @default #{map.get($spacing, "inline")}
100
112
  /* stylelint-disable-next-line db-ux/use-spacings */
101
113
  padding-inline: var(
102
114
  --db-drawer-content-padding-inline,
@@ -125,8 +137,8 @@ $spacings: (
125
137
  .db-drawer-container {
126
138
  @extend %direction-right;
127
139
  @extend %spacing-drawer;
140
+ @include helpers.display(flex);
128
141
 
129
- display: flex;
130
142
  flex-direction: column;
131
143
  background-color: colors.$db-adaptive-bg-basic-level-1-default;
132
144
  block-size: 100%;
@@ -135,6 +147,19 @@ $spacings: (
135
147
  box-shadow: variables.$db-elevation-md;
136
148
 
137
149
  &:not([data-width="full"]) {
150
+ /// Sets the maximum width of the drawer
151
+ /// and some default values for the drawer
152
+ /// @propertyname max-inline-size
153
+ /// @cssprop --db-drawer-max-width
154
+ /// @default calc(100% - #{variables.$db-spacing-fixed-xl})
155
+ ///
156
+ /// @example css - Wide drawer
157
+ /// .db-drawer-wide {
158
+ /// --db-drawer-max-width: 800px;
159
+ /// }
160
+ /// <div class="db-drawer db-drawer-wide">
161
+ /// <!-- wide drawer -->
162
+ /// </div>
138
163
  max-inline-size: var(
139
164
  --db-drawer-max-width,
140
165
  calc(100% - #{variables.$db-spacing-fixed-xl})
@@ -179,8 +204,7 @@ $spacings: (
179
204
  }
180
205
 
181
206
  .db-drawer-header {
182
- display: none;
183
-
207
+ @include helpers.display(none);
184
208
  @include helpers.divider("bottom");
185
209
 
186
210
  .db-drawer-header-text {
@@ -199,7 +223,7 @@ $spacings: (
199
223
 
200
224
  &:has(.button-close-drawer),
201
225
  &:has(:not(.db-drawer-header-text:empty)) {
202
- display: flex;
226
+ @include helpers.display(flex);
203
227
  }
204
228
  }
205
229
  }
@@ -213,7 +237,7 @@ $spacings: (
213
237
  background-color: transparent;
214
238
 
215
239
  &[open] {
216
- display: flex;
240
+ @include helpers.display(flex);
217
241
  }
218
242
 
219
243
  &:not([data-direction]),
@@ -420,7 +420,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
420
420
 
421
421
  .db-header {
422
422
  background-color: var(--db-adaptive-bg-basic-level-1-default);
423
- display: flex;
424
423
  flex-direction: column;
425
424
  position: relative;
426
425
  min-block-size: calc(var(--db-sizing-md) + 2 * var(--db-spacing-fixed-xs));
@@ -428,6 +427,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
428
427
  /* stylelint-disable-next-line media-query-no-invalid */
429
428
  /* stylelint-disable-next-line at-rule-empty-line-before */
430
429
  }
430
+ .db-header:not([hidden]) {
431
+ display: flex;
432
+ }
431
433
  @media screen and (min-width: 64em) {
432
434
  .db-header:not([data-force-mobile]), .db-header[data-force-mobile=false] {
433
435
  --db-drawer-max-width: 48em;
@@ -445,7 +447,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
445
447
  margin-inline: auto;
446
448
  max-inline-size: 90em;
447
449
  }
448
- .db-header .db-link {
450
+ .db-header .db-link:not([hidden]) {
449
451
  display: inline-block;
450
452
  }
451
453
  .db-header[data-on-forcing-mobile=true] {
@@ -458,7 +460,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
458
460
  .db-header:has(.db-header-navigation:empty) .db-header-navigation-container::before, .db-header:has(.db-brand:empty) .db-header-navigation-container::before {
459
461
  display: none;
460
462
  }
461
- .db-header:has(.db-header-navigation:empty):has(.db-header-meta-navigation:empty):has(.db-header-secondary-action:empty) .db-header-burger-menu-container {
463
+ .db-header:has(.db-header-navigation:empty):has(.db-header-meta-navigation:empty):has(.db-header-secondary-action:empty) .db-header-burger-menu-container:not([hidden]) {
462
464
  display: none;
463
465
  }
464
466
  .db-header:has(.db-header-navigation:empty):has(.db-header-secondary-action:empty) .db-header-action-container::before {
@@ -466,7 +468,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
466
468
  }
467
469
 
468
470
  .db-header-navigation-bar {
469
- display: flex;
470
471
  position: relative;
471
472
  padding: var(--db-spacing-fixed-xs) var(--db-spacing-fixed-md);
472
473
  inline-size: 100%;
@@ -474,6 +475,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
474
475
  /* stylelint-disable-next-line media-query-no-invalid */
475
476
  /* stylelint-disable-next-line at-rule-empty-line-before */
476
477
  }
478
+ .db-header-navigation-bar:not([hidden]) {
479
+ display: flex;
480
+ }
477
481
  @media screen and (min-width: 64em) {
478
482
  .db-header-navigation-bar:not([data-force-mobile]), .db-header-navigation-bar[data-force-mobile=false] {
479
483
  padding: var(--db-spacing-fixed-md) var(--db-spacing-fixed-lg);
@@ -481,7 +485,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
481
485
  }
482
486
 
483
487
  .db-header-meta-navigation {
484
- display: flex;
485
488
  flex-direction: column;
486
489
  gap: var(--db-spacing-fixed-sm);
487
490
  justify-content: flex-end;
@@ -492,6 +495,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
492
495
  /* stylelint-disable-next-line media-query-no-invalid */
493
496
  /* stylelint-disable-next-line at-rule-empty-line-before */
494
497
  }
498
+ .db-header-meta-navigation:not([hidden]) {
499
+ display: flex;
500
+ }
495
501
  .db-header-meta-navigation[data-emphasis=strong] {
496
502
  --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
497
503
  }
@@ -520,16 +526,15 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
520
526
  .db-header-meta-navigation:not([data-force-mobile])::before, .db-header-meta-navigation[data-force-mobile=false]::before {
521
527
  display: none;
522
528
  }
523
- .db-header-meta-navigation:not([data-force-mobile]):empty, .db-header-meta-navigation[data-force-mobile=false]:empty {
529
+ .db-header-meta-navigation:not([data-force-mobile]):empty:not([hidden]), .db-header-meta-navigation[data-force-mobile=false]:empty:not([hidden]) {
524
530
  display: none;
525
531
  }
526
532
  }
527
- .db-header-meta-navigation:empty {
533
+ .db-header-meta-navigation:empty:not([hidden]) {
528
534
  display: none;
529
535
  }
530
536
 
531
537
  .db-header-navigation-container {
532
- display: inherit;
533
538
  flex: 1 1 auto;
534
539
  inline-size: 100%;
535
540
  align-items: center;
@@ -537,6 +542,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
537
542
  /* stylelint-disable-next-line media-query-no-invalid */
538
543
  /* stylelint-disable-next-line at-rule-empty-line-before */
539
544
  }
545
+ .db-header-navigation-container:not([hidden]) {
546
+ display: inherit;
547
+ }
540
548
  @media screen and (min-width: 64em) {
541
549
  .db-header-navigation-container:not([data-force-mobile]), .db-header-navigation-container[data-force-mobile=false] {
542
550
  --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
@@ -573,7 +581,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
573
581
  margin-inline-start: auto;
574
582
  }
575
583
 
576
- .db-header-brand-container:not(:has(> :nth-child(1))) {
584
+ .db-header-brand-container:not(:has(> :nth-child(1))):not([hidden]) {
577
585
  display: none;
578
586
  }
579
587
 
@@ -582,7 +590,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
582
590
  /* stylelint-disable-next-line at-rule-empty-line-before */
583
591
  }
584
592
  @media screen and (min-width: 64em) {
585
- .db-header-action-container:has(> .db-header-secondary-action:empty):not([data-force-mobile]), .db-header-action-container:has(> .db-header-secondary-action:empty)[data-force-mobile=false] {
593
+ .db-header-action-container:has(> .db-header-secondary-action:empty):not([data-force-mobile]):not([hidden]), .db-header-action-container:has(> .db-header-secondary-action:empty)[data-force-mobile=false]:not([hidden]) {
586
594
  display: none;
587
595
  }
588
596
  }
@@ -630,12 +638,15 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
630
638
  .db-header-action-container {
631
639
  align-items: center;
632
640
  block-size: 100%;
633
- display: inherit;
634
641
  gap: inherit;
635
642
  flex: 0 1 auto;
636
643
  flex-grow: 0;
637
644
  flex-shrink: 0;
638
645
  }
646
+ .db-header-brand-container:not([hidden]),
647
+ .db-header-action-container:not([hidden]) {
648
+ display: inherit;
649
+ }
639
650
 
640
651
  .db-header-secondary-action {
641
652
  flex: 0 1 auto;
@@ -672,13 +683,15 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
672
683
  }
673
684
 
674
685
  .db-header-drawer-navigation {
675
- display: flex;
676
686
  flex-direction: column;
677
687
  flex: 1 1 auto;
678
688
  block-size: 100%;
679
689
  overflow: auto;
680
690
  justify-content: space-between;
681
691
  }
692
+ .db-header-drawer-navigation:not([hidden]) {
693
+ display: flex;
694
+ }
682
695
 
683
696
  .db-header-navigation {
684
697
  padding-block: var(--db-spacing-fixed-md);
@@ -693,12 +706,15 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
693
706
 
694
707
  .db-header-navigation,
695
708
  .db-header-secondary-action {
696
- display: flex;
697
709
  gap: var(--db-spacing-fixed-sm);
698
710
  padding-inline: var(--db-spacing-fixed-md);
699
711
  /* stylelint-disable-next-line media-query-no-invalid */
700
712
  /* stylelint-disable-next-line at-rule-empty-line-before */
701
713
  }
714
+ .db-header-navigation:not([hidden]),
715
+ .db-header-secondary-action:not([hidden]) {
716
+ display: flex;
717
+ }
702
718
  @media screen and (min-width: 64em) {
703
719
  .db-header-navigation:not([data-force-mobile]), .db-header-navigation[data-force-mobile=false],
704
720
  .db-header-secondary-action:not([data-force-mobile]),
@@ -716,32 +732,38 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
716
732
  padding-block-end: 0;
717
733
  }
718
734
  .db-header-drawer .db-drawer-content {
719
- display: flex;
720
735
  flex-direction: column;
721
736
  block-size: 100%;
722
737
  overflow: hidden;
723
738
  }
739
+ .db-header-drawer .db-drawer-content:not([hidden]) {
740
+ display: flex;
741
+ }
724
742
 
725
743
  /* Only for Desktop */
726
744
  .db-header-meta-navigation,
727
745
  .db-header-navigation-container > .db-header-navigation,
728
746
  .db-header-action-container > .db-header-secondary-action {
729
- display: none;
730
747
  /* stylelint-disable-next-line media-query-no-invalid */
731
748
  /* stylelint-disable-next-line at-rule-empty-line-before */
732
749
  }
750
+ .db-header-meta-navigation:not([hidden]),
751
+ .db-header-navigation-container > .db-header-navigation:not([hidden]),
752
+ .db-header-action-container > .db-header-secondary-action:not([hidden]) {
753
+ display: none;
754
+ }
733
755
  @media screen and (min-width: 64em) {
734
- .db-header-meta-navigation:not([data-force-mobile]), .db-header-meta-navigation[data-force-mobile=false],
735
- .db-header-navigation-container > .db-header-navigation:not([data-force-mobile]),
736
- .db-header-navigation-container > .db-header-navigation[data-force-mobile=false],
737
- .db-header-action-container > .db-header-secondary-action:not([data-force-mobile]),
738
- .db-header-action-container > .db-header-secondary-action[data-force-mobile=false] {
756
+ .db-header-meta-navigation:not([data-force-mobile]):not([hidden]), .db-header-meta-navigation[data-force-mobile=false]:not([hidden]),
757
+ .db-header-navigation-container > .db-header-navigation:not([data-force-mobile]):not([hidden]),
758
+ .db-header-navigation-container > .db-header-navigation[data-force-mobile=false]:not([hidden]),
759
+ .db-header-action-container > .db-header-secondary-action:not([data-force-mobile]):not([hidden]),
760
+ .db-header-action-container > .db-header-secondary-action[data-force-mobile=false]:not([hidden]) {
739
761
  display: inherit;
740
762
  }
741
763
  }
742
764
 
743
765
  /* Only for Mobile */
744
- .db-header-drawer-navigation > .db-header-meta-navigation:not(:empty) {
766
+ .db-header-drawer-navigation > .db-header-meta-navigation:not(:empty):not([hidden]) {
745
767
  display: inherit;
746
768
  }
747
769
 
@@ -751,9 +773,9 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
751
773
  /* stylelint-disable-next-line at-rule-empty-line-before */
752
774
  }
753
775
  @media screen and (min-width: 64em) {
754
- .db-header-drawer:not([data-force-mobile]), .db-header-drawer[data-force-mobile=false],
755
- .db-header-burger-menu-container:not([data-force-mobile]),
756
- .db-header-burger-menu-container[data-force-mobile=false] {
776
+ .db-header-drawer:not([data-force-mobile]):not([hidden]), .db-header-drawer[data-force-mobile=false]:not([hidden]),
777
+ .db-header-burger-menu-container:not([data-force-mobile]):not([hidden]),
778
+ .db-header-burger-menu-container[data-force-mobile=false]:not([hidden]) {
757
779
  display: none;
758
780
  }
759
781
  }
@@ -7,7 +7,9 @@
7
7
 
8
8
  .db-header {
9
9
  background-color: colors.$db-adaptive-bg-basic-level-1-default;
10
- display: flex;
10
+
11
+ @include helpers.display(flex);
12
+
11
13
  flex-direction: column;
12
14
  position: relative;
13
15
  min-block-size: component.$min-mobile-header-height;
@@ -34,7 +36,7 @@
34
36
  }
35
37
 
36
38
  .db-link {
37
- display: inline-block;
39
+ @include helpers.display(inline-block);
38
40
  }
39
41
 
40
42
  &[data-on-forcing-mobile="true"] {
@@ -59,7 +61,7 @@
59
61
  .db-header-meta-navigation:empty
60
62
  ):has(.db-header-secondary-action:empty) {
61
63
  .db-header-burger-menu-container {
62
- display: none;
64
+ @include helpers.display(none);
63
65
  }
64
66
  }
65
67
 
@@ -73,7 +75,8 @@
73
75
  }
74
76
 
75
77
  .db-header-navigation-bar {
76
- display: flex;
78
+ @include helpers.display(flex);
79
+
77
80
  position: relative;
78
81
  padding: variables.$db-spacing-fixed-xs variables.$db-spacing-fixed-md;
79
82
  inline-size: 100%;
@@ -86,8 +89,8 @@
86
89
 
87
90
  .db-header-meta-navigation {
88
91
  @extend %db-density-functional;
92
+ @include helpers.display(flex);
89
93
 
90
- display: flex;
91
94
  flex-direction: column;
92
95
  gap: variables.$db-spacing-fixed-sm;
93
96
  justify-content: flex-end;
@@ -107,17 +110,18 @@
107
110
  }
108
111
 
109
112
  &:empty {
110
- display: none;
113
+ @include helpers.display(none);
111
114
  }
112
115
  }
113
116
 
114
117
  &:empty {
115
- display: none;
118
+ @include helpers.display(none);
116
119
  }
117
120
  }
118
121
 
119
122
  .db-header-navigation-container {
120
- display: inherit;
123
+ @include helpers.display(inherit);
124
+
121
125
  flex: 1 1 auto;
122
126
  inline-size: 100%;
123
127
  align-items: center;
@@ -139,12 +143,12 @@
139
143
  }
140
144
 
141
145
  .db-header-brand-container:not(:has(> :nth-child(1))) {
142
- display: none;
146
+ @include helpers.display(none);
143
147
  }
144
148
 
145
149
  .db-header-action-container:has(> .db-header-secondary-action:empty) {
146
150
  @include screen-sizes.screen("md") {
147
- display: none;
151
+ @include helpers.display(none);
148
152
  }
149
153
  }
150
154
 
@@ -172,7 +176,9 @@
172
176
  .db-header-action-container {
173
177
  align-items: center;
174
178
  block-size: 100%;
175
- display: inherit;
179
+
180
+ @include helpers.display(inherit);
181
+
176
182
  gap: inherit;
177
183
  flex: 0 1 auto;
178
184
  flex-grow: 0;
@@ -195,7 +201,8 @@
195
201
  }
196
202
 
197
203
  .db-header-drawer-navigation {
198
- display: flex;
204
+ @include helpers.display(flex);
205
+
199
206
  flex-direction: column;
200
207
  flex: 1 1 auto;
201
208
  block-size: 100%;
@@ -213,7 +220,8 @@
213
220
 
214
221
  .db-header-navigation,
215
222
  .db-header-secondary-action {
216
- display: flex;
223
+ @include helpers.display(flex);
224
+
217
225
  gap: variables.$db-spacing-fixed-sm;
218
226
  padding-inline: variables.$db-spacing-fixed-md;
219
227
 
@@ -234,7 +242,8 @@
234
242
  padding-block-end: 0;
235
243
 
236
244
  .db-drawer-content {
237
- display: flex;
245
+ @include helpers.display(flex);
246
+
238
247
  flex-direction: column;
239
248
  block-size: 100%;
240
249
  overflow: hidden;
@@ -245,21 +254,21 @@
245
254
  .db-header-meta-navigation,
246
255
  .db-header-navigation-container > .db-header-navigation,
247
256
  .db-header-action-container > .db-header-secondary-action {
248
- display: none;
257
+ @include helpers.display(none);
249
258
 
250
259
  @include screen-sizes.screen("md") {
251
- display: inherit;
260
+ @include helpers.display(inherit);
252
261
  }
253
262
  }
254
263
 
255
264
  /* Only for Mobile */
256
265
  .db-header-drawer-navigation > .db-header-meta-navigation:not(:empty) {
257
- display: inherit;
266
+ @include helpers.display(inherit);
258
267
  }
259
268
 
260
269
  .db-header-drawer,
261
270
  .db-header-burger-menu-container {
262
271
  @include screen-sizes.screen("md") {
263
- display: none;
272
+ @include helpers.display(none);
264
273
  }
265
274
  }
@@ -52,7 +52,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
52
52
  --db-icon-margin-end: 0;
53
53
  }
54
54
  @supports (-webkit-hyphens: none) {
55
- .db-icon {
55
+ .db-icon:not([hidden]) {
56
56
  display: inline-block;
57
57
  }
58
58
  .db-icon::before {
@@ -1,11 +1,12 @@
1
1
  @use "@db-ux/core-foundations/build/styles/icons";
2
+ @use "@db-ux/core-foundations/build/styles/helpers/display";
2
3
 
3
4
  .db-icon {
4
5
  @include icons.is-icon-text-replace;
5
6
 
6
7
  /* Safari hack */
7
8
  @supports (-webkit-hyphens: none) {
8
- display: inline-block;
9
+ @include display.display(inline-block);
9
10
 
10
11
  &::before {
11
12
  block-size: auto;
@@ -163,6 +163,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
163
163
 
164
164
  .db-infotext {
165
165
  --db-icon-margin-end: var(--db-spacing-fixed-2xs);
166
+ }
167
+ .db-infotext:not([hidden]) {
166
168
  display: flex;
167
169
  }
168
170
  .db-infotext:not([data-icon]) {
@@ -1,6 +1,7 @@
1
1
  @use "sass:map";
2
2
  @use "@db-ux/core-foundations/build/styles/fonts";
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
 
@@ -8,8 +9,7 @@
8
9
  --db-icon-margin-end: #{variables.$db-spacing-fixed-2xs};
9
10
 
10
11
  @extend %db-overwrite-font-size-sm;
11
-
12
- display: flex;
12
+ @include display.display(flex);
13
13
 
14
14
  @include icons.has-no-icon {
15
15
  @include icons.to-filled-icon;
@@ -559,8 +559,8 @@ input[type=radio]:checked) > label {
559
559
  .db-input > .db-infotext {
560
560
  margin-block-start: var(--db-spacing-fixed-2xs);
561
561
  }
562
- .db-input > db-infotext > .db-infotext:is([data-semantic=successful], [data-semantic=critical]),
563
- .db-input > .db-infotext:is([data-semantic=successful], [data-semantic=critical]) {
562
+ .db-input > db-infotext > .db-infotext:is([data-semantic=successful], [data-semantic=critical]):not([hidden]),
563
+ .db-input > .db-infotext:is([data-semantic=successful], [data-semantic=critical]):not([hidden]) {
564
564
  display: none;
565
565
  }
566
566
 
@@ -569,10 +569,12 @@ input[type=radio]:checked) > label {
569
569
  white-space: nowrap;
570
570
  justify-content: center;
571
571
  text-align: center;
572
- display: inline-flex;
573
572
  align-items: center;
574
573
  vertical-align: top;
575
574
  }
575
+ .db-input input:not([hidden])::file-selector-button {
576
+ display: inline-flex;
577
+ }
576
578
 
577
579
  .db-input {
578
580
  min-inline-size: var(--db-form-component-min-inline-size, var(--db-sizing-lg));
@@ -581,9 +583,11 @@ input[type=radio]:checked) > label {
581
583
  .db-input {
582
584
  --db-form-has-before: 0;
583
585
  position: relative;
584
- display: flex;
585
586
  flex-direction: column;
586
587
  }
588
+ .db-input:not([hidden]) {
589
+ display: flex;
590
+ }
587
591
  .db-input[data-variant=floating], .db-input[data-hide-label=true] {
588
592
  --db-label-visible-above: 0;
589
593
  }
@@ -677,15 +681,15 @@ input[type=radio]:checked) [id$=-placeholder] {
677
681
  /* stylelint-disable-next-line at-rule-empty-line-before */
678
682
  }
679
683
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid):has(> .db-infotext[data-semantic=successful],
680
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
684
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
681
685
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid):has(> .db-infotext[data-semantic=successful],
682
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful] {
686
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]) {
683
687
  display: flex;
684
688
  }
685
689
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid):has(> .db-infotext[data-semantic=successful],
686
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
690
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
687
691
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid):has(> .db-infotext[data-semantic=successful],
688
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]) {
692
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]) {
689
693
  display: none;
690
694
  }
691
695
  .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
@@ -713,21 +717,21 @@ input[type=radio]:checked) [id$=-placeholder] {
713
717
  /* stylelint-disable-next-line at-rule-empty-line-before */
714
718
  }
715
719
  .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
716
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
720
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
717
721
  .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
718
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful], .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
719
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
722
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]), .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
723
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
720
724
  .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
721
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful] {
725
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]) {
722
726
  display: flex;
723
727
  }
724
728
  .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
725
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
729
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
726
730
  .db-input:has(input[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
727
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]), .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
728
- > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
731
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]), .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
732
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
729
733
  .db-input[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
730
- > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]) {
734
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]) {
731
735
  display: none;
732
736
  }
733
737
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) {
@@ -738,12 +742,12 @@ input[type=radio]:checked) [id$=-placeholder] {
738
742
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
739
743
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
740
744
  }
741
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > db-infotext > .db-infotext[data-semantic=critical],
742
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > .db-infotext[data-semantic=critical] {
745
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
746
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > .db-infotext[data-semantic=critical]:not([hidden]) {
743
747
  display: flex;
744
748
  }
745
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > db-infotext > .db-infotext:not([data-semantic]),
746
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > .db-infotext:not([data-semantic]) {
749
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
750
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) > .db-infotext:not([data-semantic]):not([hidden]) {
747
751
  display: none;
748
752
  }
749
753
  .db-input:has(input[data-custom-validity=invalid]), .db-input[data-custom-validity=invalid] {
@@ -755,14 +759,14 @@ input[type=radio]:checked) [id$=-placeholder] {
755
759
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
756
760
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
757
761
  }
758
- .db-input:has(input[data-custom-validity=invalid]) > db-infotext > .db-infotext[data-semantic=critical],
759
- .db-input:has(input[data-custom-validity=invalid]) > .db-infotext[data-semantic=critical], .db-input[data-custom-validity=invalid] > db-infotext > .db-infotext[data-semantic=critical],
760
- .db-input[data-custom-validity=invalid] > .db-infotext[data-semantic=critical] {
762
+ .db-input:has(input[data-custom-validity=invalid]) > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
763
+ .db-input:has(input[data-custom-validity=invalid]) > .db-infotext[data-semantic=critical]:not([hidden]), .db-input[data-custom-validity=invalid] > db-infotext > .db-infotext[data-semantic=critical]:not([hidden]),
764
+ .db-input[data-custom-validity=invalid] > .db-infotext[data-semantic=critical]:not([hidden]) {
761
765
  display: flex;
762
766
  }
763
- .db-input:has(input[data-custom-validity=invalid]) > db-infotext > .db-infotext:not([data-semantic]),
764
- .db-input:has(input[data-custom-validity=invalid]) > .db-infotext:not([data-semantic]), .db-input[data-custom-validity=invalid] > db-infotext > .db-infotext:not([data-semantic]),
765
- .db-input[data-custom-validity=invalid] > .db-infotext:not([data-semantic]) {
767
+ .db-input:has(input[data-custom-validity=invalid]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
768
+ .db-input:has(input[data-custom-validity=invalid]) > .db-infotext:not([data-semantic]):not([hidden]), .db-input[data-custom-validity=invalid] > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
769
+ .db-input[data-custom-validity=invalid] > .db-infotext:not([data-semantic]):not([hidden]) {
766
770
  display: none;
767
771
  }
768
772
  .db-input input::placeholder,
@@ -248,7 +248,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
248
248
  * @mixin screen-min-max
249
249
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
250
250
  */
251
- .db-link a, .db-link {
251
+ .db-link a:not([hidden]), .db-link:not([hidden]) {
252
252
  display: inline-block;
253
253
  }
254
254
  .db-link a:not([data-wrap=true]), .db-link:not([data-wrap=true]) {
@@ -289,7 +289,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
289
289
  .db-link:not([data-wrap=true], [data-variant=inline]) {
290
290
  white-space: nowrap;
291
291
  }
292
- [data-variant=inline].db-link {
292
+ [data-variant=inline].db-link:not([hidden]) {
293
293
  display: inline;
294
294
  }
295
295
  .db-link:focus-visible {