@db-ux/core-components 4.13.1-angular-signal-forms13-577b861 → 4.14.0-shell-52d18db

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