@db-ux/core-components 3.0.2-copilot2-e7bf98b → 3.0.2-shell2-badc28f

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 (97) hide show
  1. package/build/assets/icons/LICENCES.json +24 -0
  2. package/build/assets/icons/double_chevron_left.svg +1 -0
  3. package/build/assets/icons/double_chevron_right.svg +1 -0
  4. package/build/assets/icons/fonts/all/db-ux.woff2 +0 -0
  5. package/build/assets/icons/fonts/default/db-ux.woff2 +0 -0
  6. package/build/assets/icons/fonts/default_12/db-ux.woff2 +0 -0
  7. package/build/assets/icons/fonts/default_14/db-ux.woff2 +0 -0
  8. package/build/assets/icons/fonts/default_16/db-ux.woff2 +0 -0
  9. package/build/assets/icons/fonts/default_20/db-ux.woff2 +0 -0
  10. package/build/assets/icons/fonts/default_24/db-ux.woff2 +0 -0
  11. package/build/assets/icons/fonts/default_28/db-ux.woff2 +0 -0
  12. package/build/assets/icons/fonts/default_32/db-ux.woff2 +0 -0
  13. package/build/assets/icons/fonts/default_48/db-ux.woff2 +0 -0
  14. package/build/assets/icons/fonts/default_64/db-ux.woff2 +0 -0
  15. package/build/assets/icons/fonts/filled/db-ux.woff2 +0 -0
  16. package/build/assets/icons/fonts/filled_12/db-ux.woff2 +0 -0
  17. package/build/assets/icons/fonts/filled_14/db-ux.woff2 +0 -0
  18. package/build/assets/icons/fonts/filled_16/db-ux.woff2 +0 -0
  19. package/build/assets/icons/fonts/filled_20/db-ux.woff2 +0 -0
  20. package/build/assets/icons/fonts/filled_24/db-ux.woff2 +0 -0
  21. package/build/assets/icons/fonts/filled_28/db-ux.woff2 +0 -0
  22. package/build/assets/icons/fonts/filled_32/db-ux.woff2 +0 -0
  23. package/build/assets/icons/fonts/filled_48/db-ux.woff2 +0 -0
  24. package/build/assets/icons/fonts/filled_64/db-ux.woff2 +0 -0
  25. package/build/assets/icons/house.svg +1 -0
  26. package/build/assets/icons/intermediary_stop.svg +1 -0
  27. package/build/components/accordion/accordion.css +5 -5
  28. package/build/components/button/button.scss +1 -1
  29. package/build/components/{brand/brand.css → control-panel-brand/control-panel-brand.css} +12 -6
  30. package/build/components/{brand/brand.scss → control-panel-brand/control-panel-brand.scss} +10 -1
  31. package/build/components/control-panel-desktop/control-panel-desktop.css +791 -0
  32. package/build/components/control-panel-desktop/control-panel-desktop.scss +29 -0
  33. package/build/components/control-panel-flat-icon-navigation/control-panel-flat-icon-navigation.css +192 -0
  34. package/build/components/control-panel-flat-icon-navigation/control-panel-flat-icon-navigation.scss +84 -0
  35. package/build/components/control-panel-meta-navigation/control-panel-meta-navigation.css +54 -0
  36. package/build/components/control-panel-meta-navigation/control-panel-meta-navigation.scss +12 -0
  37. package/build/components/control-panel-mobile/control-panel-mobile.css +716 -0
  38. package/build/components/control-panel-mobile/control-panel-mobile.scss +125 -0
  39. package/build/components/control-panel-primary-actions/control-panel-primary-actions.css +16 -0
  40. package/build/components/control-panel-primary-actions/control-panel-primary-actions.scss +8 -0
  41. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.css +16 -0
  42. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.scss +8 -0
  43. package/build/components/custom-select/custom-select.css +4 -4
  44. package/build/components/custom-select-dropdown/custom-select-dropdown.css +12 -12
  45. package/build/components/custom-select-list-item/custom-select-list-item.css +6 -6
  46. package/build/components/divider/divider.css +6 -6
  47. package/build/components/drawer/drawer.css +6 -5
  48. package/build/components/drawer/drawer.scss +6 -26
  49. package/build/components/navigation/navigation.css +394 -123
  50. package/build/components/navigation/navigation.scss +155 -72
  51. package/build/components/navigation-item/navigation-item.css +35 -418
  52. package/build/components/navigation-item/navigation-item.scss +8 -310
  53. package/build/components/navigation-item-group/navigation-item-group-menu-popover.css +189 -0
  54. package/build/components/navigation-item-group/navigation-item-group-menu-popover.scss +105 -0
  55. package/build/components/navigation-item-group/navigation-item-group-menu-tree.css +208 -0
  56. package/build/components/navigation-item-group/navigation-item-group-menu-tree.scss +40 -0
  57. package/build/components/navigation-item-group/navigation-item-group.css +432 -0
  58. package/build/components/navigation-item-group/navigation-item-group.scss +69 -0
  59. package/build/components/shell/shell-desktop.css +548 -0
  60. package/build/components/shell/shell-desktop.scss +187 -0
  61. package/build/components/shell/shell-mobile.css +633 -0
  62. package/build/components/shell/shell-mobile.scss +107 -0
  63. package/build/components/shell/shell.css +1876 -0
  64. package/build/components/shell/shell.scss +84 -0
  65. package/build/components/shell-sub-navigation/shell-sub-navigation.css +11 -0
  66. package/build/components/shell-sub-navigation/shell-sub-navigation.scss +15 -0
  67. package/build/components/stack/stack-web-component.css +1 -0
  68. package/build/components/stack/stack.css +1 -0
  69. package/build/components/tab-item/tab-item.scss +0 -1
  70. package/build/components/tab-list/tab-list.css +1 -1
  71. package/build/components/tabs/tabs.css +106 -23
  72. package/build/components/tabs/tabs.scss +25 -70
  73. package/build/components/tag/tag.css +5 -11
  74. package/build/components/tag/tag.scss +1 -5
  75. package/build/components/textarea/textarea.css +1 -1
  76. package/build/styles/absolute.css +6 -6
  77. package/build/styles/component-animations.css +1 -1
  78. package/build/styles/index.css +5 -5
  79. package/build/styles/index.scss +11 -3
  80. package/build/styles/internal/_control-panel-desktop.scss +455 -0
  81. package/build/styles/internal/_control-panel-mobile.scss +130 -0
  82. package/build/styles/internal/_custom-elements.scss +22 -4
  83. package/build/styles/internal/_icon-passing.scss +19 -9
  84. package/build/styles/internal/{_db-puls.scss → _indicator.scss} +37 -16
  85. package/build/styles/internal/_navigation-item.scss +122 -0
  86. package/build/styles/internal/_scrollbar.scss +71 -0
  87. package/build/styles/relative.css +6 -6
  88. package/build/styles/rollup.css +6 -6
  89. package/build/styles/wc-workarounds.css +1 -1
  90. package/build/styles/wc-workarounds.scss +11 -0
  91. package/build/styles/webpack.css +6 -6
  92. package/package.json +3 -7
  93. package/agent/_instructions.md +0 -9
  94. package/build/components/header/header.css +0 -759
  95. package/build/components/header/header.scss +0 -259
  96. package/build/components/page/page.css +0 -52
  97. package/build/components/page/page.scss +0 -52
@@ -0,0 +1,84 @@
1
+ @use "sass:string";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/screen-sizes";
4
+ @use "@db-ux/core-foundations/build/styles/colors";
5
+ @use "@db-ux/core-foundations/build/styles/helpers";
6
+ @use "../../styles/internal/control-panel-desktop";
7
+ @use "../../styles/internal/control-panel-mobile";
8
+ @use "../../styles/internal/custom-elements";
9
+ @use "../../styles/internal/form-components";
10
+
11
+ @forward "shell-desktop";
12
+ @forward "shell-mobile";
13
+
14
+ %fade-in-loading-fonts {
15
+ &[data-fade-in="true"] {
16
+ opacity: 0;
17
+
18
+ &:not([data-fonts-loaded]),
19
+ &[data-fonts-loaded="true"] {
20
+ opacity: 1;
21
+ }
22
+
23
+ @media screen and (prefers-reduced-motion: no-preference) {
24
+ transition: opacity variables.$db-transition-straight-emotional;
25
+ }
26
+ }
27
+ }
28
+
29
+ body {
30
+ overflow: hidden;
31
+ }
32
+
33
+ .db-shell {
34
+ @extend %fade-in-loading-fonts;
35
+
36
+ block-size: 100vh;
37
+ inline-size: 100vw;
38
+ display: grid;
39
+
40
+ > main {
41
+ grid-area: main;
42
+ overflow-y: auto;
43
+ }
44
+
45
+ > main,
46
+ > header {
47
+ max-inline-size: 100vw;
48
+ }
49
+
50
+ #{string.unquote(custom-elements.$control-panel-desktop)},
51
+ #{string.unquote(custom-elements.$control-panel-mobile)} {
52
+ grid-area: control-panel;
53
+ }
54
+
55
+ &[data-control-panel-desktop-position="left"] {
56
+ #{string.unquote(custom-elements.$control-panel-desktop)} {
57
+ @extend %control-panel-desktop-vertical-orientation;
58
+ }
59
+ }
60
+
61
+ &[data-control-panel-desktop-position="top"] {
62
+ #{string.unquote(custom-elements.$control-panel-desktop)} {
63
+ @extend %control-panel-desktop-horizontal-orientation;
64
+ }
65
+ }
66
+
67
+ &[data-control-panel-mobile-position="top"] {
68
+ #{string.unquote(custom-elements.$control-panel-mobile)} {
69
+ @extend %control-panel-mobile-position-top;
70
+ }
71
+ }
72
+
73
+ &[data-control-panel-mobile-position="bottom"] {
74
+ #{string.unquote(custom-elements.$control-panel-mobile)} {
75
+ @extend %control-panel-mobile-position-bottom;
76
+ }
77
+ }
78
+
79
+ &[data-show-sub-navigation="false"] {
80
+ #{string.unquote(custom-elements.$shell-sub-navigation)} {
81
+ display: none;
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,11 @@
1
+ /* Sub components for shell */
2
+ .db-shell-sub-navigation {
3
+ grid-area: sub-navigation;
4
+ overflow: hidden;
5
+ }
6
+ .db-shell-sub-navigation > .db-shell-sub-navigation-button {
7
+ grid-area: button;
8
+ }
9
+ .db-shell-sub-navigation .db-navigation {
10
+ grid-area: navigation;
11
+ }
@@ -0,0 +1,15 @@
1
+ @use "sass:string";
2
+ @use "../../styles/internal/custom-elements";
3
+
4
+ .db-shell-sub-navigation {
5
+ grid-area: sub-navigation;
6
+ overflow: hidden;
7
+
8
+ > .db-shell-sub-navigation-button {
9
+ grid-area: button;
10
+ }
11
+
12
+ .db-navigation {
13
+ grid-area: navigation;
14
+ }
15
+ }
@@ -43,6 +43,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
43
43
 
44
44
  @layer variables {}
45
45
 
46
+ /* Sub components for shell */
46
47
  .db-stack {
47
48
  display: flex;
48
49
  gap: var(--db-spacing-fixed-sm);
@@ -43,6 +43,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
43
43
 
44
44
  @layer variables {}
45
45
 
46
+ /* Sub components for shell */
46
47
  .db-stack {
47
48
  display: flex;
48
49
  gap: var(--db-spacing-fixed-sm);
@@ -3,7 +3,6 @@
3
3
  @use "@db-ux/core-foundations/build/styles/icons";
4
4
  @use "@db-ux/core-foundations/build/styles/helpers";
5
5
  @use "../../styles/internal/component";
6
- @use "../../styles/internal/db-puls";
7
6
  @use "../../styles/internal/form-components";
8
7
 
9
8
  $with-icon-padding-calc: calc(
@@ -63,7 +63,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
63
63
  @layer variables {}
64
64
 
65
65
  .db-tab-list > ul::-webkit-scrollbar, .db-tab-list > ul::-webkit-scrollbar-corner {
66
- transition: outline var(--db-transition-duration-extra-fast), border-color var(--db-transition-straight-emotional), background-color var(--db-transition-straight-emotional);
66
+ transition: outline var(--db-transition-duration-extra-fast), background-color var(--db-transition-straight-emotional);
67
67
  }
68
68
 
69
69
  @keyframes show-right-to-left {
@@ -130,6 +130,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
130
130
  content: "";
131
131
  position: absolute;
132
132
  border-radius: var(--db-border-radius-xs);
133
+ background: linear-gradient(135deg, var(--db-pride-red, var(--db-brand-on-bg-basic-emphasis-70-default)) 16.7%, var(--db-pride-orange, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-orange, var(--db-brand-on-bg-basic-emphasis-70-default)) 33.4%, var(--db-pride-yellow, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-yellow, var(--db-brand-on-bg-basic-emphasis-70-default)) 50.1%, var(--db-pride-green, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-green, var(--db-brand-on-bg-basic-emphasis-70-default)) 66.8%, var(--db-pride-blue, var(--db-brand-on-bg-basic-emphasis-70-default)) 0, var(--db-pride-blue, var(--db-brand-on-bg-basic-emphasis-70-default)) 83.5%, var(--db-pride-violet, var(--db-brand-on-bg-basic-emphasis-70-default)) 0);
133
134
  }
134
135
  @media screen and (prefers-reduced-motion: no-preference) {
135
136
  .db-tabs .db-tab-item::after {
@@ -137,6 +138,85 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
137
138
  }
138
139
  }
139
140
 
141
+ @keyframes show-right-to-left {
142
+ from {
143
+ transform: translateX(110%);
144
+ }
145
+ to {
146
+ transform: translateX(0%);
147
+ }
148
+ }
149
+ @keyframes hide-right-to-left {
150
+ from {
151
+ transform: translateX(0%);
152
+ }
153
+ to {
154
+ transform: translateX(110%);
155
+ }
156
+ }
157
+ @keyframes show-left-to-right {
158
+ from {
159
+ transform: translateX(-110%);
160
+ }
161
+ to {
162
+ transform: translateX(0%);
163
+ }
164
+ }
165
+ @keyframes hide-left-to-right {
166
+ from {
167
+ transform: translateX(0%);
168
+ }
169
+ to {
170
+ transform: translateX(-110%);
171
+ }
172
+ }
173
+ @keyframes show-bottom-to-top {
174
+ from {
175
+ transform: translateY(110%);
176
+ }
177
+ to {
178
+ transform: translateY(0%);
179
+ }
180
+ }
181
+ @keyframes hide-bottom-to-top {
182
+ from {
183
+ transform: translateY(0%);
184
+ }
185
+ to {
186
+ transform: translateY(110%);
187
+ }
188
+ }
189
+ @keyframes show-top-to-bottom {
190
+ from {
191
+ transform: translateY(-110%);
192
+ }
193
+ to {
194
+ transform: translateY(0%);
195
+ }
196
+ }
197
+ @keyframes hide-top-to-bottom {
198
+ from {
199
+ transform: translateY(0%);
200
+ }
201
+ to {
202
+ transform: translateY(-110%);
203
+ }
204
+ }
205
+ @keyframes popover-animation {
206
+ 0% {
207
+ opacity: 0;
208
+ transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
209
+ }
210
+ 100% {
211
+ opacity: 1;
212
+ transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
213
+ }
214
+ }
215
+ @keyframes rotate {
216
+ 100% {
217
+ transform: rotate(1turn);
218
+ }
219
+ }
140
220
  .db-tabs db-tab-list:has([id$=-tab-0]:checked) ~ dbtabpanel > [id$=-tab-panel-0],
141
221
  .db-tabs db-tab-list:has([id$=-tab-0]:checked) ~ db-tab-panel > [id$=-tab-panel-0],
142
222
  .db-tabs dbtablist:has([id$=-tab-0]:checked) ~ dbtabpanel > [id$=-tab-panel-0],
@@ -209,7 +289,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
209
289
  inline-size: 0;
210
290
  transform: translate(-50%, 0);
211
291
  inset-inline-start: 50%;
212
- background-color: var(--db-brand-on-bg-basic-emphasis-70-default);
213
292
  inset-block: auto calc(-1 * var(--db-spacing-fixed-xs));
214
293
  }
215
294
  .db-tabs:not([data-orientation=vertical]) .db-tab-list > ul .db-tab-item:has(input:checked)::after {
@@ -229,8 +308,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
229
308
  block-size: 0;
230
309
  inline-size: var(--db-border-width-xs);
231
310
  transform: translate(0, -50%);
232
- inset-block: 50% auto;
233
- background-color: var(--db-brand-on-bg-basic-emphasis-70-default);
311
+ inset-block: var(--indicator-vertical-inset-block-start, 50%) auto;
234
312
  inset-inline-start: calc(-1 * var(--db-spacing-fixed-xs));
235
313
  }
236
314
  .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item::after {
@@ -238,7 +316,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
238
316
  z-index: -2;
239
317
  }
240
318
  .db-tabs[data-orientation=vertical] .db-tab-list > ul .db-tab-item:has(input:checked)::after {
241
- block-size: 100%;
319
+ block-size: var(--indicator-vertical-block-size, 100%);
242
320
  inline-size: var(--db-border-width-xs);
243
321
  }
244
322
  @media (forced-colors: active) {
@@ -312,7 +390,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
312
390
  inline-size: 100%;
313
391
  }
314
392
  .db-tabs:not([data-orientation=vertical]) .db-tab-list {
315
- /* horizontal track for pulse */
393
+ /* horizontal track for indicator */
316
394
  }
317
395
  .db-tabs:not([data-orientation=vertical]) .db-tab-list::before {
318
396
  block-size: var(--db-border-width-xs);
@@ -359,7 +437,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
359
437
  padding-inline-end: var(--db-spacing-fixed-xs);
360
438
  /* ensures that tab-list (track) is only as high as all the tab-items together if open tab-panel is higher */
361
439
  margin-block-end: auto;
362
- /* vertical track for pulse */
440
+ /* vertical track for indicator */
363
441
  }
364
442
  .db-tabs[data-orientation=vertical] .db-tab-list .db-tab-item label {
365
443
  position: relative;
@@ -415,13 +493,31 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
415
493
  * Scroll left / right buttons
416
494
  */
417
495
  }
496
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button > .db-button, .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button:is(.db-button) {
497
+ inset-inline-start: var(--db-overflow-scroll-button-inset-inline-start, 0);
498
+ }
499
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button > .db-button, .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button:is(.db-button) {
500
+ inset-inline-end: 0;
501
+ }
502
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button > .db-button, .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button:is(.db-button),
503
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button > .db-button,
504
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button:is(.db-button) {
505
+ position: absolute;
506
+ z-index: 22;
507
+ inset-block: var(--db-overflow-scroll-button-inset-block, var(--db-spacing-fixed-xs));
508
+ }
509
+ @supports (scrollbar-width: none) {
510
+ .db-tabs[data-scroll-behavior=arrows] .db-tab-list > ul {
511
+ scrollbar-width: none;
512
+ }
513
+ }
418
514
  .db-tabs[data-scroll-behavior=arrows] .db-tab-list > ul::-webkit-scrollbar {
419
515
  display: none;
420
516
  }
421
- .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-left)::before {
517
+ .db-tabs[data-scroll-behavior=arrows]:has(.overflow-scroll-left-button)::before {
422
518
  content: "";
423
519
  }
424
- .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-right)::after {
520
+ .db-tabs[data-scroll-behavior=arrows]:has(.overflow-scroll-right-button)::after {
425
521
  content: "";
426
522
  }
427
523
  .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before, .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
@@ -429,25 +525,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
429
525
  z-index: 21;
430
526
  background-color: var(--db-adaptive-bg-basic-level-1-default);
431
527
  inline-size: var(--db-sizing-md);
432
- block-size: calc(var(--db-spacing-fixed-sm) + var(--db-sizing-md));
528
+ block-size: calc(var(--db-overflow-scroll-button-background-block-size, var(--db-spacing-fixed-sm)) + var(--db-sizing-md));
433
529
  flex: 0 0 auto;
434
530
  }
435
531
  .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before {
436
- inset-inline-start: 0;
532
+ inset-inline-start: var(--db-overflow-scroll-button-inset-inline-start, 0);
437
533
  }
438
534
  .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
439
535
  inset-inline-end: 0;
440
536
  }
441
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button) {
442
- inset-inline-start: 0;
443
- }
444
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
445
- inset-inline-end: 0;
446
- }
447
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button),
448
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button,
449
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
450
- position: absolute;
451
- z-index: 22;
452
- inset-block: var(--db-spacing-fixed-xs);
453
- }
@@ -1,7 +1,8 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
2
  @use "@db-ux/core-foundations/build/styles/colors";
3
3
  @use "../../styles/internal/form-components";
4
- @use "../../styles/internal/db-puls";
4
+ @use "../../styles/internal/indicator";
5
+ @use "../../styles/internal/scrollbar";
5
6
 
6
7
  $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
7
8
 
@@ -19,12 +20,12 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
19
20
  }
20
21
  }
21
22
 
22
- %horizontal-pulse {
23
+ %horizontal-indicator {
23
24
  .db-tab-item {
24
- @include db-puls.set-db-puls-horizontal;
25
+ @include indicator.set-indicator-horizontal;
25
26
 
26
27
  &:has(input:checked) {
27
- @include db-puls.show-db-puls-horizontal;
28
+ @include indicator.show-indicator-horizontal;
28
29
 
29
30
  &::after {
30
31
  inset-block-end: calc(
@@ -39,9 +40,9 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
39
40
  }
40
41
  }
41
42
 
42
- %vertical-pulse {
43
+ %vertical-indicator {
43
44
  .db-tab-item {
44
- @include db-puls.set-db-puls-vertical;
45
+ @include indicator.set-indicator-vertical;
45
46
 
46
47
  &::after {
47
48
  inset-inline-start: 0;
@@ -49,29 +50,20 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
49
50
  }
50
51
 
51
52
  &:has(input:checked) {
52
- @include db-puls.show-db-puls-vertical;
53
+ @include indicator.show-indicator-vertical;
53
54
  }
54
55
  }
55
56
  }
56
57
 
57
- %pulse-track {
58
+ %indicator-track {
58
59
  background-color: colors.$db-adaptive-bg-basic-transparent-semi-default;
59
60
  content: "";
60
61
  border-radius: variables.$db-border-radius-xs;
61
62
  position: absolute;
62
63
  }
63
64
 
64
- @mixin angular-button-workaround() {
65
- > .db-button,
66
- &:is(.db-button) {
67
- @content;
68
- }
69
- }
70
-
71
65
  .db-tabs {
72
66
  $db-tabs-z-index-tab-list: 20;
73
- $db-tabs-z-index-button-background: 21;
74
- $db-tabs-z-index-button: 22;
75
67
 
76
68
  @extend %angular-workaround;
77
69
 
@@ -96,7 +88,7 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
96
88
  }
97
89
 
98
90
  .db-tab-item {
99
- @extend %db-puls;
91
+ @extend %indicator;
100
92
  }
101
93
 
102
94
  /*
@@ -110,9 +102,9 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
110
102
  }
111
103
 
112
104
  .db-tab-list {
113
- /* horizontal track for pulse */
105
+ /* horizontal track for indicator */
114
106
  &::before {
115
- @extend %pulse-track;
107
+ @extend %indicator-track;
116
108
 
117
109
  block-size: variables.$db-border-width-xs;
118
110
  inset-inline: variables.$db-spacing-fixed-xs;
@@ -126,7 +118,7 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
126
118
  }
127
119
 
128
120
  > ul {
129
- @extend %horizontal-pulse;
121
+ @extend %horizontal-indicator;
130
122
 
131
123
  overflow: auto hidden;
132
124
  inline-size: 100%;
@@ -214,9 +206,9 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
214
206
  }
215
207
  }
216
208
 
217
- /* vertical track for pulse */
209
+ /* vertical track for indicator */
218
210
  &::before {
219
- @extend %pulse-track;
211
+ @extend %indicator-track;
220
212
 
221
213
  inline-size: variables.$db-border-width-xs;
222
214
  inset-block: variables.$db-spacing-fixed-xs;
@@ -224,7 +216,7 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
224
216
  }
225
217
 
226
218
  > ul {
227
- @extend %vertical-pulse;
219
+ @extend %vertical-indicator;
228
220
 
229
221
  flex-direction: column;
230
222
  block-size: 100%;
@@ -291,71 +283,34 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
291
283
  }
292
284
 
293
285
  &[data-scroll-behavior="arrows"] {
286
+ @include scrollbar.set-overflow-scroll-buttons;
287
+
294
288
  .db-tab-list {
295
289
  > ul {
290
+ @supports (scrollbar-width: none) {
291
+ scrollbar-width: none;
292
+ }
293
+
296
294
  &::-webkit-scrollbar {
297
295
  display: none;
298
296
  }
299
297
  }
300
298
  }
301
299
 
302
- &:has(.tabs-scroll-left) {
300
+ &:has(.overflow-scroll-left-button) {
303
301
  &::before {
304
302
  content: "";
305
303
  }
306
304
  }
307
305
 
308
- &:has(.tabs-scroll-right) {
306
+ &:has(.overflow-scroll-right-button) {
309
307
  &::after {
310
308
  content: "";
311
309
  }
312
310
  }
313
311
 
314
312
  &:has(.db-button) {
315
- &::before,
316
- &::after {
317
- position: absolute;
318
- z-index: $db-tabs-z-index-button-background;
319
- background-color: colors.$db-adaptive-bg-basic-level-1-default;
320
- inline-size: variables.$db-sizing-md;
321
- block-size: calc(
322
- #{variables.$db-spacing-fixed-sm} +
323
- #{variables.$db-sizing-md}
324
- );
325
- flex: 0 0 auto;
326
- }
327
-
328
- &::before {
329
- inset-inline-start: 0;
330
- }
331
-
332
- &::after {
333
- inset-inline-end: 0;
334
- }
335
- }
336
-
337
- /*
338
- * Scroll left / right buttons
339
- */
340
- .tabs-scroll-left {
341
- @include angular-button-workaround() {
342
- inset-inline-start: 0;
343
- }
344
- }
345
-
346
- .tabs-scroll-right {
347
- @include angular-button-workaround() {
348
- inset-inline-end: 0;
349
- }
350
- }
351
-
352
- .tabs-scroll-left,
353
- .tabs-scroll-right {
354
- @include angular-button-workaround() {
355
- position: absolute;
356
- z-index: $db-tabs-z-index-button;
357
- inset-block: variables.$db-spacing-fixed-xs;
358
- }
313
+ @include scrollbar.set-overflow-scroll-button-backgrounds;
359
314
  }
360
315
  }
361
316
  }
@@ -9,7 +9,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
9
9
  /* Screen sizes */
10
10
  /* Container sizes */
11
11
  .db-tag label, .db-tag a {
12
- transition: outline var(--db-transition-duration-extra-fast), border-color var(--db-transition-straight-emotional), background-color var(--db-transition-straight-emotional);
12
+ transition: outline var(--db-transition-duration-extra-fast), background-color var(--db-transition-straight-emotional);
13
13
  }
14
14
 
15
15
  @keyframes show-right-to-left {
@@ -1229,9 +1229,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
1229
1229
  --db-icon-margin-end: 0;
1230
1230
  }
1231
1231
  .db-tag:not([data-no-text=true]) {
1232
- --db-padding-inline-start: var(--db-spacing-fixed-2xs);
1233
- /* stylelint-disable-next-line db-ux/use-spacings */
1234
- padding-inline: var(--db-padding-inline-start) var(--db-spacing-fixed-2xs);
1232
+ padding-inline: var(--db-spacing-fixed-2xs);
1235
1233
  }
1236
1234
  .db-tag:not([data-no-text=true]):has(.db-tab-remove-button) {
1237
1235
  padding-inline-end: 0;
@@ -1375,20 +1373,16 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
1375
1373
  }
1376
1374
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false])::before {
1377
1375
  position: absolute;
1378
- inset-block-start: calc(50% - 0.5em);
1379
- inset-inline-start: var(--db-spacing-fixed-2xs);
1376
+ inset-block-start: var(--db-icon-passing-inset-block-start, calc(50% - 0.5em));
1377
+ inset-inline-start: var(--db-icon-passing-inset-inline-start, var(--db-spacing-fixed-2xs));
1380
1378
  pointer-events: none;
1381
1379
  z-index: 1;
1382
1380
  }
1383
1381
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) a,
1384
1382
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) button,
1385
1383
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) label {
1386
- --db-padding-inline-start: calc(
1387
- var(--db-spacing-fixed-2xs) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) +
1388
- var(--db-icon-font-size)
1389
- );
1390
1384
  /* stylelint-disable-next-line db-ux/use-spacings */
1391
- padding-inline-start: var(--db-padding-inline-start);
1385
+ padding-inline-start: var(--db-icon-passing-padding-inline-start, calc(var(--db-spacing-fixed-2xs) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) + var(--db-icon-font-size)));
1392
1386
  }
1393
1387
  .db-tag:has(label, button:not(.db-tab-remove-button), a) input:checked {
1394
1388
  background-color: transparent;
@@ -25,11 +25,7 @@
25
25
  }
26
26
 
27
27
  &:not([data-no-text="true"]) {
28
- --db-padding-inline-start: #{variables.$db-spacing-fixed-2xs};
29
-
30
- /* stylelint-disable-next-line db-ux/use-spacings */
31
- padding-inline: var(--db-padding-inline-start)
32
- #{variables.$db-spacing-fixed-2xs};
28
+ padding-inline: variables.$db-spacing-fixed-2xs;
33
29
 
34
30
  &:has(.db-tab-remove-button) {
35
31
  padding-inline-end: 0;
@@ -196,7 +196,7 @@ input[type=radio]:checked) > label {
196
196
  }
197
197
 
198
198
  .db-textarea[data-variant=floating]:has(textarea:is(:focus-within, :not(:placeholder-shown)))::before, .db-textarea textarea::-webkit-scrollbar, .db-textarea textarea::-webkit-scrollbar-corner {
199
- transition: outline var(--db-transition-duration-extra-fast), border-color var(--db-transition-straight-emotional), background-color var(--db-transition-straight-emotional);
199
+ transition: outline var(--db-transition-duration-extra-fast), background-color var(--db-transition-straight-emotional);
200
200
  }
201
201
 
202
202
  @keyframes show-right-to-left {