@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
@@ -1,324 +1,22 @@
1
- @use "@db-ux/core-foundations/build/styles/variables";
2
- @use "@db-ux/core-foundations/build/styles/colors";
3
- @use "@db-ux/core-foundations/build/styles/fonts";
4
- @use "@db-ux/core-foundations/build/styles/screen-sizes";
5
- @use "@db-ux/core-foundations/build/styles/helpers";
6
- @use "@db-ux/core-foundations/build/styles/animation";
7
- @use "@db-ux/core-foundations/build/styles/icons";
8
- @use "../../styles/internal/icon-passing";
9
- @use "../../styles/internal/component";
10
-
11
- %sub-navi-handler-desktop {
12
- // show sub-navigation on hover
13
- @include screen-sizes.screen("md") {
14
- &:is(:hover, :focus-visible) {
15
- ~ .db-sub-navigation {
16
- visibility: visible;
17
- }
18
- }
19
- }
20
- }
21
-
22
- @mixin sub-navi-handler-mobile() {
23
- // show/hide sub-navigation by click
24
- &[aria-expanded="true"] {
25
- ~ .db-sub-navigation {
26
- visibility: visible;
27
-
28
- @media screen and (prefers-reduced-motion: no-preference) {
29
- transition: visibility 0ms linear 0ms;
30
- animation: show-right-to-left
31
- #{variables.$db-transition-straight-show};
32
- }
33
-
34
- .db-sub-navigation {
35
- inset-block: 0;
36
- }
37
- }
38
- }
39
-
40
- &:not(&[aria-expanded="true"]) {
41
- @media screen and (prefers-reduced-motion: no-preference) {
42
- ~ .db-sub-navigation {
43
- transition: visibility 0ms linear 410ms; // hide animation is 0.4s
44
- animation: hide-right-to-left
45
- #{variables.$db-transition-straight-hide};
46
- }
47
- }
48
- }
49
- }
50
-
51
- %navigation-item {
52
- @extend %default-interactive-component;
53
- @extend %transparent-border;
54
- @extend %db-overwrite-font-size-md;
55
-
56
- background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
57
- cursor: pointer;
58
- inline-size: 100%;
59
- display: inline-flex;
60
- border-radius: variables.$db-border-radius-sm;
61
- padding: variables.$db-spacing-fixed-xs variables.$db-spacing-fixed-sm;
62
- white-space: nowrap; // we don't want to break
63
- text-align: center;
64
- align-items: center; // Centering the content vertically and horizontally
65
- justify-content: space-between;
66
-
67
- @include helpers.hover {
68
- background-color: colors.$db-adaptive-bg-basic-transparent-full-hovered;
69
- }
70
-
71
- @include helpers.active {
72
- background-color: colors.$db-adaptive-bg-basic-transparent-full-pressed;
73
- }
74
-
75
- &:has(~ .db-sub-navigation:is(:hover, :focus)) {
76
- background-color: colors.$db-adaptive-bg-basic-transparent-full-hovered;
77
- }
78
- }
1
+ @use "../../styles/internal/navigation-item";
79
2
 
80
3
  .db-navigation-item {
81
- --db-has-before: 0;
82
-
83
- @extend %db-overwrite-font-size-md;
84
-
85
- @include icon-passing.icon-passing();
86
-
87
- display: inline-flex;
88
- position: relative;
89
- inline-size: auto;
90
-
91
- &[data-wrap="true"] {
92
- :is(a, .db-navigation-item-expand-button):first-of-type {
93
- white-space: normal;
94
- text-align: start;
95
- }
96
- }
97
-
98
- @include screen-sizes.screen("md", "max") {
99
- &:not([data-width="full"]) {
100
- .db-navigation-item-expand-button {
101
- &::after {
102
- --db-icon-margin-start: auto;
103
- }
104
- }
105
- }
106
- }
4
+ @extend %navigation-item;
107
5
 
108
6
  a {
109
- @extend %navigation-item;
7
+ @extend %navigation-item-interactive-element;
110
8
 
111
9
  text-decoration: none;
112
10
 
113
11
  &:focus-visible {
114
- // We need to increase the z-index on focus-visible for the outline and box-shadow to appear above the pulse
12
+ // We need to increase the z-index on focus-visible for the outline and box-shadow to appear above the indicator
115
13
  z-index: 1;
116
14
  }
117
15
  }
118
16
 
119
- .db-navigation-item-expand-button {
120
- @include screen-sizes.screen("md", "max") {
121
- @include sub-navi-handler-mobile();
122
- }
123
-
124
- &:is(button),
125
- > button {
126
- @extend %sub-navi-handler-desktop;
127
- @extend %navigation-item;
128
-
129
- font-weight: inherit;
130
-
131
- // default icon for navigation
132
- @include icons.set-icon("chevron_right", "after");
133
- }
134
- }
135
-
136
- &:has([aria-current="page"]),
137
- &:has([data-active="true"]),
138
- &[aria-current="page"],
139
- &[data-active="true"] {
140
- > :is(a, button) {
141
- font-weight: 700;
142
- }
17
+ .db-tooltip {
18
+ // We don't show the tooltip unless user uses DBShell with controlPanelDesktopPosition="left"
19
+ // and collapsed navigation
20
+ --db-show-popover-visibility: hidden;
143
21
  }
144
-
145
- &:not([data-width="full"]) {
146
- .db-navigation-item-expand-button {
147
- &::after {
148
- --db-icon-margin-start: #{variables.$db-spacing-fixed-sm};
149
- }
150
- }
151
- }
152
-
153
- &[data-width="full"] {
154
- inline-size: 100%;
155
-
156
- .db-navigation-item-expand-button {
157
- &::after {
158
- --db-icon-margin-start: auto;
159
- }
160
- }
161
- }
162
-
163
- &[aria-disabled="true"] {
164
- opacity: variables.$db-opacity-md;
165
- pointer-events: none;
166
- }
167
- }
168
-
169
- @mixin sub-navigation-mobile() {
170
- padding: variables.$db-spacing-fixed-md;
171
- inline-size: 100%;
172
- position: fixed;
173
- overflow: hidden auto;
174
- // additional #{$db-spacing-fixed-3xs} for border
175
- inset-block: calc(
176
- #{component.$min-mobile-header-height} +
177
- #{variables.$db-spacing-fixed-3xs}
178
- )
179
- calc(
180
- #{variables.$db-sizing-md} + #{variables.$db-spacing-fixed-xs} * 2 +
181
- #{variables.$db-spacing-fixed-3xs}
182
- );
183
- }
184
-
185
- .db-sub-navigation {
186
- @extend %component-border;
187
-
188
- margin: 0;
189
- display: flex;
190
- flex-direction: column;
191
- z-index: 70;
192
- inset-inline-start: 0;
193
- background-color: colors.$db-adaptive-bg-basic-level-1-default;
194
- visibility: hidden;
195
-
196
- @include screen-sizes.screen("md", "max") {
197
- @include sub-navigation-mobile();
198
- }
199
-
200
- @include screen-sizes.screen("md") {
201
- .db-mobile-navigation-back {
202
- display: none;
203
- }
204
- }
205
-
206
- @include screen-sizes.screen("md") {
207
- border-radius: variables.$db-border-radius-sm;
208
- box-shadow: variables.$db-elevation-md;
209
- padding: variables.$db-spacing-fixed-sm;
210
- position: absolute;
211
- min-inline-size: 328px; // We should get this value from UX
212
- inset-block-start: calc(100% + #{variables.$db-spacing-fixed-md});
213
- transition: visibility 1ms linear; // workaround to enable focus with keyboard
214
-
215
- &[data-outside-vx="true"] {
216
- transform: translateX(-100%);
217
- inset-inline-start: 100%;
218
- }
219
-
220
- &:is(:hover, :focus-within):not([data-force-close="true"]) {
221
- visibility: visible;
222
- }
223
-
224
- &[data-force-close="true"] {
225
- pointer-events: none;
226
- }
227
-
228
- &::before {
229
- content: "";
230
- position: absolute;
231
- inset-inline-start: 0;
232
- inline-size: 100%;
233
- // #{$db-spacing-fixed--3xs} for shadows
234
- block-size: calc(
235
- #{variables.$db-spacing-fixed-3xs} +
236
- #{variables.$db-spacing-fixed-md}
237
- );
238
- inset-block-start: calc(
239
- -1 * #{variables.$db-spacing-fixed-md} -
240
- #{variables.$db-spacing-fixed-3xs}
241
- );
242
- }
243
-
244
- .db-sub-navigation {
245
- // 1px for box shadow
246
- inset-block-start: calc(
247
- -50% + #{variables.$db-spacing-fixed-xs} + 1px
248
- );
249
- inset-inline-start: calc(100% + #{variables.$db-spacing-fixed-xs});
250
-
251
- &[data-outside-vy="bottom"] {
252
- inset-block-start: calc(
253
- 100% + #{variables.$db-spacing-fixed-md}
254
- );
255
- transform: translateY(-100%);
256
- }
257
-
258
- &[data-outside-vx="right"] {
259
- transform: translateX(-100%);
260
- inset-inline-start: calc(
261
- -1 * #{variables.$db-spacing-fixed-xs}
262
- );
263
-
264
- &[data-outside-vy="bottom"] {
265
- transform: translate(-100%, -100%);
266
- }
267
-
268
- &::before {
269
- inset-block: auto 0;
270
- // inline-size: calc(var(--db-navigation-item-inline-size, 100%) - #{variables.$db-spacing-fixed-xs} - 2px);
271
- transform: translateX(100%) scaleX(-1);
272
- }
273
- }
274
-
275
- &::before {
276
- content: "";
277
- position: absolute;
278
- inset-block-start: 0;
279
- inset-inline-start: 0;
280
- block-size: 100%;
281
- inline-size: var(--db-navigation-item-inline-size, 100%);
282
- background: transparent;
283
- transform: translateX(-100%);
284
- clip-path: var(
285
- --db-navigation-item-clip-path,
286
- polygon(10% 30px, 100% 0, 100% 100%)
287
- );
288
- }
289
-
290
- &::after {
291
- content: "";
292
- position: absolute;
293
- padding: variables.$db-spacing-fixed-xs;
294
- // #{$db-spacing-fixed-3xs} for box shadow
295
- inset-block-start: #{variables.$db-spacing-fixed-3xs};
296
- inset-inline-end: calc(-1 * #{variables.$db-spacing-fixed-xs});
297
- block-size: 100%;
298
- inline-size: variables.$db-spacing-fixed-xs;
299
- }
300
- }
301
- }
302
-
303
- &:empty {
304
- display: none;
305
- }
306
-
307
- .db-navigation-item {
308
- inline-size: 100%;
309
-
310
- &::after {
311
- margin-inline-start: auto;
312
- }
313
- }
314
- }
315
-
316
- .db-mobile-navigation-back {
317
- display: flex;
318
- font-weight: normal;
319
- background-color: colors.$db-adaptive-bg-basic-level-1-default;
320
- padding-block-end: variables.$db-spacing-fixed-md;
321
- margin-block-end: variables.$db-spacing-fixed-md;
322
-
323
- @include helpers.divider("bottom");
324
22
  }
@@ -0,0 +1,189 @@
1
+ /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
+ /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
+ /* The primary use-case for responsive spacings are
4
+ paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
+ /* Elevation */
6
+ /* Border */
7
+ /* Opacity */
8
+ /* Transitions */
9
+ /* Screen sizes */
10
+ /* Container sizes */
11
+ /* Variants for adaptive components like input, select, notification, ... */
12
+ @layer variables {}
13
+
14
+ @layer variables {}
15
+
16
+ @layer variables {}
17
+
18
+ @layer variables {}
19
+
20
+ @layer variables {}
21
+
22
+ @layer variables {}
23
+
24
+ @layer variables {}
25
+
26
+ @layer variables {}
27
+
28
+ @layer variables {}
29
+
30
+ @layer variables {}
31
+
32
+ @layer variables {}
33
+
34
+ @layer variables {}
35
+
36
+ @layer variables {}
37
+
38
+ @layer variables {}
39
+
40
+ @layer variables {}
41
+
42
+ @layer variables {}
43
+
44
+ @layer variables {}
45
+
46
+ /**
47
+ * @mixin screen-min-max
48
+ * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
49
+ */
50
+ @keyframes show-right-to-left {
51
+ from {
52
+ transform: translateX(110%);
53
+ }
54
+ to {
55
+ transform: translateX(0%);
56
+ }
57
+ }
58
+ @keyframes hide-right-to-left {
59
+ from {
60
+ transform: translateX(0%);
61
+ }
62
+ to {
63
+ transform: translateX(110%);
64
+ }
65
+ }
66
+ @keyframes show-left-to-right {
67
+ from {
68
+ transform: translateX(-110%);
69
+ }
70
+ to {
71
+ transform: translateX(0%);
72
+ }
73
+ }
74
+ @keyframes hide-left-to-right {
75
+ from {
76
+ transform: translateX(0%);
77
+ }
78
+ to {
79
+ transform: translateX(-110%);
80
+ }
81
+ }
82
+ @keyframes show-bottom-to-top {
83
+ from {
84
+ transform: translateY(110%);
85
+ }
86
+ to {
87
+ transform: translateY(0%);
88
+ }
89
+ }
90
+ @keyframes hide-bottom-to-top {
91
+ from {
92
+ transform: translateY(0%);
93
+ }
94
+ to {
95
+ transform: translateY(110%);
96
+ }
97
+ }
98
+ @keyframes show-top-to-bottom {
99
+ from {
100
+ transform: translateY(-110%);
101
+ }
102
+ to {
103
+ transform: translateY(0%);
104
+ }
105
+ }
106
+ @keyframes hide-top-to-bottom {
107
+ from {
108
+ transform: translateY(0%);
109
+ }
110
+ to {
111
+ transform: translateY(-110%);
112
+ }
113
+ }
114
+ @keyframes popover-animation {
115
+ 0% {
116
+ opacity: 0;
117
+ transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
118
+ }
119
+ 100% {
120
+ opacity: 1;
121
+ transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
122
+ }
123
+ }
124
+ @keyframes rotate {
125
+ 100% {
126
+ transform: rotate(1turn);
127
+ }
128
+ }
129
+ /**
130
+ Generates 3 types of placeholders, e.g:
131
+ - %db-component-variables-md
132
+ - %db-font-size-md
133
+ - %db-overwrite-font-size-md
134
+ */
135
+ @layer variables {}
136
+
137
+ @layer variables {}
138
+
139
+ @layer variables {}
140
+
141
+ @layer variables {}
142
+
143
+ @layer variables {}
144
+
145
+ @layer variables {}
146
+
147
+ @layer variables {}
148
+
149
+ @layer variables {}
150
+
151
+ @layer variables {}
152
+
153
+ @layer variables {}
154
+
155
+ @layer variables {}
156
+
157
+ @layer variables {}
158
+
159
+ @layer variables {}
160
+
161
+ @layer variables {}
162
+
163
+ @layer variables {}
164
+
165
+ @layer variables {}
166
+
167
+ @layer variables {}
168
+
169
+ @layer variables {}
170
+
171
+ @layer variables {}
172
+
173
+ @layer variables {}
174
+
175
+ @layer variables {}
176
+
177
+ @layer variables {}
178
+
179
+ @layer variables {}
180
+
181
+ @layer variables {}
182
+
183
+ @layer variables {}
184
+
185
+ @layer variables {}
186
+
187
+ @layer variables {}
188
+
189
+ /* Sub components for shell */
@@ -0,0 +1,105 @@
1
+ @use "@db-ux/core-foundations/build/styles/screen-sizes";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/animation";
4
+ @use "@db-ux/core-foundations/build/styles/colors";
5
+ @use "../../styles/internal/component";
6
+ @use "../../styles/internal/navigation-item";
7
+
8
+ $outside-position: calc(-200% + #{variables.$db-spacing-fixed-xs});
9
+
10
+ %db-navigation-item-group-menu-popover {
11
+ --db-popover-distance: #{variables.$db-spacing-fixed-xs};
12
+
13
+ @extend %component-border;
14
+
15
+ margin: 0;
16
+ display: flex;
17
+ flex-direction: column;
18
+ z-index: 70;
19
+ inset-inline-start: 0;
20
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
21
+ visibility: hidden;
22
+ max-block-size: 100vh;
23
+
24
+ &:empty {
25
+ display: none;
26
+ }
27
+
28
+ .db-navigation-item,
29
+ .db-navigation-item-group {
30
+ inline-size: 100%;
31
+
32
+ &::after {
33
+ margin-inline-start: auto;
34
+ }
35
+ }
36
+
37
+ // Mobile
38
+ @include screen-sizes.screen("md", "max") {
39
+ --db-navigation-item-group-menu-mobile: 1;
40
+
41
+ padding: variables.$db-spacing-fixed-md;
42
+ border: 0;
43
+ inline-size: 100%;
44
+ position: fixed;
45
+ overflow: hidden auto;
46
+ inset-block: calc(#{component.$min-mobile-header-height})
47
+ calc(
48
+ #{variables.$db-sizing-md} + #{variables.$db-spacing-fixed-xs} *
49
+ 2
50
+ );
51
+ }
52
+
53
+ // Desktop
54
+ @include screen-sizes.screen("md") {
55
+ border-radius: variables.$db-border-radius-sm;
56
+ box-shadow: variables.$db-elevation-md;
57
+ padding: variables.$db-spacing-fixed-sm;
58
+ block-size: fit-content;
59
+ inline-size: fit-content;
60
+ position: absolute;
61
+ min-inline-size: variables.$db-container-xs;
62
+ // TODO: This causes some flash for angular navigation item group
63
+ transition: visibility 1ms linear; // workaround to enable focus with keyboard
64
+
65
+ .db-navigation-item-group-back-button {
66
+ display: none;
67
+ }
68
+
69
+ &:is(:hover, :focus-within):not([data-force-close="true"]) {
70
+ visibility: visible;
71
+ }
72
+
73
+ &[data-force-close="true"] {
74
+ pointer-events: none;
75
+ }
76
+
77
+ .db-navigation-item-group-menu {
78
+ // 1px for box shadow
79
+ inset-block-start: calc(
80
+ -50% + #{variables.$db-spacing-fixed-xs} + 1px
81
+ );
82
+ inset-inline-start: calc(100% + #{variables.$db-spacing-fixed-xs});
83
+
84
+ @include navigation-item.navigation-item-group-menu-triangle-vertical;
85
+
86
+ &[data-outside-vy="bottom"] {
87
+ transform: translateY($outside-position);
88
+ }
89
+
90
+ &[data-outside-vx="right"] {
91
+ transform: translateX($outside-position);
92
+
93
+ &[data-outside-vy="bottom"] {
94
+ transform: translate($outside-position, $outside-position);
95
+ }
96
+
97
+ &::before {
98
+ inset-block: auto 0;
99
+ // inline-size: calc(var(--db-navigation-item-inline-size, 100%) - #{variables.$db-spacing-fixed-xs} - 2px);
100
+ transform: translateX(100%) scaleX(-1);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ }