@db-ux/core-components 4.14.0-shell-52d18db → 5.0.0

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 (103) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/agent/Best-Practise_Common-AI-Mistakes.md +3 -3
  3. package/build/components/accordion-item/accordion-item.css +0 -1
  4. package/build/components/brand/brand.css +0 -1
  5. package/build/components/brand/brand.scss +0 -1
  6. package/build/components/button/button.css +4 -9
  7. package/build/components/checkbox/checkbox.css +0 -3
  8. package/build/components/checkbox/checkbox.scss +0 -2
  9. package/build/components/custom-button/custom-button.css +8 -13
  10. package/build/components/custom-button/custom-button.scss +2 -3
  11. package/build/components/custom-select/custom-select.css +0 -1
  12. package/build/components/custom-select-list-item/custom-select-list-item.css +6 -2
  13. package/build/components/custom-select-list-item/custom-select-list-item.scss +8 -3
  14. package/build/components/drawer/drawer.css +32 -21
  15. package/build/components/drawer/drawer.scss +50 -26
  16. package/build/components/header/header.css +3 -10
  17. package/build/components/header/header.scss +7 -6
  18. package/build/components/icon/icon.css +0 -6
  19. package/build/components/infotext/infotext.css +0 -4
  20. package/build/components/infotext/infotext.scss +0 -2
  21. package/build/components/input/input.css +0 -5
  22. package/build/components/link/link.css +6 -9
  23. package/build/components/link/link.scss +8 -3
  24. package/build/components/navigation/navigation.css +1 -2
  25. package/build/components/navigation/navigation.scss +2 -2
  26. package/build/components/navigation-item/navigation-item.css +5 -28
  27. package/build/components/navigation-item/navigation-item.scss +5 -24
  28. package/build/components/notification/notification.css +1 -5
  29. package/build/components/notification/notification.scss +0 -2
  30. package/build/components/page/page.css +0 -8
  31. package/build/components/page/page.scss +0 -8
  32. package/build/components/select/select.css +0 -1
  33. package/build/components/stack/stack-web-component.css +0 -1
  34. package/build/components/stack/stack.css +0 -1
  35. package/build/components/switch/switch.css +0 -3
  36. package/build/components/switch/switch.scss +0 -1
  37. package/build/components/tab-item/tab-item.css +120 -98
  38. package/build/components/tab-item/tab-item.scss +89 -90
  39. package/build/components/tab-list/tab-list.css +38 -36
  40. package/build/components/tab-list/tab-list.scss +11 -9
  41. package/build/components/tab-panel/tab-panel.css +30 -4
  42. package/build/components/tab-panel/tab-panel.scss +60 -2
  43. package/build/components/table/table.css +0 -4
  44. package/build/components/table-row/table-row.css +0 -4
  45. package/build/components/table-row/table-row.scss +0 -5
  46. package/build/components/tabs/tabs.css +152 -263
  47. package/build/components/tabs/tabs.scss +243 -198
  48. package/build/components/tag/tag.css +2 -21
  49. package/build/components/tag/tag.scss +5 -7
  50. package/build/styles/absolute.css +12 -12
  51. package/build/styles/bundle.css +12 -12
  52. package/build/styles/index.css +11 -11
  53. package/build/styles/index.scss +3 -17
  54. package/build/styles/internal/_button-components.scss +7 -4
  55. package/build/styles/internal/_custom-elements.scss +8 -32
  56. package/build/styles/internal/_icon-passing.scss +9 -10
  57. package/build/styles/internal/_link-components.scss +1 -3
  58. package/build/styles/relative.css +12 -12
  59. package/build/styles/rollup.css +12 -12
  60. package/build/styles/wc-workarounds.css +1 -1
  61. package/build/styles/wc-workarounds.scss +0 -11
  62. package/build/styles/webpack.css +12 -12
  63. package/package.json +4 -4
  64. package/build/components/control-panel-brand/control-panel-brand.css +0 -53
  65. package/build/components/control-panel-brand/control-panel-brand.scss +0 -48
  66. package/build/components/control-panel-desktop/control-panel-desktop.css +0 -579
  67. package/build/components/control-panel-desktop/control-panel-desktop.scss +0 -30
  68. package/build/components/control-panel-flat-icon/control-panel-flat-icon.css +0 -258
  69. package/build/components/control-panel-flat-icon/control-panel-flat-icon.scss +0 -239
  70. package/build/components/control-panel-meta/control-panel-meta.css +0 -14
  71. package/build/components/control-panel-meta/control-panel-meta.scss +0 -15
  72. package/build/components/control-panel-mobile/control-panel-mobile.css +0 -442
  73. package/build/components/control-panel-mobile/control-panel-mobile.scss +0 -119
  74. package/build/components/control-panel-navigation/control-panel-navigation.css +0 -402
  75. package/build/components/control-panel-navigation/control-panel-navigation.scss +0 -186
  76. package/build/components/control-panel-navigation-item/control-panel-navigation-item.css +0 -87
  77. package/build/components/control-panel-navigation-item/control-panel-navigation-item.scss +0 -39
  78. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.css +0 -21
  79. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.scss +0 -129
  80. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.css +0 -35
  81. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.scss +0 -36
  82. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.css +0 -158
  83. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.scss +0 -80
  84. package/build/components/control-panel-primary-actions/control-panel-primary-actions.css +0 -12
  85. package/build/components/control-panel-primary-actions/control-panel-primary-actions.scss +0 -7
  86. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.css +0 -12
  87. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.scss +0 -7
  88. package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.css +0 -23
  89. package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.scss +0 -25
  90. package/build/components/shell/shell-desktop.css +0 -475
  91. package/build/components/shell/shell-desktop.scss +0 -105
  92. package/build/components/shell/shell-mobile.css +0 -441
  93. package/build/components/shell/shell-mobile.scss +0 -148
  94. package/build/components/shell/shell.css +0 -1670
  95. package/build/components/shell/shell.scss +0 -70
  96. package/build/components/shell-content/shell-content.css +0 -34
  97. package/build/components/shell-content/shell-content.scss +0 -53
  98. package/build/components/shell-sub-navigation/shell-sub-navigation.css +0 -51
  99. package/build/components/shell-sub-navigation/shell-sub-navigation.scss +0 -184
  100. package/build/styles/internal/_control-panel-actions.scss +0 -11
  101. package/build/styles/internal/_control-panel-desktop.scss +0 -412
  102. package/build/styles/internal/_control-panel-mobile.scss +0 -107
  103. package/build/styles/internal/_navigation-item.scss +0 -122
@@ -1,412 +0,0 @@
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
- }
@@ -1,107 +0,0 @@
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,122 +0,0 @@
1
- @use "sass:string";
2
- @use "@db-ux/core-foundations/build/styles/screen-sizes";
3
- @use "@db-ux/core-foundations/build/styles/variables";
4
- @use "@db-ux/core-foundations/build/styles/colors";
5
- @use "@db-ux/core-foundations/build/styles/fonts";
6
- @use "@db-ux/core-foundations/build/styles/helpers";
7
- @use "@db-ux/core-foundations/build/styles/icons";
8
- @use "../../styles/internal/custom-elements";
9
- @use "../../styles/internal/icon-passing";
10
- @use "../../styles/internal/component";
11
-
12
- @mixin direct-navigation-items {
13
- #{string.unquote(custom-elements.$control-panel-navigation-item)},
14
- #{string.unquote(custom-elements.$control-panel-navigation-item-group)} {
15
- @content;
16
- }
17
- }
18
-
19
- @mixin active-navigation-item() {
20
- &:has([aria-current="page"]),
21
- &:has([data-active="true"]),
22
- &[aria-current="page"],
23
- &[data-active="true"] {
24
- @content;
25
- }
26
- }
27
-
28
- @mixin navigation-item-group-menu-triangle-vertical() {
29
- &::before {
30
- content: "";
31
- position: absolute;
32
- inset-block-start: 0;
33
- inset-inline-start: 0;
34
- block-size: 100%;
35
- inline-size: var(--db-control-panel-navigation-item-inline-size, 100%);
36
- background-color: transparent;
37
- transform: translateX(-100%);
38
- clip-path: var(
39
- --db-control-panel-navigation-item-clip-path,
40
- polygon(
41
- 10% calc(1lh + #{variables.$db-spacing-fixed-2xs}),
42
- 100% 0,
43
- 100% 100%
44
- )
45
- );
46
- }
47
-
48
- &::after {
49
- content: "";
50
- position: absolute;
51
- padding: variables.$db-spacing-fixed-xs;
52
-
53
- // #{$db-spacing-fixed-3xs} for box shadow
54
- inset-block-start: #{variables.$db-spacing-fixed-3xs};
55
- inset-inline-end: calc(-1 * #{variables.$db-spacing-fixed-xs});
56
- block-size: calc(100% - 2 * #{variables.$db-spacing-fixed-3xs});
57
- inline-size: variables.$db-spacing-fixed-xs;
58
- }
59
- }
60
-
61
- %navigation-item-interactive-element {
62
- @extend %transparent-border;
63
- @extend %db-overwrite-font-size-md;
64
-
65
- background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
66
- cursor: pointer;
67
- inline-size: 100%;
68
- display: inline-flex;
69
- border-radius: variables.$db-border-radius-sm;
70
- padding: variables.$db-spacing-fixed-xs variables.$db-spacing-fixed-sm;
71
- text-align: start;
72
- align-items: center; // Centering the content vertically and horizontally
73
- min-block-size: variables.$db-sizing-md;
74
-
75
- @include helpers.hover {
76
- background-color: colors.$db-adaptive-bg-basic-transparent-full-hovered;
77
- }
78
-
79
- @include helpers.active {
80
- background-color: colors.$db-adaptive-bg-basic-transparent-full-pressed;
81
- }
82
- }
83
-
84
- %navigation-item {
85
- @extend %db-overwrite-font-size-md;
86
-
87
- position: relative;
88
- display: flex;
89
- block-size: fit-content;
90
-
91
- // Mobile
92
- @include screen-sizes.screen-min-max(
93
- (
94
- max: "sm"
95
- )
96
- ) {
97
- inline-size: 100%;
98
- }
99
-
100
- // Desktop
101
- @include screen-sizes.screen-min-max(
102
- (
103
- min: "sm"
104
- )
105
- ) {
106
- inline-size: fit-content;
107
- }
108
-
109
- &:has([aria-current="page"]),
110
- &:has([data-active="true"]),
111
- &[aria-current="page"],
112
- &[data-active="true"] {
113
- > :is(a, button) {
114
- font-weight: 700;
115
- }
116
- }
117
-
118
- &[aria-disabled="true"] {
119
- opacity: variables.$db-opacity-md;
120
- pointer-events: none;
121
- }
122
- }