@db-ux/core-components 4.6.1 → 4.7.0

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 (44) hide show
  1. package/CHANGELOG.md +28 -16
  2. package/build/components/accordion-item/accordion-item.css +5 -3
  3. package/build/components/badge/badge.css +13 -7
  4. package/build/components/brand/brand.css +3 -3
  5. package/build/components/button/button.css +3 -1
  6. package/build/components/card/card.css +10 -6
  7. package/build/components/checkbox/checkbox.css +25 -21
  8. package/build/components/custom-button/custom-button.css +3 -1
  9. package/build/components/custom-select/custom-select.css +19 -15
  10. package/build/components/custom-select-dropdown/custom-select-dropdown.css +11 -3
  11. package/build/components/custom-select-form-field/custom-select-form-field.css +8 -6
  12. package/build/components/custom-select-list/custom-select-list.css +4 -2
  13. package/build/components/custom-select-list-item/custom-select-list-item.css +7 -5
  14. package/build/components/drawer/drawer.css +3 -3
  15. package/build/components/header/header.css +115 -60
  16. package/build/components/icon/icon.css +4 -2
  17. package/build/components/infotext/infotext.css +15 -15
  18. package/build/components/input/input.css +12 -10
  19. package/build/components/navigation/navigation.css +28 -12
  20. package/build/components/navigation-item/navigation-item.css +39 -19
  21. package/build/components/notification/notification.css +5 -5
  22. package/build/components/notification/notification.scss +1 -1
  23. package/build/components/page/page.css +13 -11
  24. package/build/components/popover/popover.css +25 -13
  25. package/build/components/radio/radio.css +10 -8
  26. package/build/components/section/section.css +3 -3
  27. package/build/components/select/select.css +11 -11
  28. package/build/components/select/select.scss +4 -4
  29. package/build/components/stack/stack-web-component.css +3 -3
  30. package/build/components/stack/stack.css +3 -3
  31. package/build/components/switch/switch.css +30 -20
  32. package/build/components/tab-item/tab-item.css +17 -9
  33. package/build/components/tab-list/tab-list.css +15 -7
  34. package/build/components/tabs/tabs.css +21 -15
  35. package/build/components/tag/tag.css +32 -11
  36. package/build/components/textarea/textarea.css +27 -17
  37. package/build/components/tooltip/tooltip.css +19 -9
  38. package/build/styles/absolute.css +32 -18
  39. package/build/styles/bundle.css +32 -18
  40. package/build/styles/index.css +31 -17
  41. package/build/styles/relative.css +32 -18
  42. package/build/styles/rollup.css +32 -18
  43. package/build/styles/webpack.css +32 -18
  44. package/package.json +6 -6
@@ -1,4 +1,7 @@
1
1
  /* Variants for adaptive components like input, select, notification, ... */
2
+ .db-stack:not([hidden]) {
3
+ display: flex;
4
+ }
2
5
  .db-stack {
3
6
  gap: var(--db-spacing-fixed-sm);
4
7
  justify-content: flex-start;
@@ -6,9 +9,6 @@
6
9
  inline-size: 100%;
7
10
  overflow: auto;
8
11
  }
9
- .db-stack:not([hidden]) {
10
- display: flex;
11
- }
12
12
  .db-stack:is([data-direction=column], :not([data-direction])) {
13
13
  flex-direction: column;
14
14
  }
@@ -1,4 +1,7 @@
1
1
  /* Variants for adaptive components like input, select, notification, ... */
2
+ .db-stack:not([hidden]) {
3
+ display: flex;
4
+ }
2
5
  .db-stack {
3
6
  gap: var(--db-spacing-fixed-sm);
4
7
  justify-content: flex-start;
@@ -6,9 +9,6 @@
6
9
  inline-size: 100%;
7
10
  overflow: auto;
8
11
  }
9
- .db-stack:not([hidden]) {
10
- display: flex;
11
- }
12
12
  .db-stack:is([data-direction=column], :not([data-direction])) {
13
13
  flex-direction: column;
14
14
  }
@@ -101,9 +101,6 @@
101
101
 
102
102
  .db-switch {
103
103
  user-select: none;
104
- /* stylelint-disable-next-line at-rule-empty-line-before */
105
- /* stylelint-disable-next-line at-rule-empty-line-before */
106
- /* Label position (leading/trailing) */
107
104
  }
108
105
  .db-switch:not([data-hide-asterisk=true]):has(input:required):is(label)::after,
109
106
  .db-switch:not([data-hide-asterisk=true]):has(input:required) > label::after, .db-switch:not([data-hide-asterisk=true])[data-required=true]:is(label)::after,
@@ -122,16 +119,16 @@
122
119
  .db-switch:has(input:disabled) {
123
120
  opacity: var(--db-opacity-md);
124
121
  }
122
+ .db-switch:is(label):not([hidden]),
123
+ .db-switch > label:not([hidden]) {
124
+ display: flex;
125
+ }
125
126
  .db-switch:is(label),
126
127
  .db-switch > label {
127
128
  align-items: flex-start;
128
129
  position: relative;
129
130
  color: var(--db-check-element-label-color, var(--db-adaptive-on-bg-basic-emphasis-100-default));
130
131
  }
131
- .db-switch:is(label):not([hidden]),
132
- .db-switch > label:not([hidden]) {
133
- display: flex;
134
- }
135
132
  .db-switch input {
136
133
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
137
134
  place-content: center center;
@@ -196,14 +193,14 @@
196
193
  --db-successful-on-bg-inverted-default
197
194
  );
198
195
  }
199
- .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
200
- .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > .db-infotext {
201
- /* stylelint-disable-next-line at-rule-empty-line-before */
202
- }
203
196
  .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
204
197
  .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]) {
205
198
  display: flex;
206
199
  }
200
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
201
+ .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > .db-infotext {
202
+ /* stylelint-disable-next-line at-rule-empty-line-before */
203
+ }
207
204
  .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
208
205
  .db-switch:has(input:not([data-custom-validity]):required:user-valid):has(.db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]) {
209
206
  display: none;
@@ -230,6 +227,9 @@
230
227
  --db-successful-bg-inverted-contrast-low-pressed
231
228
  );
232
229
  }
230
+ .db-switch {
231
+ /* stylelint-disable-next-line at-rule-empty-line-before */
232
+ }
233
233
  .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]), .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) {
234
234
  --db-check-element-border-color: var(
235
235
  --db-successful-on-bg-basic-emphasis-70-default
@@ -247,16 +247,16 @@
247
247
  --db-successful-on-bg-inverted-default
248
248
  );
249
249
  }
250
- .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
251
- .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > .db-infotext, .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
252
- .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > .db-infotext {
253
- /* stylelint-disable-next-line at-rule-empty-line-before */
254
- }
255
250
  .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
256
251
  .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]), .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
257
252
  .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful]:not([hidden]) {
258
253
  display: flex;
259
254
  }
255
+ .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
256
+ .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > .db-infotext, .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
257
+ .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > .db-infotext {
258
+ /* stylelint-disable-next-line at-rule-empty-line-before */
259
+ }
260
260
  .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
261
261
  .db-switch:has(input[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]), .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
262
262
  .db-switch[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]):not([hidden]) {
@@ -331,6 +331,9 @@
331
331
  --db-critical-bg-inverted-contrast-low-pressed
332
332
  );
333
333
  }
334
+ .db-switch {
335
+ /* stylelint-disable-next-line at-rule-empty-line-before */
336
+ }
334
337
  .db-switch:has(input[data-custom-validity=invalid]), .db-switch[data-custom-validity=invalid] {
335
338
  --db-check-element-border-color: var(
336
339
  --db-critical-on-bg-basic-emphasis-70-default
@@ -388,14 +391,15 @@
388
391
  inline-size: calc(var(--db-icon-font-size) * 2 + 0.125rem);
389
392
  block-size: var(--db-icon-font-size);
390
393
  box-sizing: content-box;
394
+ }
395
+ .db-switch input:not([hidden]) {
396
+ display: flex;
397
+ }
398
+ .db-switch input {
391
399
  align-items: center;
392
400
  /* stylelint-disable-next-line db-ux/use-spacings */
393
401
  gap: 0.125rem;
394
402
  border-radius: var(--db-border-radius-full);
395
- /* positioned at the end of the track: track length - 100% (thumb width) */
396
- }
397
- .db-switch input:not([hidden]) {
398
- display: flex;
399
403
  }
400
404
  .db-switch input:not([data-show-icon-trailing=false])::after {
401
405
  --db-icon-trailing: "cross";
@@ -435,6 +439,9 @@
435
439
  content: "•"/"";
436
440
  }
437
441
  }
442
+ .db-switch input {
443
+ /* positioned at the end of the track: track length - 100% (thumb width) */
444
+ }
438
445
  .db-switch input:checked {
439
446
  --thumb-offset-x: calc(100% + 0.125rem);
440
447
  --db-icon-color: var(--db-adaptive-on-bg-inverted-default);
@@ -500,6 +507,9 @@
500
507
  transform: translateX(calc(-100% - 0.125rem));
501
508
  transform-origin: center right;
502
509
  }
510
+ .db-switch {
511
+ /* Label position (leading/trailing) */
512
+ }
503
513
  .db-switch:not([data-variant=leading]) > label {
504
514
  flex-direction: row;
505
515
  }
@@ -34,12 +34,14 @@
34
34
 
35
35
  .db-tab-item {
36
36
  position: relative;
37
- list-style-type: "";
38
- border-radius: var(--db-border-radius-sm);
39
37
  }
40
38
  .db-tab-item:not([hidden]) {
41
39
  display: inline-flex;
42
40
  }
41
+ .db-tab-item {
42
+ list-style-type: "";
43
+ border-radius: var(--db-border-radius-sm);
44
+ }
43
45
  .db-tab-item:has(input:disabled) {
44
46
  opacity: var(--db-opacity-md);
45
47
  }
@@ -47,16 +49,17 @@
47
49
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
48
50
  padding: var(--db-spacing-fixed-xs);
49
51
  align-items: center;
52
+ }
53
+ .db-tab-item label:not([hidden]) {
54
+ display: inline-block;
55
+ }
56
+ .db-tab-item label {
50
57
  white-space: nowrap;
51
58
  border: 0;
52
59
  border-radius: var(--db-border-radius-sm);
53
60
  overflow: hidden;
54
61
  text-overflow: ellipsis;
55
62
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
56
- /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
57
- }
58
- .db-tab-item label:not([hidden]) {
59
- display: inline-block;
60
63
  }
61
64
  .db-tab-item label:hover:not(:disabled,
62
65
  [aria-disabled=true],
@@ -94,6 +97,9 @@
94
97
  :has(:disabled)):is(input[type=radio]:not(:checked)) {
95
98
  cursor: pointer;
96
99
  }
100
+ .db-tab-item label {
101
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
102
+ }
97
103
  .db-tab-item label:hover:not(:disabled,
98
104
  [aria-disabled=true],
99
105
  [tabindex="-1"],
@@ -153,14 +159,16 @@
153
159
  }
154
160
  .db-tab-item label:is([data-no-text], [data-no-text=true]) {
155
161
  font-size: 0 !important;
162
+ }
163
+ .db-tab-item label:is([data-no-text], [data-no-text=true])::before {
164
+ --db-icon-margin-end: 0;
165
+ }
166
+ .db-tab-item label:is([data-no-text], [data-no-text=true]) {
156
167
  /* stylelint-disable-next-line at-rule-empty-line-before */
157
168
  padding: 0;
158
169
  inline-size: calc(calc(var(--db-spacing-fixed-xs) + var(--db-spacing-fixed-sm) + var(--db-icon-font-size)) - var(--db-spacing-fixed-2xs));
159
170
  block-size: calc(var(--db-icon-font-size) + var(--db-spacing-fixed-xs));
160
171
  }
161
- .db-tab-item label:is([data-no-text], [data-no-text=true])::before {
162
- --db-icon-margin-end: 0;
163
- }
164
172
  .db-tab-item label:is([data-no-text], [data-no-text=true])::before {
165
173
  margin-inline-end: 0;
166
174
  }
@@ -46,13 +46,6 @@
46
46
  --db-icon-font-size: var(--db-base-body-icon-font-size-md);
47
47
  }
48
48
 
49
- .db-tab-list > ul {
50
- /* Buttons */
51
- /* Up */
52
- /* Down */
53
- /* Left */
54
- /* Right */
55
- }
56
49
  @supports (field-sizing: content) {
57
50
  .db-tab-list > ul[data-field-sizing=content]:is([data-hide-resizer=true], [data-resize=none]) {
58
51
  /* We don't show a scrollbar if we use field-sizing: content and no resizer is available */
@@ -78,6 +71,9 @@
78
71
  .db-tab-list > ul::-webkit-scrollbar-thumb {
79
72
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
80
73
  }
74
+ .db-tab-list > ul {
75
+ /* Buttons */
76
+ }
81
77
  .db-tab-list > ul::-webkit-scrollbar-button:single-button {
82
78
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
83
79
  background-size: 0.5rem;
@@ -91,16 +87,28 @@
91
87
  .db-tab-list > ul::-webkit-scrollbar-button:single-button:active {
92
88
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
93
89
  }
90
+ .db-tab-list > ul {
91
+ /* Up */
92
+ }
94
93
  .db-tab-list > ul::-webkit-scrollbar-button:single-button:vertical:decrement {
95
94
  border-start-end-radius: var(--db-border-radius-xs);
96
95
  background-image: var(--db-scrollbar-button-vertical-decrement);
97
96
  }
97
+ .db-tab-list > ul {
98
+ /* Down */
99
+ }
98
100
  .db-tab-list > ul::-webkit-scrollbar-button:single-button:vertical:increment {
99
101
  background-image: var(--db-scrollbar-button-vertical-increment);
100
102
  }
103
+ .db-tab-list > ul {
104
+ /* Left */
105
+ }
101
106
  .db-tab-list > ul::-webkit-scrollbar-button:single-button:horizontal:decrement {
102
107
  background-image: var(--db-scrollbar-button-horizontal-decrement);
103
108
  }
109
+ .db-tab-list > ul {
110
+ /* Right */
111
+ }
104
112
  .db-tab-list > ul::-webkit-scrollbar-button:single-button:horizontal:increment {
105
113
  background-image: var(--db-scrollbar-button-horizontal-increment);
106
114
  }
@@ -146,18 +146,12 @@
146
146
  position: absolute;
147
147
  }
148
148
 
149
+ .db-tabs:not([hidden]) {
150
+ display: flex;
151
+ }
149
152
  .db-tabs {
150
153
  inline-size: 100%;
151
154
  position: relative;
152
- /*
153
- Variant Orientation HORIZONTAL
154
- */
155
- /*
156
- Variant Orientation VERTICAL
157
- */
158
- }
159
- .db-tabs:not([hidden]) {
160
- display: flex;
161
155
  }
162
156
  .db-tabs .db-tab-panel {
163
157
  padding: 0 var(--db-spacing-fixed-xs);
@@ -199,6 +193,11 @@
199
193
  .db-tabs .db-tab-list:has([id$=-tab-10]:checked) ~ [id$=-tab-panel-10]:not([hidden]) {
200
194
  display: block;
201
195
  }
196
+ .db-tabs {
197
+ /*
198
+ Variant Orientation HORIZONTAL
199
+ */
200
+ }
202
201
  .db-tabs:not([data-orientation=vertical]) {
203
202
  flex-flow: column wrap;
204
203
  }
@@ -235,6 +234,11 @@
235
234
  .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul:not(:has(db-tab-item, dbtabitem)) .db-tab-item:last-of-type {
236
235
  margin-inline-end: var(--db-spacing-fixed-xs);
237
236
  }
237
+ .db-tabs {
238
+ /*
239
+ Variant Orientation VERTICAL
240
+ */
241
+ }
238
242
  .db-tabs[data-orientation=vertical] {
239
243
  flex-direction: row;
240
244
  }
@@ -255,7 +259,6 @@
255
259
  padding-inline-end: var(--db-spacing-fixed-xs);
256
260
  /* ensures that tab-list (track) is only as high as all the tab-items together if open tab-panel is higher */
257
261
  margin-block-end: auto;
258
- /* vertical track for pulse */
259
262
  }
260
263
  .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item label {
261
264
  position: relative;
@@ -266,6 +269,9 @@
266
269
  .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item:has(input:focus-visible) label, .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item:hover label {
267
270
  overflow: visible;
268
271
  }
272
+ .db-tabs[data-orientation=vertical] .db-tab-list {
273
+ /* vertical track for pulse */
274
+ }
269
275
  .db-tabs[data-orientation=vertical] .db-tab-list::before {
270
276
  inline-size: var(--db-border-width-xs);
271
277
  inset-block: var(--db-spacing-fixed-xs);
@@ -306,11 +312,6 @@
306
312
  text-align: center;
307
313
  justify-content: center;
308
314
  }
309
- .db-tabs[data-scroll-behavior=arrows] {
310
- /*
311
- * Scroll left / right buttons
312
- */
313
- }
314
315
  .db-tabs[data-scroll-behavior=arrows] .db-tab-list > ul::-webkit-scrollbar {
315
316
  display: none;
316
317
  }
@@ -334,6 +335,11 @@
334
335
  .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
335
336
  inset-inline-end: 0;
336
337
  }
338
+ .db-tabs[data-scroll-behavior=arrows] {
339
+ /*
340
+ * Scroll left / right buttons
341
+ */
342
+ }
337
343
  .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button) {
338
344
  inset-inline-start: 0;
339
345
  }
@@ -860,7 +860,6 @@
860
860
  border-color: var(--db-tag-border-color);
861
861
  background-color: var(--db-adaptive-bg-basic-level-1-default);
862
862
  color: var(--db-adaptive-on-bg-basic-emphasis-80-default);
863
- /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
864
863
  }
865
864
  .db-tag:has(label, button:not(.db-tab-remove-button), a)::before, .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]):not(:has(dbbutton)) button:not(.db-tab-remove-button)::before,
866
865
  .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) dbbutton:not(.db-tab-remove-button) > button::before,
@@ -877,6 +876,15 @@
877
876
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] a::after, .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) label:has(input)::after, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] label:has(input)::after, .db-tag[data-emphasis=strong]:has(label, button:not(.db-tab-remove-button), a):has(input):not(:has(input:checked))::after {
878
877
  --db-icon-color: var(--db-adaptive-on-bg-basic-emphasis-80-default);
879
878
  }
879
+ .db-tag:has(label, button:not(.db-tab-remove-button), a), .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]):not(:has(dbbutton)) button:not(.db-tab-remove-button),
880
+ .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) dbbutton:not(.db-tab-remove-button) > button,
881
+ .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) db-button > button,
882
+ .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) a, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak]:not(:has(dbbutton)) button:not(.db-tab-remove-button),
883
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] dbbutton:not(.db-tab-remove-button) > button,
884
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] db-button > button,
885
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] a, .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) label:has(input), .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] label:has(input), .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong]:has(input):not(:has(input:checked)) {
886
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
887
+ }
880
888
  .db-tag:hover:not(:disabled,
881
889
  [aria-disabled=true],
882
890
  [tabindex="-1"],
@@ -1314,7 +1322,6 @@
1314
1322
  border-color: var(--db-tag-border-color);
1315
1323
  background-color: var(--db-adaptive-bg-vibrant-default);
1316
1324
  color: var(--db-adaptive-on-bg-vibrant-default);
1317
- /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
1318
1325
  }
1319
1326
  .db-tag:not(:has(label, button:not(.db-tab-remove-button), a)):not([data-semantic])[data-emphasis=strong] .db-tab-remove-button::before, .db-tag:not(:has(label, button:not(.db-tab-remove-button), a))[data-semantic=adaptive][data-emphasis=strong] .db-tab-remove-button::before, .db-tag:has(.db-tab-remove-button):not([data-semantic])[data-emphasis=strong] .db-tab-remove-button::before, .db-tag:has(.db-tab-remove-button)[data-semantic=adaptive][data-emphasis=strong] .db-tab-remove-button::before, .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) label:has(input[type=checkbox]:checked)::before, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] label:has(input[type=checkbox]:checked)::before, .db-tag[data-emphasis=strong]:has(label, button:not(.db-tab-remove-button), a)::before, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong]:not(:has(dbbutton)) button:not(.db-tab-remove-button)::before,
1320
1327
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong] dbbutton:not(.db-tab-remove-button) > button::before,
@@ -1325,6 +1332,12 @@
1325
1332
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong] a::after, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong] label:has(input[type=checkbox]:checked)::after {
1326
1333
  --db-icon-color: var(--db-adaptive-on-bg-vibrant-default);
1327
1334
  }
1335
+ .db-tag:not(:has(label, button:not(.db-tab-remove-button), a)):not([data-semantic])[data-emphasis=strong] .db-tab-remove-button, .db-tag:not(:has(label, button:not(.db-tab-remove-button), a))[data-semantic=adaptive][data-emphasis=strong] .db-tab-remove-button, .db-tag:has(.db-tab-remove-button):not([data-semantic])[data-emphasis=strong] .db-tab-remove-button, .db-tag:has(.db-tab-remove-button)[data-semantic=adaptive][data-emphasis=strong] .db-tab-remove-button, .db-tag:has(label, button:not(.db-tab-remove-button), a):not([data-emphasis]) label:has(input[type=checkbox]:checked), .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=weak] label:has(input[type=checkbox]:checked), .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong], .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong]:not(:has(dbbutton)) button:not(.db-tab-remove-button),
1336
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong] dbbutton:not(.db-tab-remove-button) > button,
1337
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong] db-button > button,
1338
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong] a, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-emphasis=strong] label:has(input[type=checkbox]:checked) {
1339
+ /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
1340
+ }
1328
1341
  .db-tag:not(:has(label, button:not(.db-tab-remove-button), a)):not([data-semantic])[data-emphasis=strong] .db-tab-remove-button:hover:not(:disabled,
1329
1342
  [aria-disabled=true],
1330
1343
  [tabindex="-1"],
@@ -1739,20 +1752,24 @@
1739
1752
  [data-no-text=true].db-tag {
1740
1753
  --icon-margin-after: 0;
1741
1754
  font-size: 0 !important;
1742
- /* stylelint-disable-next-line at-rule-empty-line-before */
1743
- padding: 0;
1744
- gap: 0;
1745
1755
  }
1746
1756
  [data-no-text=true].db-tag::before {
1747
1757
  --db-icon-margin-end: 0;
1748
1758
  }
1759
+ [data-no-text=true].db-tag {
1760
+ /* stylelint-disable-next-line at-rule-empty-line-before */
1761
+ padding: 0;
1762
+ gap: 0;
1763
+ }
1749
1764
  [data-no-text=true].db-tag label {
1750
1765
  font-size: 0 !important;
1751
- /* stylelint-disable-next-line at-rule-empty-line-before */
1752
1766
  }
1753
1767
  [data-no-text=true].db-tag label::before {
1754
1768
  --db-icon-margin-end: 0;
1755
1769
  }
1770
+ [data-no-text=true].db-tag label {
1771
+ /* stylelint-disable-next-line at-rule-empty-line-before */
1772
+ }
1756
1773
  .db-tag:not([data-no-text=true]) {
1757
1774
  --db-padding-inline-start: var(--db-spacing-fixed-2xs);
1758
1775
  /* stylelint-disable-next-line db-ux/use-spacings */
@@ -1991,7 +2008,6 @@
1991
2008
 
1992
2009
  .db-tag[data-show-check-state=true] label {
1993
2010
  --db-icon-margin-start: var(--db-spacing-fixed-2xs);
1994
- /* TODO: maybe we could get rid of an expensive :has selector by defining this icon on the input itself */
1995
2011
  }
1996
2012
  .db-tag[data-show-check-state=true] label:not([data-show-icon-trailing=false])::after {
1997
2013
  --db-icon-trailing: "circle";
@@ -2003,6 +2019,9 @@
2003
2019
  content: var(--db-icon-trailing, attr(data-icon-trailing))/"";
2004
2020
  }
2005
2021
  }
2022
+ .db-tag[data-show-check-state=true] label {
2023
+ /* TODO: maybe we could get rid of an expensive :has selector by defining this icon on the input itself */
2024
+ }
2006
2025
  .db-tag[data-show-check-state=true] label:has(input:checked):not([data-show-icon-trailing=false])::after {
2007
2026
  --db-icon-trailing: "check_circle";
2008
2027
  margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
@@ -2016,11 +2035,13 @@
2016
2035
  .db-tag label {
2017
2036
  inline-size: 100%;
2018
2037
  margin-inline-start: 0;
2019
- align-items: center;
2020
2038
  }
2021
2039
  .db-tag label:not([hidden]) {
2022
2040
  display: flex;
2023
2041
  }
2042
+ .db-tag label {
2043
+ align-items: center;
2044
+ }
2024
2045
  @media (forced-colors: active) {
2025
2046
  .db-tag label:not(:has(input:checked)) {
2026
2047
  border-style: dashed;
@@ -2052,13 +2073,13 @@
2052
2073
  .db-tag label input:checked:not([data-show-icon-leading=false])::before {
2053
2074
  content: none;
2054
2075
  }
2076
+ .db-tag a:not([hidden]) {
2077
+ display: inline-flex;
2078
+ }
2055
2079
  .db-tag a {
2056
2080
  align-items: center;
2057
2081
  text-decoration: none;
2058
2082
  }
2059
- .db-tag a:not([hidden]) {
2060
- display: inline-flex;
2061
- }
2062
2083
  .db-tag a::after {
2063
2084
  --db-icon-margin-start: 0;
2064
2085
  --db-icon-font-size: 0;
@@ -92,13 +92,6 @@ input[type=radio]:checked) > label {
92
92
  transform: rotate(1turn);
93
93
  }
94
94
  }
95
- .db-textarea textarea {
96
- /* Buttons */
97
- /* Up */
98
- /* Down */
99
- /* Left */
100
- /* Right */
101
- }
102
95
  @supports (field-sizing: content) {
103
96
  .db-textarea textarea[data-field-sizing=content]:is([data-hide-resizer=true], [data-resize=none]) {
104
97
  /* We don't show a scrollbar if we use field-sizing: content and no resizer is available */
@@ -124,6 +117,9 @@ input[type=radio]:checked) > label {
124
117
  .db-textarea textarea::-webkit-scrollbar-thumb {
125
118
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
126
119
  }
120
+ .db-textarea textarea {
121
+ /* Buttons */
122
+ }
127
123
  .db-textarea textarea::-webkit-scrollbar-button:single-button {
128
124
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
129
125
  background-size: 0.5rem;
@@ -137,16 +133,28 @@ input[type=radio]:checked) > label {
137
133
  .db-textarea textarea::-webkit-scrollbar-button:single-button:active {
138
134
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
139
135
  }
136
+ .db-textarea textarea {
137
+ /* Up */
138
+ }
140
139
  .db-textarea textarea::-webkit-scrollbar-button:single-button:vertical:decrement {
141
140
  border-start-end-radius: var(--db-border-radius-xs);
142
141
  background-image: var(--db-scrollbar-button-vertical-decrement);
143
142
  }
143
+ .db-textarea textarea {
144
+ /* Down */
145
+ }
144
146
  .db-textarea textarea::-webkit-scrollbar-button:single-button:vertical:increment {
145
147
  background-image: var(--db-scrollbar-button-vertical-increment);
146
148
  }
149
+ .db-textarea textarea {
150
+ /* Left */
151
+ }
147
152
  .db-textarea textarea::-webkit-scrollbar-button:single-button:horizontal:decrement {
148
153
  background-image: var(--db-scrollbar-button-horizontal-decrement);
149
154
  }
155
+ .db-textarea textarea {
156
+ /* Right */
157
+ }
150
158
  .db-textarea textarea::-webkit-scrollbar-button:single-button:horizontal:increment {
151
159
  background-image: var(--db-scrollbar-button-horizontal-increment);
152
160
  }
@@ -385,14 +393,14 @@ input[type=radio]:checked) textarea:is([type=date],
385
393
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) textarea {
386
394
  border-color: var(--db-successful-on-bg-basic-emphasis-70-default);
387
395
  }
388
- .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > db-infotext > .db-infotext,
389
- .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > .db-infotext {
390
- /* stylelint-disable-next-line at-rule-empty-line-before */
391
- }
392
396
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
393
397
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > .db-infotext[data-semantic=successful]:not([hidden]) {
394
398
  display: flex;
395
399
  }
400
+ .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > db-infotext > .db-infotext,
401
+ .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > .db-infotext {
402
+ /* stylelint-disable-next-line at-rule-empty-line-before */
403
+ }
396
404
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
397
405
  .db-textarea:has(textarea:not([data-custom-validity]):is(:required, [minlength], [maxlength]):user-valid) > .db-infotext:not([data-semantic]):not([hidden]) {
398
406
  display: none;
@@ -436,16 +444,16 @@ input[type=radio]:checked) textarea:is([type=date],
436
444
  .db-textarea:has(textarea[data-custom-validity=valid]) textarea, .db-textarea[data-custom-validity=valid] textarea {
437
445
  border-color: var(--db-successful-on-bg-basic-emphasis-70-default);
438
446
  }
439
- .db-textarea:has(textarea[data-custom-validity=valid]) > db-infotext > .db-infotext,
440
- .db-textarea:has(textarea[data-custom-validity=valid]) > .db-infotext, .db-textarea[data-custom-validity=valid] > db-infotext > .db-infotext,
441
- .db-textarea[data-custom-validity=valid] > .db-infotext {
442
- /* stylelint-disable-next-line at-rule-empty-line-before */
443
- }
444
447
  .db-textarea:has(textarea[data-custom-validity=valid]) > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
445
448
  .db-textarea:has(textarea[data-custom-validity=valid]) > .db-infotext[data-semantic=successful]:not([hidden]), .db-textarea[data-custom-validity=valid] > db-infotext > .db-infotext[data-semantic=successful]:not([hidden]),
446
449
  .db-textarea[data-custom-validity=valid] > .db-infotext[data-semantic=successful]:not([hidden]) {
447
450
  display: flex;
448
451
  }
452
+ .db-textarea:has(textarea[data-custom-validity=valid]) > db-infotext > .db-infotext,
453
+ .db-textarea:has(textarea[data-custom-validity=valid]) > .db-infotext, .db-textarea[data-custom-validity=valid] > db-infotext > .db-infotext,
454
+ .db-textarea[data-custom-validity=valid] > .db-infotext {
455
+ /* stylelint-disable-next-line at-rule-empty-line-before */
456
+ }
449
457
  .db-textarea:has(textarea[data-custom-validity=valid]) > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
450
458
  .db-textarea:has(textarea[data-custom-validity=valid]) > .db-infotext:not([data-semantic]):not([hidden]), .db-textarea[data-custom-validity=valid] > db-infotext > .db-infotext:not([data-semantic]):not([hidden]),
451
459
  .db-textarea[data-custom-validity=valid] > .db-infotext:not([data-semantic]):not([hidden]) {
@@ -581,7 +589,6 @@ input[type=radio]:checked) textarea:is([type=date],
581
589
  /* stylelint-disable-next-line db-ux/use-spacings */
582
590
  padding-inline: var(--db-form-component-padding-inline-start, var(--db-spacing-fixed-sm)) var(--db-form-component-padding-inline-end, var(--db-spacing-fixed-sm));
583
591
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
584
- /* see https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing */
585
592
  }
586
593
  .db-textarea textarea:hover:not(:disabled,
587
594
  [aria-disabled=true],
@@ -608,6 +615,9 @@ input[type=radio]:checked) textarea:is([type=date],
608
615
  :has(:disabled)):is(input[type=radio]:not(:checked)) {
609
616
  cursor: pointer;
610
617
  }
618
+ .db-textarea textarea {
619
+ /* see https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing */
620
+ }
611
621
  .db-textarea textarea[data-field-sizing=content] {
612
622
  field-sizing: content;
613
623
  }