@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
@@ -43,6 +43,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
43
43
 
44
44
  @layer variables {}
45
45
 
46
+ /**
47
+ * @mixin screen-min-max
48
+ * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
49
+ */
46
50
  /**
47
51
  Generates 3 types of placeholders, e.g:
48
52
  - %db-component-variables-md
@@ -75,14 +79,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
75
79
 
76
80
  @layer variables {}
77
81
 
78
- .db-navigation-item, .db-navigation-item a, .db-navigation-item .db-navigation-item-expand-button:is(button),
79
- .db-navigation-item .db-navigation-item-expand-button > button {
82
+ .db-navigation-item, .db-navigation-item a {
80
83
  font: var(--db-type-body-md);
81
84
  /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
82
85
  }
83
86
  @layer variables {
84
- .db-navigation-item, .db-navigation-item a, .db-navigation-item .db-navigation-item-expand-button:is(button),
85
- .db-navigation-item .db-navigation-item-expand-button > button {
87
+ .db-navigation-item, .db-navigation-item a {
86
88
  /* Those variables are only for components to calculate heights and change icons */
87
89
  --db-icon-font-weight: var(--db-base-body-icon-weight-md);
88
90
  --db-icon-font-size: var(--db-base-body-icon-font-size-md);
@@ -115,165 +117,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
115
117
 
116
118
  @layer variables {}
117
119
 
118
- /**
119
- * @mixin screen-min-max
120
- * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
121
- */
122
- @keyframes show-right-to-left {
123
- from {
124
- transform: translateX(110%);
125
- }
126
- to {
127
- transform: translateX(0%);
128
- }
129
- }
130
- @keyframes hide-right-to-left {
131
- from {
132
- transform: translateX(0%);
133
- }
134
- to {
135
- transform: translateX(110%);
136
- }
137
- }
138
- @keyframes show-left-to-right {
139
- from {
140
- transform: translateX(-110%);
141
- }
142
- to {
143
- transform: translateX(0%);
144
- }
145
- }
146
- @keyframes hide-left-to-right {
147
- from {
148
- transform: translateX(0%);
149
- }
150
- to {
151
- transform: translateX(-110%);
152
- }
153
- }
154
- @keyframes show-bottom-to-top {
155
- from {
156
- transform: translateY(110%);
157
- }
158
- to {
159
- transform: translateY(0%);
160
- }
161
- }
162
- @keyframes hide-bottom-to-top {
163
- from {
164
- transform: translateY(0%);
165
- }
166
- to {
167
- transform: translateY(110%);
168
- }
169
- }
170
- @keyframes show-top-to-bottom {
171
- from {
172
- transform: translateY(-110%);
173
- }
174
- to {
175
- transform: translateY(0%);
176
- }
177
- }
178
- @keyframes hide-top-to-bottom {
179
- from {
180
- transform: translateY(0%);
181
- }
182
- to {
183
- transform: translateY(-110%);
184
- }
185
- }
186
- @keyframes popover-animation {
187
- 0% {
188
- opacity: 0;
189
- transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
190
- }
191
- 100% {
192
- opacity: 1;
193
- transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
194
- }
195
- }
196
- @keyframes rotate {
197
- 100% {
198
- transform: rotate(1turn);
199
- }
200
- }
201
- .db-navigation-item .db-navigation-item-expand-button:is(button):not([data-show-icon-trailing=false])::after,
202
- .db-navigation-item .db-navigation-item-expand-button > button:not([data-show-icon-trailing=false])::after {
203
- color: var(--db-icon-color, inherit);
204
- display: inline-block;
205
- /*** icon - placeholder ***/
206
- font-family: var(--db-icon-font-family, var(--db-icon-default-font-family, "db-ux-default")) !important;
207
- font-size: var(--db-icon-font-size, 1.5rem);
208
- -webkit-font-smoothing: antialiased;
209
- -moz-osx-font-smoothing: grayscale;
210
- font-style: normal;
211
- font-variant: normal;
212
- font-weight: var(--db-icon-font-weight, normal);
213
- line-height: 1;
214
- /* stylelint-disable-next-line declaration-property-value-no-unknown */
215
- speak: none;
216
- /* stylelint-disable-next-line declaration-property-value-no-unknown */
217
- speak: never;
218
- text-transform: none;
219
- vertical-align: var(--db-icon-vertical-align, middle);
220
- block-size: var(--db-icon-font-size, 1.5rem);
221
- inline-size: var(--db-icon-font-size, 1.5rem);
222
- content: var(--db-icon, attr(data-icon));
223
- }
224
- @supports (content: ""/"") {
225
- .db-navigation-item .db-navigation-item-expand-button:is(button):not([data-show-icon-trailing=false])::after,
226
- .db-navigation-item .db-navigation-item-expand-button > button:not([data-show-icon-trailing=false])::after {
227
- content: var(--db-icon, attr(data-icon))/"";
228
- }
229
- }
230
- @media aural {
231
- .db-navigation-item .db-navigation-item-expand-button:is(button):not([data-show-icon-trailing=false])::after,
232
- .db-navigation-item .db-navigation-item-expand-button > button:not([data-show-icon-trailing=false])::after {
233
- content: none;
234
- }
235
- }
236
- @media speech {
237
- .db-navigation-item .db-navigation-item-expand-button:is(button):not([data-show-icon-trailing=false])::after,
238
- .db-navigation-item .db-navigation-item-expand-button > button:not([data-show-icon-trailing=false])::after {
239
- content: none;
240
- }
241
- }
242
-
243
- .db-navigation-item a, .db-navigation-item .db-navigation-item-expand-button:is(button),
244
- .db-navigation-item .db-navigation-item-expand-button > button {
245
- border: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-100-default);
246
- }
247
-
248
- .db-navigation-item a, .db-navigation-item .db-navigation-item-expand-button:is(button),
249
- .db-navigation-item .db-navigation-item-expand-button > button {
120
+ /* Sub components for shell */
121
+ .db-navigation-item a {
250
122
  border: var(--db-border-width-3xs) solid transparent;
251
123
  }
252
124
 
253
- .db-sub-navigation {
254
- border: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
255
- }
256
-
257
- .db-navigation-item a, .db-navigation-item .db-navigation-item-expand-button:is(button),
258
- .db-navigation-item .db-navigation-item-expand-button > button {
259
- border-radius: var(--db-border-radius-xs);
260
- }
261
-
262
- .db-navigation-item .db-navigation-item-expand-button:is(button),
263
- .db-navigation-item .db-navigation-item-expand-button > button {
264
- /* stylelint-disable-next-line media-query-no-invalid */
265
- /* stylelint-disable-next-line at-rule-empty-line-before */
266
- }
267
- @media screen and (min-width: 64em) {
268
- .db-navigation-item .db-navigation-item-expand-button:not([data-force-mobile]):is(:hover, :focus-visible):is(button) ~ .db-sub-navigation,
269
- .db-navigation-item .db-navigation-item-expand-button > button:not([data-force-mobile]):is(:hover, :focus-visible) ~ .db-sub-navigation, .db-navigation-item [data-force-mobile=false].db-navigation-item-expand-button:is(:hover, :focus-visible):is(button) ~ .db-sub-navigation,
270
- .db-navigation-item .db-navigation-item-expand-button > button[data-force-mobile=false]:is(:hover, :focus-visible) ~ .db-sub-navigation {
271
- visibility: visible;
272
- }
273
- }
274
-
275
- .db-navigation-item .db-navigation-item-expand-button:is(button),
276
- .db-navigation-item .db-navigation-item-expand-button > button, .db-navigation-item a {
125
+ .db-navigation-item a {
277
126
  background-color: var(--db-adaptive-bg-basic-transparent-full-default);
278
127
  cursor: pointer;
279
128
  inline-size: 100%;
@@ -286,296 +135,64 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
286
135
  justify-content: space-between;
287
136
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
288
137
  }
289
- .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(button),
290
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]) {
138
+ .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]) {
291
139
  cursor: var(--db-overwrite-cursor, pointer);
292
140
  background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
293
141
  }
294
- .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(textarea):is(button),
295
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(input):is(button),
296
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(input), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input) {
142
+ .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input) {
297
143
  cursor: initial;
298
144
  }
299
- .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]):is(button),
300
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)):is(button),
301
- .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
145
+ .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
302
146
  cursor: pointer;
303
147
  }
304
- .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(button),
305
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]) {
148
+ .db-navigation-item a:active:not(:disabled, [aria-disabled=true]) {
306
149
  cursor: var(--db-overwrite-cursor, pointer);
307
150
  background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
308
151
  }
309
- .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(textarea):is(button),
310
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(input):is(button),
311
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(input), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input) {
152
+ .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input) {
312
153
  cursor: initial;
313
154
  }
314
- .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]):is(button),
315
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)):is(button),
316
- .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
155
+ .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
317
156
  cursor: pointer;
318
157
  }
319
- .db-navigation-item .db-navigation-item-expand-button:has(~ .db-sub-navigation:is(:hover, :focus)):is(button),
320
- .db-navigation-item .db-navigation-item-expand-button > button:has(~ .db-sub-navigation:is(:hover, :focus)), .db-navigation-item a:has(~ .db-sub-navigation:is(:hover, :focus)) {
321
- background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
322
- }
323
158
 
324
159
  .db-navigation-item {
325
- --db-has-before: 0;
326
- display: inline-flex;
327
160
  position: relative;
328
- inline-size: auto;
329
- /* stylelint-disable-next-line media-query-no-invalid */
330
- }
331
- .db-navigation-item[data-icon]:not([data-show-icon=false])::before {
332
- position: absolute;
333
- inset-block-start: calc(50% - 0.5em);
334
- inset-inline-start: var(--db-spacing-fixed-sm);
335
- pointer-events: none;
336
- z-index: 1;
337
- }
338
- .db-navigation-item[data-icon]:not([data-show-icon=false]) a,
339
- .db-navigation-item[data-icon]:not([data-show-icon=false]) button,
340
- .db-navigation-item[data-icon]:not([data-show-icon=false]) label {
341
- --db-padding-inline-start: calc(
342
- var(--db-spacing-fixed-sm) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) +
343
- var(--db-icon-font-size)
344
- );
345
- /* stylelint-disable-next-line db-ux/use-spacings */
346
- padding-inline-start: var(--db-padding-inline-start);
347
- }
348
- .db-navigation-item[data-wrap=true] :is(a, .db-navigation-item-expand-button):first-of-type {
349
- white-space: normal;
350
- text-align: start;
351
- }
352
- .db-navigation-item[data-force-mobile=true]:not([data-width=full]) .db-navigation-item-expand-button::after {
353
- --db-icon-margin-start: auto;
354
- }
355
- @media screen and (max-width: 63.9375em) {
356
- .db-navigation-item:not([data-width=full]) .db-navigation-item-expand-button::after {
357
- --db-icon-margin-start: auto;
358
- }
359
- }
360
- .db-navigation-item a {
361
- text-decoration: none;
362
- }
363
- .db-navigation-item a:focus-visible {
364
- z-index: 1;
365
- }
366
- .db-navigation-item .db-navigation-item-expand-button {
367
- /* stylelint-disable-next-line media-query-no-invalid */
368
- }
369
- .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true] ~ .db-sub-navigation {
370
- visibility: visible;
371
- }
372
- @media screen and (prefers-reduced-motion: no-preference) {
373
- .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true] ~ .db-sub-navigation {
374
- transition: visibility 0ms linear 0ms;
375
- animation: show-right-to-left var(--db-transition-straight-show);
376
- }
377
- }
378
- .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true] ~ .db-sub-navigation .db-sub-navigation {
379
- inset-block: 0;
380
- }
381
- @media screen and (prefers-reduced-motion: no-preference) {
382
- .db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true]:not(.db-navigation-item .db-navigation-item-expand-button[data-force-mobile=true][aria-expanded=true]) ~ .db-sub-navigation {
383
- transition: visibility 0ms linear 410ms;
384
- animation: hide-right-to-left var(--db-transition-straight-hide);
385
- }
386
- }
387
- @media screen and (max-width: 63.9375em) {
388
- .db-navigation-item .db-navigation-item-expand-button[aria-expanded=true] ~ .db-sub-navigation {
389
- visibility: visible;
390
- }
391
- }
392
- @media screen and (max-width: 63.9375em) and (prefers-reduced-motion: no-preference) {
393
- .db-navigation-item .db-navigation-item-expand-button[aria-expanded=true] ~ .db-sub-navigation {
394
- transition: visibility 0ms linear 0ms;
395
- animation: show-right-to-left var(--db-transition-straight-show);
396
- }
397
- }
398
- @media screen and (max-width: 63.9375em) {
399
- .db-navigation-item .db-navigation-item-expand-button[aria-expanded=true] ~ .db-sub-navigation .db-sub-navigation {
400
- inset-block: 0;
401
- }
402
- }
403
- @media screen and (max-width: 63.9375em) and (prefers-reduced-motion: no-preference) {
404
- .db-navigation-item .db-navigation-item-expand-button:not(.db-navigation-item .db-navigation-item-expand-button[aria-expanded=true]) ~ .db-sub-navigation {
405
- transition: visibility 0ms linear 410ms;
406
- animation: hide-right-to-left var(--db-transition-straight-hide);
407
- }
408
- }
409
- .db-navigation-item .db-navigation-item-expand-button:is(button),
410
- .db-navigation-item .db-navigation-item-expand-button > button {
411
- font-weight: inherit;
412
- }
413
- .db-navigation-item .db-navigation-item-expand-button:is(button):not([data-show-icon-trailing=false])::after,
414
- .db-navigation-item .db-navigation-item-expand-button > button:not([data-show-icon-trailing=false])::after {
415
- --db-icon-trailing: "chevron_right";
416
- margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
417
- content: var(--db-icon-trailing, attr(data-icon-trailing));
418
- }
419
- @supports (content: ""/"") {
420
- .db-navigation-item .db-navigation-item-expand-button:is(button):not([data-show-icon-trailing=false])::after,
421
- .db-navigation-item .db-navigation-item-expand-button > button:not([data-show-icon-trailing=false])::after {
422
- content: var(--db-icon-trailing, attr(data-icon-trailing))/"";
423
- }
424
- }
425
- .db-navigation-item:has([aria-current=page]) > :is(a, button), .db-navigation-item:has([data-active=true]) > :is(a, button), .db-navigation-item[aria-current=page] > :is(a, button), .db-navigation-item[data-active=true] > :is(a, button) {
426
- font-weight: 700;
427
- }
428
- .db-navigation-item:not([data-width=full]) .db-navigation-item-expand-button::after {
429
- --db-icon-margin-start: var(--db-spacing-fixed-sm);
430
- }
431
- .db-navigation-item[data-width=full] {
432
- inline-size: 100%;
433
- }
434
- .db-navigation-item[data-width=full] .db-navigation-item-expand-button::after {
435
- --db-icon-margin-start: auto;
436
- }
437
- .db-navigation-item[aria-disabled=true] {
438
- opacity: var(--db-opacity-md);
439
- pointer-events: none;
440
- }
441
-
442
- .db-sub-navigation {
443
- margin: 0;
444
161
  display: flex;
445
- flex-direction: column;
446
- z-index: 70;
447
- inset-inline-start: 0;
448
- background-color: var(--db-adaptive-bg-basic-level-1-default);
449
- visibility: hidden;
450
- /* stylelint-disable-next-line media-query-no-invalid */
162
+ block-size: fit-content;
451
163
  /* stylelint-disable-next-line media-query-no-invalid */
452
164
  /* stylelint-disable-next-line at-rule-empty-line-before */
453
165
  /* stylelint-disable-next-line media-query-no-invalid */
454
166
  /* stylelint-disable-next-line at-rule-empty-line-before */
455
167
  }
456
- .db-sub-navigation[data-force-mobile=true] {
457
- padding: var(--db-spacing-fixed-md);
458
- inline-size: 100%;
459
- position: fixed;
460
- overflow: hidden auto;
461
- inset-block: calc(calc(var(--db-sizing-md) + 2 * var(--db-spacing-fixed-xs)) + var(--db-spacing-fixed-3xs)) calc(var(--db-sizing-md) + var(--db-spacing-fixed-xs) * 2 + var(--db-spacing-fixed-3xs));
462
- }
463
- @media screen and (max-width: 63.9375em) {
464
- .db-sub-navigation {
465
- padding: var(--db-spacing-fixed-md);
168
+ @media screen and (width <= 48em) {
169
+ .db-navigation-item {
466
170
  inline-size: 100%;
467
- position: fixed;
468
- overflow: hidden auto;
469
- inset-block: calc(calc(var(--db-sizing-md) + 2 * var(--db-spacing-fixed-xs)) + var(--db-spacing-fixed-3xs)) calc(var(--db-sizing-md) + var(--db-spacing-fixed-xs) * 2 + var(--db-spacing-fixed-3xs));
470
171
  }
471
172
  }
472
- @media screen and (min-width: 64em) {
473
- .db-sub-navigation:not([data-force-mobile]) .db-mobile-navigation-back, .db-sub-navigation[data-force-mobile=false] .db-mobile-navigation-back {
474
- display: none;
173
+ @media screen and (48em < width) {
174
+ .db-navigation-item {
175
+ inline-size: fit-content;
475
176
  }
476
177
  }
477
- @media screen and (min-width: 64em) {
478
- .db-sub-navigation:not([data-force-mobile]), .db-sub-navigation[data-force-mobile=false] {
479
- border-radius: var(--db-border-radius-sm);
480
- box-shadow: var(--db-elevation-md);
481
- padding: var(--db-spacing-fixed-sm);
482
- position: absolute;
483
- min-inline-size: 328px;
484
- inset-block-start: calc(100% + var(--db-spacing-fixed-md));
485
- transition: visibility 1ms linear;
486
- }
487
- .db-sub-navigation:not([data-force-mobile])[data-outside-vx=true], .db-sub-navigation[data-force-mobile=false][data-outside-vx=true] {
488
- transform: translateX(-100%);
489
- inset-inline-start: 100%;
490
- }
491
- .db-sub-navigation:not([data-force-mobile]):is(:hover, :focus-within):not([data-force-close=true]), .db-sub-navigation[data-force-mobile=false]:is(:hover, :focus-within):not([data-force-close=true]) {
492
- visibility: visible;
493
- }
494
- .db-sub-navigation:not([data-force-mobile])[data-force-close=true], .db-sub-navigation[data-force-mobile=false][data-force-close=true] {
495
- pointer-events: none;
496
- }
497
- .db-sub-navigation:not([data-force-mobile])::before, .db-sub-navigation[data-force-mobile=false]::before {
498
- content: "";
499
- position: absolute;
500
- inset-inline-start: 0;
501
- inline-size: 100%;
502
- block-size: calc(var(--db-spacing-fixed-3xs) + var(--db-spacing-fixed-md));
503
- inset-block-start: calc(-1 * var(--db-spacing-fixed-md) - var(--db-spacing-fixed-3xs));
504
- }
505
- .db-sub-navigation:not([data-force-mobile]) .db-sub-navigation, .db-sub-navigation[data-force-mobile=false] .db-sub-navigation {
506
- inset-block-start: calc(-50% + var(--db-spacing-fixed-xs) + 1px);
507
- inset-inline-start: calc(100% + var(--db-spacing-fixed-xs));
508
- }
509
- .db-sub-navigation:not([data-force-mobile]) .db-sub-navigation[data-outside-vy=bottom], .db-sub-navigation[data-force-mobile=false] .db-sub-navigation[data-outside-vy=bottom] {
510
- inset-block-start: calc(100% + var(--db-spacing-fixed-md));
511
- transform: translateY(-100%);
512
- }
513
- .db-sub-navigation:not([data-force-mobile]) .db-sub-navigation[data-outside-vx=right], .db-sub-navigation[data-force-mobile=false] .db-sub-navigation[data-outside-vx=right] {
514
- transform: translateX(-100%);
515
- inset-inline-start: calc(-1 * var(--db-spacing-fixed-xs));
516
- }
517
- .db-sub-navigation:not([data-force-mobile]) .db-sub-navigation[data-outside-vx=right][data-outside-vy=bottom], .db-sub-navigation[data-force-mobile=false] .db-sub-navigation[data-outside-vx=right][data-outside-vy=bottom] {
518
- transform: translate(-100%, -100%);
519
- }
520
- .db-sub-navigation:not([data-force-mobile]) .db-sub-navigation[data-outside-vx=right]::before, .db-sub-navigation[data-force-mobile=false] .db-sub-navigation[data-outside-vx=right]::before {
521
- inset-block: auto 0;
522
- transform: translateX(100%) scaleX(-1);
523
- }
524
- .db-sub-navigation:not([data-force-mobile]) .db-sub-navigation::before, .db-sub-navigation[data-force-mobile=false] .db-sub-navigation::before {
525
- content: "";
526
- position: absolute;
527
- inset-block-start: 0;
528
- inset-inline-start: 0;
529
- block-size: 100%;
530
- inline-size: var(--db-navigation-item-inline-size, 100%);
531
- background: transparent;
532
- transform: translateX(-100%);
533
- clip-path: var(--db-navigation-item-clip-path, polygon(10% 30px, 100% 0, 100% 100%));
534
- }
535
- .db-sub-navigation:not([data-force-mobile]) .db-sub-navigation::after, .db-sub-navigation[data-force-mobile=false] .db-sub-navigation::after {
536
- content: "";
537
- position: absolute;
538
- padding: var(--db-spacing-fixed-xs);
539
- inset-block-start: var(--db-spacing-fixed-3xs);
540
- inset-inline-end: calc(-1 * var(--db-spacing-fixed-xs));
541
- block-size: 100%;
542
- inline-size: var(--db-spacing-fixed-xs);
543
- }
544
- }
545
- .db-sub-navigation:empty {
546
- display: none;
178
+ .db-navigation-item :is(a, .db-navigation-item-expand-button):first-of-type {
179
+ white-space: normal;
180
+ text-align: start;
547
181
  }
548
- .db-sub-navigation .db-navigation-item {
549
- inline-size: 100%;
182
+ .db-navigation-item:has([aria-current=page]) > :is(a, button), .db-navigation-item:has([data-active=true]) > :is(a, button), [aria-current=page].db-navigation-item > :is(a, button), [data-active=true].db-navigation-item > :is(a, button) {
183
+ font-weight: 700;
550
184
  }
551
- .db-sub-navigation .db-navigation-item::after {
552
- margin-inline-start: auto;
185
+ [aria-disabled=true].db-navigation-item {
186
+ opacity: var(--db-opacity-md);
187
+ pointer-events: none;
553
188
  }
554
189
 
555
- .db-mobile-navigation-back {
556
- display: flex;
557
- font-weight: normal;
558
- background-color: var(--db-adaptive-bg-basic-level-1-default);
559
- padding-block-end: var(--db-spacing-fixed-md);
560
- margin-block-end: var(--db-spacing-fixed-md);
561
- --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
562
- position: var(--db-tooltip-parent-position, relative);
563
- }
564
- .db-mobile-navigation-back[data-emphasis=strong] {
565
- --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
190
+ .db-navigation-item a {
191
+ text-decoration: none;
566
192
  }
567
- .db-mobile-navigation-back::before {
568
- content: "";
569
- background-color: var(--db-divider-bg-color);
570
- position: absolute;
571
- block-size: var(--db-border-width-3xs);
572
- inset-block-end: 0;
573
- inset-inline: 0;
574
- /* stylelint-disable-next-line at-rule-empty-line-before */
193
+ .db-navigation-item a:focus-visible {
194
+ z-index: 1;
575
195
  }
576
- @media (forced-colors: active) {
577
- .db-mobile-navigation-back {
578
- /* stylelint-disable-next-line db-ux/use-border-color */
579
- border: var(--db-border-width-3xs) solid var(--db-divider-bg-color);
580
- }
196
+ .db-navigation-item .db-tooltip {
197
+ --db-show-popover-visibility: hidden;
581
198
  }