@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.
- package/build/assets/icons/LICENCES.json +24 -0
- package/build/assets/icons/double_chevron_left.svg +1 -0
- package/build/assets/icons/double_chevron_right.svg +1 -0
- package/build/assets/icons/fonts/all/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_12/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_14/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_16/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_20/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_24/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_28/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_32/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_48/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/default_64/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_12/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_14/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_16/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_20/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_24/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_28/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_32/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_48/db-ux.woff2 +0 -0
- package/build/assets/icons/fonts/filled_64/db-ux.woff2 +0 -0
- package/build/assets/icons/house.svg +1 -0
- package/build/assets/icons/intermediary_stop.svg +1 -0
- package/build/components/accordion/accordion.css +5 -5
- package/build/components/button/button.scss +1 -1
- package/build/components/{brand/brand.css → control-panel-brand/control-panel-brand.css} +12 -6
- package/build/components/{brand/brand.scss → control-panel-brand/control-panel-brand.scss} +10 -1
- package/build/components/control-panel-desktop/control-panel-desktop.css +791 -0
- package/build/components/control-panel-desktop/control-panel-desktop.scss +29 -0
- package/build/components/control-panel-flat-icon-navigation/control-panel-flat-icon-navigation.css +192 -0
- package/build/components/control-panel-flat-icon-navigation/control-panel-flat-icon-navigation.scss +84 -0
- package/build/components/control-panel-meta-navigation/control-panel-meta-navigation.css +54 -0
- package/build/components/control-panel-meta-navigation/control-panel-meta-navigation.scss +12 -0
- package/build/components/control-panel-mobile/control-panel-mobile.css +716 -0
- package/build/components/control-panel-mobile/control-panel-mobile.scss +125 -0
- package/build/components/control-panel-primary-actions/control-panel-primary-actions.css +16 -0
- package/build/components/control-panel-primary-actions/control-panel-primary-actions.scss +8 -0
- package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.css +16 -0
- package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.scss +8 -0
- package/build/components/custom-select/custom-select.css +4 -4
- package/build/components/custom-select-dropdown/custom-select-dropdown.css +12 -12
- package/build/components/custom-select-list-item/custom-select-list-item.css +6 -6
- package/build/components/divider/divider.css +6 -6
- package/build/components/drawer/drawer.css +6 -5
- package/build/components/drawer/drawer.scss +6 -26
- package/build/components/navigation/navigation.css +394 -123
- package/build/components/navigation/navigation.scss +155 -72
- package/build/components/navigation-item/navigation-item.css +35 -418
- package/build/components/navigation-item/navigation-item.scss +8 -310
- package/build/components/navigation-item-group/navigation-item-group-menu-popover.css +189 -0
- package/build/components/navigation-item-group/navigation-item-group-menu-popover.scss +105 -0
- package/build/components/navigation-item-group/navigation-item-group-menu-tree.css +208 -0
- package/build/components/navigation-item-group/navigation-item-group-menu-tree.scss +40 -0
- package/build/components/navigation-item-group/navigation-item-group.css +432 -0
- package/build/components/navigation-item-group/navigation-item-group.scss +69 -0
- package/build/components/shell/shell-desktop.css +548 -0
- package/build/components/shell/shell-desktop.scss +187 -0
- package/build/components/shell/shell-mobile.css +633 -0
- package/build/components/shell/shell-mobile.scss +107 -0
- package/build/components/shell/shell.css +1876 -0
- package/build/components/shell/shell.scss +84 -0
- package/build/components/shell-sub-navigation/shell-sub-navigation.css +11 -0
- package/build/components/shell-sub-navigation/shell-sub-navigation.scss +15 -0
- package/build/components/stack/stack-web-component.css +1 -0
- package/build/components/stack/stack.css +1 -0
- package/build/components/tab-item/tab-item.scss +0 -1
- package/build/components/tab-list/tab-list.css +1 -1
- package/build/components/tabs/tabs.css +106 -23
- package/build/components/tabs/tabs.scss +25 -70
- package/build/components/tag/tag.css +5 -11
- package/build/components/tag/tag.scss +1 -5
- package/build/components/textarea/textarea.css +1 -1
- package/build/styles/absolute.css +6 -6
- package/build/styles/component-animations.css +1 -1
- package/build/styles/index.css +5 -5
- package/build/styles/index.scss +11 -3
- package/build/styles/internal/_control-panel-desktop.scss +455 -0
- package/build/styles/internal/_control-panel-mobile.scss +130 -0
- package/build/styles/internal/_custom-elements.scss +22 -4
- package/build/styles/internal/_icon-passing.scss +19 -9
- package/build/styles/internal/{_db-puls.scss → _indicator.scss} +37 -16
- package/build/styles/internal/_navigation-item.scss +122 -0
- package/build/styles/internal/_scrollbar.scss +71 -0
- package/build/styles/relative.css +6 -6
- package/build/styles/rollup.css +6 -6
- package/build/styles/wc-workarounds.css +1 -1
- package/build/styles/wc-workarounds.scss +11 -0
- package/build/styles/webpack.css +6 -6
- package/package.json +3 -7
- package/agent/_instructions.md +0 -9
- package/build/components/header/header.css +0 -759
- package/build/components/header/header.scss +0 -259
- package/build/components/page/page.css +0 -52
- package/build/components/page/page.scss +0 -52
|
@@ -1,324 +1,22 @@
|
|
|
1
|
-
@use "
|
|
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
|
-
|
|
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
|
|
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-
|
|
120
|
-
|
|
121
|
-
|
|
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
|
+
}
|