@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
@@ -4,9 +4,9 @@
4
4
  @forward "../components/divider/divider";
5
5
  @forward "../components/card/card";
6
6
  @forward "../components/input/input";
7
- @forward "../components/brand/brand";
8
- @forward "../components/header/header";
9
- @forward "../components/page/page";
7
+ @forward "../components/control-panel-brand/control-panel-brand";
8
+ @forward "../components/control-panel-desktop/control-panel-desktop";
9
+ @forward "../components/shell/shell";
10
10
  @forward "../components/link/link";
11
11
  @forward "../components/section/section";
12
12
  @forward "../components/infotext/infotext";
@@ -35,3 +35,11 @@
35
35
  @forward "../components/custom-select-dropdown/custom-select-dropdown";
36
36
  @forward "../components/custom-select-list/custom-select-list";
37
37
  @forward "../components/custom-select-list-item/custom-select-list-item";
38
+ @forward "../components/control-panel-mobile/control-panel-mobile";
39
+ @forward "../components/control-panel-meta-navigation/control-panel-meta-navigation";
40
+ @forward "../components/control-panel-primary-actions/control-panel-primary-actions";
41
+ @forward "../components/control-panel-secondary-actions/control-panel-secondary-actions";
42
+ @forward "../components/navigation-item-group/navigation-item-group";
43
+ @forward "../components/shell-sub-navigation/shell-sub-navigation";
44
+ @forward "../components/control-panel-flat-icon-navigation/control-panel-flat-icon-navigation";
45
+
@@ -0,0 +1,455 @@
1
+ @use "sass:string";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/helpers";
4
+ @use "@db-ux/core-foundations/build/styles/colors";
5
+ @use "@db-ux/core-foundations/build/styles/screen-sizes";
6
+ @use "./form-components";
7
+ @use "./custom-elements";
8
+ @use "./component";
9
+ @use "./navigation-item";
10
+ @use "./indicator";
11
+ @use "./scrollbar";
12
+
13
+ @mixin horizontal-navigation($scroll-buttons: true) {
14
+ @if ($scroll-buttons) {
15
+ @include scrollbar.set-overflow-scroll-buttons;
16
+
17
+ &:has(.overflow-scroll-left-button) {
18
+ > menu {
19
+ &::before {
20
+ content: "";
21
+ }
22
+ }
23
+ }
24
+
25
+ &:has(.overflow-scroll-right-button) {
26
+ > menu {
27
+ &::after {
28
+ content: "";
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ &:has(.db-button) {
35
+ > menu {
36
+ @if ($scroll-buttons) {
37
+ @include scrollbar.set-overflow-scroll-button-backgrounds;
38
+ }
39
+
40
+ @supports (scrollbar-width: none) {
41
+ scrollbar-width: none;
42
+ }
43
+
44
+ &::-webkit-scrollbar {
45
+ display: none;
46
+ }
47
+
48
+ &::before,
49
+ &::after {
50
+ block-size: calc(100% - #{variables.$db-border-width-3xs});
51
+ inset-block: 0;
52
+ flex: none;
53
+ }
54
+ }
55
+ }
56
+
57
+ > menu {
58
+ overflow: auto hidden;
59
+ scrollbar-gutter: stable both-edges;
60
+ flex-direction: row;
61
+
62
+ #{string.unquote(custom-elements.$navigation-item-group)} {
63
+ &:is(button),
64
+ > button {
65
+ &::after {
66
+ --db-icon-trailing: "chevron_down";
67
+ }
68
+ }
69
+
70
+ > .db-navigation-item-group-menu {
71
+ inset-block-start: calc(
72
+ 100% +
73
+ var(
74
+ --db-popover-distance,
75
+ #{variables.$db-spacing-fixed-md}
76
+ )
77
+ );
78
+
79
+ &::before {
80
+ content: "";
81
+ position: absolute;
82
+ inset-inline-start: 0;
83
+ inline-size: 100%;
84
+ // #{$db-spacing-fixed--3xs} for shadows
85
+ block-size: calc(
86
+ #{variables.$db-spacing-fixed-3xs} +
87
+ #{variables.$db-spacing-fixed-md}
88
+ );
89
+ inset-block-start: calc(
90
+ -1 * #{variables.$db-spacing-fixed-md} -
91
+ #{variables.$db-spacing-fixed-3xs}
92
+ );
93
+ }
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ @mixin vertical-navigation($main-navigation: true) {
100
+ @if ($main-navigation) {
101
+ padding-block: variables.$db-spacing-fixed-md;
102
+ }
103
+
104
+ #{string.unquote(custom-elements.$overflow-scroll-left-button)},
105
+ #{string.unquote(custom-elements.$overflow-scroll-right-button)} {
106
+ display: none;
107
+ }
108
+
109
+ &:not([data-variant]),
110
+ &[data-variant="popover"] {
111
+ > menu {
112
+ .db-navigation-item-group {
113
+ .db-navigation-item-group-menu {
114
+ inset-inline-start: calc(
115
+ 100% + #{variables.$db-spacing-fixed-xs}
116
+ );
117
+
118
+ @include navigation-item.navigation-item-group-menu-triangle-vertical;
119
+ }
120
+ }
121
+ }
122
+ }
123
+
124
+ > menu {
125
+ flex-direction: column;
126
+ padding-inline: variables.$db-spacing-fixed-lg;
127
+
128
+ .db-navigation-item-group,
129
+ .db-navigation-item {
130
+ inline-size: 100%;
131
+ }
132
+ }
133
+ }
134
+
135
+ %control-panel-desktop-horizontal-orientation {
136
+ border-block-end: variables.$db-border-width-3xs solid
137
+ colors.$db-adaptive-on-bg-basic-emphasis-60-default;
138
+ grid-template:
139
+ [meta]
140
+ "meta meta meta meta meta meta" auto
141
+ [padding-top]
142
+ ". . navigation . . ." #{variables.$db-spacing-fixed-md}
143
+ [others]
144
+ ". brand navigation primary secondary ." auto
145
+ [padding-bottom]
146
+ ". . navigation . . ." #{variables.$db-spacing-fixed-md} /
147
+ [padding-left] #{variables.$db-spacing-fixed-lg}
148
+ [brand] max-content
149
+ [navigation] 1fr
150
+ [primary] max-content
151
+ [secondary] max-content
152
+ [padding-right] #{variables.$db-spacing-fixed-lg};
153
+
154
+ > .db-control-panel-desktop-scroll-container {
155
+ display: contents;
156
+ }
157
+
158
+ .db-control-panel-brand {
159
+ padding-inline-end: variables.$db-spacing-fixed-lg;
160
+ }
161
+
162
+ .db-control-panel-primary-actions,
163
+ .db-control-panel-secondary-actions {
164
+ block-size: variables.$db-sizing-md;
165
+ }
166
+
167
+ .db-control-panel-primary-actions {
168
+ margin-inline-start: variables.$db-spacing-fixed-sm;
169
+ }
170
+
171
+ > .db-control-panel-desktop-button {
172
+ display: none;
173
+ }
174
+
175
+ &:has(.db-control-panel-primary-actions, .db-navigation) {
176
+ .db-control-panel-secondary-actions {
177
+ padding-inline-start: variables.$db-spacing-fixed-sm;
178
+
179
+ @include helpers.divider("left");
180
+ }
181
+ }
182
+
183
+ &:has(.db-navigation) {
184
+ .db-control-panel-brand {
185
+ @include helpers.divider("right", "after");
186
+ }
187
+ }
188
+
189
+ &:has(.db-control-panel-secondary-actions) {
190
+ .db-control-panel-primary-actions {
191
+ margin-inline-end: variables.$db-spacing-fixed-sm;
192
+ }
193
+ }
194
+
195
+ &[data-width="small"] {
196
+ margin-inline: auto;
197
+ max-inline-size: screen-sizes.$db-breakpoint-sm;
198
+ }
199
+
200
+ &[data-width="medium"] {
201
+ margin-inline: auto;
202
+ max-inline-size: screen-sizes.$db-breakpoint-md;
203
+ }
204
+
205
+ &[data-width="large"] {
206
+ margin-inline: auto;
207
+ max-inline-size: screen-sizes.$db-breakpoint-lg;
208
+ }
209
+
210
+ .db-navigation {
211
+ --db-overflow-scroll-button-inset-block: #{variables.$db-spacing-fixed-md};
212
+ --db-overflow-scroll-button-inset-inline-start: calc(
213
+ #{variables.$db-spacing-fixed-lg} / 2
214
+ );
215
+
216
+ display: grid;
217
+
218
+ @include horizontal-navigation;
219
+
220
+ > menu {
221
+ padding-block: variables.$db-spacing-fixed-md;
222
+
223
+ /* workaround for showing correct scrolling and focus */
224
+ padding-inline-start: calc(#{variables.$db-spacing-fixed-lg} / 2);
225
+ margin-inline-start: calc(#{variables.$db-spacing-fixed-lg} / 2);
226
+
227
+ @include navigation-item.direct-navigation-items {
228
+ @extend %indicator;
229
+
230
+ @include indicator.set-indicator-horizontal();
231
+
232
+ @include navigation-item.active-navigation-item {
233
+ @include indicator.show-indicator-horizontal();
234
+ }
235
+
236
+ @include navigation-item.direct-navigation-items {
237
+ /* Workaround for custom-elements */
238
+ &::after {
239
+ content: none;
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+
247
+ %control-panel-desktop-vertical-orientation {
248
+ border-inline-end: variables.$db-border-width-3xs solid
249
+ colors.$db-adaptive-on-bg-basic-emphasis-60-default;
250
+ block-size: 100%;
251
+ grid-template:
252
+ [padding-top] "." #{variables.$db-spacing-fixed-md}
253
+ [brand] "brand" auto
254
+ [scroll] "scroll" 1fr
255
+ [primary] "primary" auto
256
+ [secondary] "secondary" auto
257
+ [button] "button" auto;
258
+
259
+ @media screen and (prefers-reduced-motion: no-preference) {
260
+ transition: inline-size #{variables.$db-transition-straight-functional};
261
+
262
+ > .db-control-panel-desktop-button {
263
+ .db-button {
264
+ @media screen and (prefers-reduced-motion: reduce) {
265
+ &::before {
266
+ transition: none;
267
+ }
268
+ }
269
+
270
+ &::before {
271
+ transition: transform
272
+ #{variables.$db-transition-straight-functional};
273
+ }
274
+ }
275
+ }
276
+ }
277
+
278
+ &[data-open="false"] {
279
+ inline-size: auto;
280
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
281
+ inline-size: calc-size(auto, size);
282
+
283
+ .db-control-panel-primary-actions,
284
+ .db-control-panel-secondary-actions,
285
+ .db-control-panel-meta-navigation {
286
+ display: none;
287
+ }
288
+
289
+ .db-navigation {
290
+ > menu {
291
+ // Don't show navigation items for collapsed state (only icons)
292
+ @include navigation-item.direct-navigation-items {
293
+ --db-icon-margin-end: 0;
294
+
295
+ inline-size: variables.$db-sizing-md;
296
+ aspect-ratio: 1;
297
+ justify-content: center;
298
+ align-items: center;
299
+
300
+ &::before {
301
+ position: initial;
302
+ }
303
+
304
+ a {
305
+ font-size: 0;
306
+ position: absolute;
307
+ inset: 0;
308
+ }
309
+ }
310
+
311
+ #{string.unquote(custom-elements.$navigation-item)} {
312
+ .db-tooltip {
313
+ // We show tooltip for collapsed state
314
+ --db-show-popover-visibility: visible;
315
+ }
316
+ }
317
+ }
318
+ }
319
+
320
+ /* Hide navigation only if we have navigation-item-group */
321
+
322
+ .db-navigation-item-group,
323
+ .db-navigation-item:not([data-icon]) {
324
+ display: none;
325
+ }
326
+
327
+ &:not(:has(.db-navigation-item[data-icon])) {
328
+ .db-control-panel-brand {
329
+ &::after {
330
+ display: none;
331
+ }
332
+ }
333
+ }
334
+
335
+ .db-control-panel-brand {
336
+ font-size: 0;
337
+ gap: 0;
338
+ place-self: center;
339
+ }
340
+
341
+ > .db-control-panel-desktop-button {
342
+ justify-content: center;
343
+
344
+ .db-button {
345
+ &::before {
346
+ transform: form-components.$dropdown-icon-transform;
347
+ }
348
+ }
349
+ }
350
+ }
351
+
352
+ &[data-open="true"] {
353
+ /// Sets the inline-size (width) of the control-panel-desktop
354
+ /// @propertyname inline-size
355
+ /// @cssprop --db-control-panel-desktop-inline-size
356
+ /// @default var(--db-container-xs)
357
+ inline-size: var(
358
+ --db-control-panel-desktop-inline-size,
359
+ #{variables.$db-container-xs}
360
+ );
361
+ }
362
+
363
+ > .db-control-panel-desktop-button {
364
+ grid-area: button;
365
+ padding-block: variables.$db-spacing-fixed-xs;
366
+ display: flex;
367
+ justify-content: end;
368
+
369
+ @include helpers.divider("top");
370
+ }
371
+
372
+ .db-control-panel-brand,
373
+ .db-control-panel-primary-actions,
374
+ .db-control-panel-secondary-actions,
375
+ > .db-control-panel-desktop-button {
376
+ padding-inline: variables.$db-spacing-fixed-lg;
377
+ }
378
+
379
+ .db-control-panel-brand,
380
+ .db-control-panel-primary-actions,
381
+ .db-control-panel-secondary-actions {
382
+ margin-block-end: variables.$db-spacing-fixed-md;
383
+ }
384
+
385
+ > .db-control-panel-desktop-scroll-container {
386
+ display: grid;
387
+ overflow: hidden auto;
388
+ grid-area: scroll;
389
+ grid-template-areas: "navigation" "meta";
390
+
391
+ .db-control-panel-meta-navigation {
392
+ margin-block-start: auto;
393
+
394
+ @include helpers.divider("top");
395
+ }
396
+ }
397
+
398
+ &:has(
399
+ .db-control-panel-brand,
400
+ .db-control-panel-primary-actions,
401
+ .db-navigation,
402
+ .db-control-panel-meta-navigation
403
+ ) {
404
+ .db-control-panel-secondary-actions {
405
+ padding-block-start: variables.$db-spacing-fixed-sm;
406
+
407
+ @include helpers.divider("top");
408
+ }
409
+ }
410
+
411
+ &:has(.db-navigation) {
412
+ .db-control-panel-brand {
413
+ @include helpers.divider("bottom", "after");
414
+
415
+ &::after {
416
+ inset-block-end: calc(-1 * #{variables.$db-spacing-fixed-md});
417
+ }
418
+ }
419
+ }
420
+
421
+ &:has(
422
+ .db-control-panel-brand,
423
+ .db-navigation,
424
+ .db-control-panel-meta-navigation
425
+ ) {
426
+ .db-control-panel-primary-actions {
427
+ padding-block-start: variables.$db-spacing-fixed-sm;
428
+
429
+ @include helpers.divider("top");
430
+ }
431
+ }
432
+
433
+ .db-navigation {
434
+ @include vertical-navigation;
435
+
436
+ > menu {
437
+ @include navigation-item.direct-navigation-items {
438
+ @extend %indicator;
439
+
440
+ @include indicator.set-indicator-vertical();
441
+
442
+ @include navigation-item.active-navigation-item {
443
+ @include indicator.show-indicator-vertical();
444
+ }
445
+
446
+ @include navigation-item.direct-navigation-items {
447
+ /* Workaround for custom-elements */
448
+ &::after {
449
+ content: none;
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ }
@@ -0,0 +1,130 @@
1
+ @use "sass:string";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/helpers";
4
+ @use "@db-ux/core-foundations/build/styles/colors";
5
+ @use "./component";
6
+ @use "./custom-elements";
7
+ @use "../../components/drawer/drawer";
8
+
9
+ @mixin has-empty-drawer {
10
+ &:has(.db-control-panel-mobile-drawer-scroll-container:empty):not(
11
+ :has(.db-control-panel-secondary-actions)
12
+ ) {
13
+ @content;
14
+ }
15
+ }
16
+
17
+ %control-panel-mobile-position-top {
18
+ border-block-end: variables.$db-border-width-3xs solid
19
+ colors.$db-adaptive-on-bg-basic-emphasis-60-default;
20
+ grid-template-areas: var(
21
+ --db-control-panel-mobile-position-top-grid-areas,
22
+ "brand primary drawer-button"
23
+ );
24
+ grid-template-columns: var(
25
+ --db-control-panel-mobile-position-top-grid-columns,
26
+ [brand] 1fr [primary] min-content [drawer-button] min-content
27
+ );
28
+ justify-items: center;
29
+
30
+ .db-control-panel-primary-actions {
31
+ // fake divider margin
32
+ padding-inline-end: variables.$db-spacing-fixed-xs;
33
+
34
+ @include helpers.divider("right");
35
+
36
+ &::before {
37
+ margin-inline-start: variables.$db-spacing-fixed-xs;
38
+ }
39
+ }
40
+
41
+ .db-drawer {
42
+ > .db-drawer-container {
43
+ @extend %direction-right;
44
+
45
+ border-inline-start: component.$component-border;
46
+ }
47
+
48
+ &[open] {
49
+ .db-drawer-container {
50
+ @media screen and (prefers-reduced-motion: no-preference) {
51
+ animation: show-right-to-left
52
+ #{variables.$db-transition-straight-show};
53
+ }
54
+
55
+ &[hidden] {
56
+ @media screen and (prefers-reduced-motion: no-preference) {
57
+ animation: hide-right-to-left
58
+ #{variables.$db-transition-straight-hide};
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ %control-panel-mobile-position-bottom {
67
+ border-block-start: variables.$db-border-width-3xs solid
68
+ colors.$db-adaptive-on-bg-basic-emphasis-60-default;
69
+
70
+ .db-control-panel-brand {
71
+ font-size: 0;
72
+ gap: 0;
73
+ place-self: center;
74
+ }
75
+
76
+ > db-button > .db-control-panel-mobile-button,
77
+ > .db-control-panel-mobile-button {
78
+ place-self: center;
79
+ }
80
+
81
+ .db-drawer {
82
+ > .db-drawer-container {
83
+ @extend %direction-up;
84
+
85
+ border-block-start: component.$component-border;
86
+ }
87
+
88
+ &[open] {
89
+ .db-drawer-container {
90
+ @media screen and (prefers-reduced-motion: no-preference) {
91
+ animation: show-bottom-to-top
92
+ #{variables.$db-transition-straight-show};
93
+ }
94
+
95
+ &[hidden] {
96
+ @media screen and (prefers-reduced-motion: no-preference) {
97
+ animation: hide-bottom-to-top
98
+ #{variables.$db-transition-straight-hide};
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+
105
+ &:not([data-variant="flat-icon"]) {
106
+ grid-template-areas: "brand drawer-button primary";
107
+ grid-template-columns: min-content 1fr minmax(
108
+ #{variables.$db-sizing-md},
109
+ min-content
110
+ );
111
+ justify-content: space-evenly;
112
+ }
113
+
114
+ // Flat icon variant
115
+ &[data-variant="flat-icon"] {
116
+ .db-drawer,
117
+ .db-control-panel-brand,
118
+ .db-control-panel-primary-actions,
119
+ .db-control-panel-secondary-actions,
120
+ .db-control-panel-mobile-button,
121
+ .overflow-scroll-right-button,
122
+ .overflow-scroll-left-button {
123
+ display: none;
124
+ }
125
+
126
+ .db-control-panel-flat-icon-navigation {
127
+ display: initial;
128
+ }
129
+ }
130
+ }
@@ -1,10 +1,28 @@
1
1
  $custom-elements: //hygen-insert
2
2
 
3
- db-custom-select-list-item, db-custom-select-list,
3
+ db-control-panel-flat-icon-navigation, db-shell-sub-navigation,
4
+ db-navigation-item-group, db-control-panel-secondary-actions,
5
+ db-control-panel-primary-actions, db-control-panel-meta-navigation,
6
+ db-control-panel-mobile, db-custom-select-list-item, db-custom-select-list,
4
7
  db-custom-select-dropdown, db-custom-select-form-field, db-custom-select,
5
8
  db-stack, db-switch, db-tab-panel, db-tabs, db-tab-list, db-tab-item,
6
9
  db-tab-bar, db-tooltip, db-popover, db-textarea, db-navigation,
7
10
  db-accordion-item, db-accordion, db-badge, db-navigation-item, db-tag,
8
- db-radio, db-select, db-notification, db-brand, db-button, db-card,
9
- db-checkbox, db-divider, db-drawer, db-header, db-icon, db-infotext,
10
- db-input, db-link, db-page, db-section, db-tab;
11
+ db-radio, db-select, db-notification, db-control-panel-brand, db-button,
12
+ db-card, db-checkbox, db-divider, db-drawer, db-control-panel-desktop,
13
+ db-icon, db-infotext, db-input, db-link, db-shell, db-section, db-tab;
14
+
15
+ /* Sub components for shell */
16
+
17
+ @function get-sub-component($selector) {
18
+ @return "> * > #{$selector} > .#{$selector}, > #{$selector} > .#{$selector}, > .#{$selector}";
19
+ }
20
+
21
+ $control-panel-desktop: get-sub-component(db-control-panel-desktop);
22
+ $control-panel-mobile: get-sub-component(db-control-panel-mobile);
23
+ $navigation: get-sub-component(db-navigation);
24
+ $navigation-item: get-sub-component(db-navigation-item);
25
+ $navigation-item-group: get-sub-component(db-navigation-item-group);
26
+ $shell-sub-navigation: get-sub-component(db-shell-sub-navigation);
27
+ $overflow-scroll-right-button: "> .overflow-scroll-right-button, > db-button > .overflow-scroll-right-button";
28
+ $overflow-scroll-left-button: "> .overflow-scroll-left-button, > db-button > .overflow-scroll-left-button";
@@ -1,12 +1,21 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
2
  @use "@db-ux/core-foundations/build/styles/icons";
3
3
 
4
- @mixin icon-passing($inline-start: variables.$db-spacing-fixed-sm) {
4
+ @mixin icon-passing(
5
+ $inline-start: variables.$db-spacing-fixed-sm,
6
+ $block-start: calc(50% - 0.5em)
7
+ ) {
5
8
  &[data-icon]:not([data-show-icon="false"]) {
6
9
  &::before {
7
10
  position: absolute;
8
- inset-block-start: calc(50% - 0.5em);
9
- inset-inline-start: $inline-start;
11
+ inset-block-start: var(
12
+ --db-icon-passing-inset-block-start,
13
+ #{$block-start}
14
+ );
15
+ inset-inline-start: var(
16
+ --db-icon-passing-inset-inline-start,
17
+ #{$inline-start}
18
+ );
10
19
  pointer-events: none;
11
20
  z-index: 1;
12
21
  }
@@ -14,13 +23,14 @@
14
23
  a,
15
24
  button,
16
25
  label {
17
- --db-padding-inline-start: calc(
18
- #{$inline-start} + #{icons.$default-icon-margin-end} +
19
- var(--db-icon-font-size)
20
- );
21
-
22
26
  /* stylelint-disable-next-line db-ux/use-spacings */
23
- padding-inline-start: var(--db-padding-inline-start);
27
+ padding-inline-start: var(
28
+ --db-icon-passing-padding-inline-start,
29
+ calc(
30
+ #{$inline-start} + #{icons.$default-icon-margin-end} +
31
+ var(--db-icon-font-size)
32
+ )
33
+ );
24
34
  }
25
35
  }
26
36
  }