@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,402 +0,0 @@
1
- .db-visually-hidden,
2
- [data-visually-hidden=true] {
3
- position: absolute !important;
4
- inset-block-start: 0 !important;
5
- inline-size: 1px !important;
6
- block-size: 1px !important;
7
- overflow: hidden !important;
8
- clip: rect(0, 0, 0, 0) !important;
9
- white-space: nowrap !important;
10
- border: 0 !important;
11
- padding: 0 !important;
12
- pointer-events: none !important;
13
- }
14
-
15
- /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
16
- /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
17
- /* Variants for adaptive components like input, select, notification, ... */
18
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item:not([data-icon]) a:not([data-show-icon-leading=false])::before, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:not([data-show-icon-leading=false])::before {
19
- color: var(--db-icon-color, inherit);
20
- display: inline-block;
21
- /*** icon - placeholder ***/
22
- font-family: var(--db-icon-font-family, var(--db-icon-default-font-family, "db-ux-default", "icon-font-fallback")) !important;
23
- font-size: var(--db-icon-font-size, 1.5rem);
24
- -webkit-font-smoothing: antialiased;
25
- -moz-osx-font-smoothing: grayscale;
26
- font-style: normal;
27
- font-variant: normal;
28
- font-weight: var(--db-icon-font-weight, normal);
29
- line-height: 1;
30
- /* stylelint-disable-next-line declaration-property-value-no-unknown */
31
- speak: none;
32
- /* stylelint-disable-next-line declaration-property-value-no-unknown */
33
- speak: never;
34
- text-transform: none;
35
- overflow: clip;
36
- vertical-align: var(--db-icon-vertical-align, middle);
37
- /* stylelint-disable-next-line db-ux/use-sizing */
38
- block-size: var(--db-icon-font-size, 1.5rem);
39
- /* stylelint-disable-next-line db-ux/use-sizing */
40
- inline-size: var(--db-icon-font-size, 1.5rem);
41
- aspect-ratio: 1;
42
- flex-shrink: 0;
43
- content: var(--db-icon, attr(data-icon));
44
- }
45
- @supports (content: ""/"") {
46
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item:not([data-icon]) a:not([data-show-icon-leading=false])::before, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:not([data-show-icon-leading=false])::before {
47
- content: var(--db-icon, attr(data-icon))/"";
48
- }
49
- }
50
- @media aural {
51
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item:not([data-icon]) a:not([data-show-icon-leading=false])::before, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:not([data-show-icon-leading=false])::before {
52
- content: none;
53
- }
54
- }
55
- @media speech {
56
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item:not([data-icon]) a:not([data-show-icon-leading=false])::before, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:not([data-show-icon-leading=false])::before {
57
- content: none;
58
- }
59
- }
60
-
61
- @keyframes popover-animation {
62
- 0% {
63
- pointer-events: none;
64
- opacity: 0;
65
- transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
66
- }
67
- 100% {
68
- pointer-events: auto;
69
- opacity: 1;
70
- transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
71
- }
72
- }
73
- @keyframes rotate {
74
- 100% {
75
- transform: rotate(1turn);
76
- }
77
- }
78
- /* Sub components for shell */
79
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
80
- --db-popover-distance: var(--db-spacing-fixed-xs);
81
- --db-control-panel-navigation-item-group-menu-popover: 1;
82
- margin: 0;
83
- display: flex;
84
- flex-direction: column;
85
- z-index: 70;
86
- background-color: var(--db-adaptive-bg-basic-level-1-default);
87
- visibility: hidden;
88
- max-block-size: 100vh;
89
- }
90
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu:empty, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu:empty {
91
- display: none;
92
- }
93
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item,
94
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group,
95
- .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group {
96
- inline-size: 100%;
97
- }
98
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item::after,
99
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group::after,
100
- .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group::after {
101
- margin-inline-start: auto;
102
- }
103
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
104
- /* jscpd:ignore-start */
105
- /* stylelint-disable-next-line media-query-no-invalid */
106
- }
107
- @media (width <= 48em) {
108
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
109
- --db-control-panel-navigation-item-group-menu-mobile: 1;
110
- padding: var(--db-spacing-fixed-xs) max(var(--db-spacing-fixed-sm), max(env(safe-area-inset-left), env(safe-area-inset-right)));
111
- inline-size: 100%;
112
- max-inline-size: var(--db-drawer-max-width, var(--db-drawer-max-width-horizontal));
113
- position: fixed;
114
- overflow: hidden auto;
115
- inset-inline-end: 0;
116
- inset-block: calc(calc(var(--db-sizing-md) + 2 * var(--db-spacing-fixed-xs)) + env(safe-area-inset-top)) calc(calc(var(--db-sizing-md) + 2 * var(--db-spacing-fixed-xs)) + env(safe-area-inset-bottom));
117
- }
118
- }
119
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
120
- /* stylelint-disable-next-line at-rule-empty-line-before */
121
- /* jscpd:ignore-end */
122
- /* stylelint-disable-next-line media-query-no-invalid */
123
- }
124
- @media (48em < width) {
125
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
126
- inset-inline-start: 0;
127
- border: var(--db-border-width-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
128
- border-radius: var(--db-border-radius-sm);
129
- box-shadow: var(--db-elevation-md);
130
- padding: var(--db-spacing-fixed-sm);
131
- block-size: fit-content;
132
- position: absolute;
133
- inline-size: var(--db-container-xs);
134
- gap: var(--db-spacing-fixed-xs);
135
- transition: visibility 1ms linear;
136
- }
137
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-back-button, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-back-button {
138
- display: none;
139
- }
140
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu:is(:hover, :focus-within):not([data-force-close=true]), .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu:is(:hover, :focus-within):not([data-force-close=true]) {
141
- visibility: visible;
142
- }
143
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group [data-force-close=true].db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group [data-force-close=true].db-control-panel-navigation-item-group-menu {
144
- pointer-events: none;
145
- }
146
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu {
147
- inset-block-start: calc(-50% + var(--db-spacing-fixed-xs) + 1px);
148
- inset-inline-start: calc(100% + var(--db-spacing-fixed-xs));
149
- }
150
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu::before, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu::before {
151
- content: "";
152
- position: absolute;
153
- inset-block-start: 0;
154
- inset-inline-start: 0;
155
- block-size: 100%;
156
- inline-size: var(--db-control-panel-navigation-item-inline-size, 100%);
157
- background-color: transparent;
158
- transform: translateX(-100%);
159
- clip-path: var(--db-control-panel-navigation-item-clip-path, polygon(10% calc(1lh + var(--db-spacing-fixed-2xs)), 100% 0, 100% 100%));
160
- }
161
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu::after {
162
- content: "";
163
- position: absolute;
164
- padding: var(--db-spacing-fixed-xs);
165
- inset-block-start: var(--db-spacing-fixed-3xs);
166
- inset-inline-end: calc(-1 * var(--db-spacing-fixed-xs));
167
- block-size: calc(100% - 2 * var(--db-spacing-fixed-3xs));
168
- inline-size: var(--db-spacing-fixed-xs);
169
- }
170
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vy=bottom], .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vy=bottom] {
171
- transform: translateY(calc(-200% + var(--db-spacing-fixed-xs)));
172
- }
173
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vx=right], .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vx=right] {
174
- transform: translateX(calc(-200% + var(--db-spacing-fixed-xs)));
175
- }
176
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vx=right][data-outside-vy=bottom], .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vx=right][data-outside-vy=bottom] {
177
- transform: translate(calc(-200% + var(--db-spacing-fixed-xs)), calc(-200% + var(--db-spacing-fixed-xs)));
178
- }
179
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vx=right]::before, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu[data-outside-vx=right]::before {
180
- inset-block: auto 0;
181
- transform: translateX(100%) scaleX(-1);
182
- }
183
- }
184
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
185
- /* stylelint-disable-next-line at-rule-empty-line-before */
186
- }
187
-
188
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
189
- margin: 0;
190
- display: flex;
191
- flex-direction: column;
192
- block-size: 0;
193
- visibility: hidden;
194
- overflow: hidden;
195
- gap: var(--db-spacing-fixed-xs);
196
- /* stylelint-disable-next-line db-ux/use-spacings */
197
- padding-inline-start: 1lh;
198
- }
199
- @media screen and (prefers-reduced-motion: no-preference) {
200
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
201
- transition: block-size var(--db-transition-straight-emotional);
202
- }
203
- }
204
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu:empty {
205
- display: none;
206
- }
207
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-back-button {
208
- display: none;
209
- }
210
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group [data-force-mobile=true].db-control-panel-navigation-item-group-menu {
211
- --db-control-panel-navigation-item-group-menu-mobile: 1;
212
- }
213
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
214
- /* stylelint-disable-next-line media-query-no-invalid */
215
- }
216
- @media (max-width: 63.9375em) {
217
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
218
- --db-control-panel-navigation-item-group-menu-mobile: 1;
219
- }
220
- }
221
-
222
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item[data-icon-leading]:not([data-show-icon-leading=false])::before, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item[data-icon-leading]:not([data-show-icon-leading=false])::before, .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item[data-icon]:not([data-show-icon=false])::before, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item[data-icon]:not([data-show-icon=false])::before {
223
- position: absolute;
224
- inset-block-start: var(--db-icon-passing-inset-block-start, calc(50% - 0.5em));
225
- inset-inline-start: var(--db-icon-passing-inset-inline-start, var(--db-spacing-fixed-sm));
226
- pointer-events: none;
227
- z-index: 1;
228
- }
229
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item[data-icon-leading]:not([data-show-icon-leading=false]) > :is(label, button, a), .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item[data-icon-leading]:not([data-show-icon-leading=false]) > :is(label, button, a),
230
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item[data-icon-leading]:not([data-show-icon-leading=false]) > * > :is(label, button, a),
231
- .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item[data-icon-leading]:not([data-show-icon-leading=false]) > * > :is(label, button, a), .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item[data-icon]:not([data-show-icon=false]) > :is(label, button, a), .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item[data-icon]:not([data-show-icon=false]) > :is(label, button, a),
232
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item[data-icon]:not([data-show-icon=false]) > * > :is(label, button, a),
233
- .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item[data-icon]:not([data-show-icon=false]) > * > :is(label, button, a) {
234
- /* stylelint-disable-next-line db-ux/use-spacings */
235
- padding-inline-start: var(--db-icon-passing-padding-inline-start, calc(var(--db-spacing-fixed-sm) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) + var(--db-icon-font-size)));
236
- }
237
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group[data-icon-leading]:not([data-show-icon-leading=false])::before, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group[data-icon-leading]:not([data-show-icon-leading=false])::before, .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group[data-icon]:not([data-show-icon=false])::before, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group[data-icon]:not([data-show-icon=false])::before {
238
- position: absolute;
239
- inset-block-start: var(--db-icon-passing-inset-block-start, var(--db-spacing-fixed-xs));
240
- inset-inline-start: var(--db-icon-passing-inset-inline-start, var(--db-spacing-fixed-sm));
241
- pointer-events: none;
242
- z-index: 1;
243
- }
244
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group[data-icon-leading]:not([data-show-icon-leading=false]) > :is(label, button, a), .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group[data-icon-leading]:not([data-show-icon-leading=false]) > :is(label, button, a),
245
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group[data-icon-leading]:not([data-show-icon-leading=false]) > * > :is(label, button, a),
246
- .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group[data-icon-leading]:not([data-show-icon-leading=false]) > * > :is(label, button, a), .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group[data-icon]:not([data-show-icon=false]) > :is(label, button, a), .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group[data-icon]:not([data-show-icon=false]) > :is(label, button, a),
247
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group[data-icon]:not([data-show-icon=false]) > * > :is(label, button, a),
248
- .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group[data-icon]:not([data-show-icon=false]) > * > :is(label, button, a) {
249
- /* stylelint-disable-next-line db-ux/use-spacings */
250
- padding-inline-start: var(--db-icon-passing-padding-inline-start, calc(var(--db-spacing-fixed-sm) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) + var(--db-icon-font-size)));
251
- }
252
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group {
253
- /* stylelint-disable-next-line media-query-no-invalid */
254
- }
255
- @media (width <= 48em) {
256
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button {
257
- /* Remove the highlight here because we have an overlay for sub-navigations */
258
- -webkit-tap-highlight-color: transparent;
259
- }
260
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true] ~ .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true] ~ .db-control-panel-navigation-item-group-menu {
261
- visibility: visible;
262
- }
263
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true] ~ .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true] ~ .db-control-panel-navigation-item-group-menu .db-control-panel-navigation-item-group-menu {
264
- inset-block: 0;
265
- }
266
- }
267
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group {
268
- /* stylelint-disable-next-line at-rule-empty-line-before */
269
- /* stylelint-disable-next-line media-query-no-invalid */
270
- }
271
- @media (48em < width) {
272
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:is(:hover, :focus-visible):not(:has(~ .db-control-panel-navigation-item-group-menu[data-force-close=true])) ~ .db-control-panel-navigation-item-group-menu, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:is(:hover, :focus-visible):not(:has(~ .db-control-panel-navigation-item-group-menu[data-force-close=true])) ~ .db-control-panel-navigation-item-group-menu {
273
- visibility: visible;
274
- }
275
- }
276
- @media screen and (48em < width) and (prefers-reduced-motion: no-preference) {
277
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button::after {
278
- transition: transform var(--db-transition-straight-emotional);
279
- }
280
- }
281
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group {
282
- /* stylelint-disable-next-line at-rule-empty-line-before */
283
- }
284
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after {
285
- --db-icon-trailing: "chevron_right";
286
- margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
287
- content: var(--db-icon-trailing, attr(data-icon-trailing));
288
- }
289
- @supports (content: ""/"") {
290
- .db-control-panel-navigation:not([data-variant]) .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after, .db-control-panel-navigation[data-variant=popover] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button-end-slot-container:not([data-show-icon-trailing=false])::after {
291
- content: var(--db-icon-trailing, attr(data-icon-trailing))/"";
292
- }
293
- }
294
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item:not([data-icon])::before {
295
- content: none;
296
- }
297
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item:not([data-icon]) a:not([data-show-icon-leading=false])::before {
298
- --db-icon: "circle_small";
299
- margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
300
- }
301
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item[data-icon][data-icon-leading]:not([data-show-icon-leading=false])::before, .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item[data-icon][data-icon]:not([data-show-icon=false])::before {
302
- position: absolute;
303
- inset-block-start: var(--db-icon-passing-inset-block-start, calc(50% - 0.5em));
304
- inset-inline-start: var(--db-icon-passing-inset-inline-start, var(--db-spacing-fixed-sm));
305
- pointer-events: none;
306
- z-index: 1;
307
- }
308
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item[data-icon][data-icon-leading]:not([data-show-icon-leading=false]) > :is(label, button, a),
309
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item[data-icon][data-icon-leading]:not([data-show-icon-leading=false]) > * > :is(label, button, a), .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item[data-icon][data-icon]:not([data-show-icon=false]) > :is(label, button, a),
310
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item[data-icon][data-icon]:not([data-show-icon=false]) > * > :is(label, button, a) {
311
- /* stylelint-disable-next-line db-ux/use-spacings */
312
- padding-inline-start: var(--db-icon-passing-padding-inline-start, calc(var(--db-spacing-fixed-sm) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) + var(--db-icon-font-size)));
313
- }
314
- .db-control-panel-navigation[data-variant=tree] a,
315
- .db-control-panel-navigation[data-variant=tree] button {
316
- justify-content: flex-start;
317
- }
318
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group {
319
- display: flex;
320
- flex-direction: column;
321
- }
322
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group::before {
323
- content: none;
324
- }
325
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:not([data-show-icon-leading=false])::before {
326
- --db-icon: "chevron_right";
327
- margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
328
- }
329
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true]::before {
330
- transform: rotate(90deg);
331
- pointer-events: none;
332
- }
333
- @media screen and (prefers-reduced-motion: no-preference) {
334
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true]::before {
335
- transition: transform var(--db-transition-straight-emotional);
336
- }
337
- }
338
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true] ~ .db-control-panel-navigation-item-group-menu {
339
- visibility: visible;
340
- block-size: auto;
341
- /* stylelint-disable-next-line declaration-property-value-no-unknown,db-ux/use-sizing */
342
- block-size: calc-size(auto, size);
343
- }
344
- .db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button[aria-expanded=true] + .db-control-panel-navigation-item-group-menu {
345
- padding-block: var(--db-spacing-fixed-xs);
346
- }
347
- [data-show-tree-line=true].db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu {
348
- --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
349
- position: var(--db-tooltip-parent-position, relative);
350
- }
351
- [data-show-tree-line=true].db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu[data-emphasis=strong] {
352
- --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
353
- }
354
- [data-show-tree-line=true].db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu::before {
355
- content: "";
356
- background-color: var(--db-divider-bg-color);
357
- position: absolute;
358
- /* jscpd:ignore-start */
359
- inline-size: var(--db-border-width-3xs);
360
- inset-inline-start: 0;
361
- inset-block: 0;
362
- /* stylelint-disable-next-line db-ux/use-border-color */
363
- }
364
- @media (forced-colors: active) {
365
- [data-show-tree-line=true].db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu::before {
366
- /* stylelint-disable-next-line db-ux/use-border-color */
367
- border-inline-start: var(--db-border-width-3xs) solid var(--db-divider-bg-color);
368
- }
369
- }
370
- [data-show-tree-line=true].db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu::before {
371
- /* stylelint-disable-next-line at-rule-empty-line-before */
372
- /* jscpd:ignore-end */
373
- }
374
- [data-show-tree-line=true].db-control-panel-navigation[data-variant=tree] .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-menu::before {
375
- inset-inline-start: 1lh;
376
- inset-block: var(--db-spacing-fixed-xs);
377
- }
378
-
379
- .db-control-panel-navigation {
380
- inline-size: 100%;
381
- position: relative;
382
- /* stylelint-disable-next-line media-query-no-invalid */
383
- }
384
- @media (min-width: 64em) {
385
- .db-control-panel-navigation:not([data-force-mobile]), .db-control-panel-navigation[data-force-mobile=false] {
386
- inline-size: auto;
387
- }
388
- }
389
- .db-control-panel-navigation {
390
- /* stylelint-disable-next-line at-rule-empty-line-before */
391
- }
392
- .db-control-panel-navigation > menu {
393
- display: flex;
394
- flex-direction: column;
395
- padding: 0;
396
- margin: 0;
397
- gap: var(--db-spacing-fixed-xs);
398
- }
399
- .db-control-panel-navigation .overflow-scroll-left-button,
400
- .db-control-panel-navigation .overflow-scroll-right-button {
401
- display: none;
402
- }
@@ -1,186 +0,0 @@
1
- @use "@db-ux/core-foundations/build/styles/variables";
2
- @use "@db-ux/core-foundations/build/styles/screen-sizes";
3
- @use "@db-ux/core-foundations/build/styles/icons";
4
- @use "@db-ux/core-foundations/build/styles/animation";
5
- @use "@db-ux/core-foundations/build/styles/helpers";
6
- @use "../../styles/internal/form-components";
7
- @use "../../styles/internal/icon-passing";
8
- @use "../control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover";
9
- @use "../control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree";
10
-
11
- %popover-navigation {
12
- .db-control-panel-navigation-item {
13
- @include icon-passing.icon-passing;
14
- }
15
-
16
- .db-control-panel-navigation-item-group {
17
- @include icon-passing.icon-passing(
18
- variables.$db-spacing-fixed-sm,
19
- variables.$db-spacing-fixed-xs
20
- );
21
-
22
- // MOBILE Sliding
23
- @include screen-sizes.screen-min-max(
24
- (
25
- max: "sm"
26
- )
27
- ) {
28
- .db-control-panel-navigation-item-group-expand-button {
29
- /* Remove the highlight here because we have an overlay for sub-navigations */
30
- -webkit-tap-highlight-color: transparent;
31
-
32
- // show/hide sub-navigation by click
33
- &[aria-expanded="true"] {
34
- ~ .db-control-panel-navigation-item-group-menu {
35
- visibility: visible;
36
-
37
- .db-control-panel-navigation-item-group-menu {
38
- inset-block: 0;
39
- }
40
- }
41
- }
42
- }
43
- }
44
-
45
- // DESKTOP: show sub-navigation on hover
46
- @include screen-sizes.screen-min-max(
47
- (
48
- min: "sm"
49
- )
50
- ) {
51
- .db-control-panel-navigation-item-group-expand-button {
52
- &::after {
53
- @media screen and (prefers-reduced-motion: no-preference) {
54
- transition: form-components.$dropdown-icon-transition;
55
- }
56
- }
57
-
58
- &:is(:hover, :focus-visible):not(
59
- :has(
60
- ~ .db-control-panel-navigation-item-group-menu[data-force-close="true"]
61
- )
62
- ) {
63
- ~ .db-control-panel-navigation-item-group-menu {
64
- visibility: visible;
65
- }
66
- }
67
- }
68
- }
69
-
70
- .db-control-panel-navigation-item-group-expand-button-end-slot-container {
71
- // default icon for navigation
72
- @include icons.set-icon("chevron_right", "after");
73
- }
74
-
75
- .db-control-panel-navigation-item-group-menu {
76
- @extend %db-control-panel-navigation-item-group-menu-popover;
77
- }
78
- }
79
- }
80
-
81
- %tree-navigation {
82
- .db-control-panel-navigation-item {
83
- &:not([data-icon]) {
84
- &::before {
85
- content: none;
86
- }
87
-
88
- a {
89
- @include icons.set-icon("circle_small");
90
- }
91
- }
92
-
93
- &[data-icon] {
94
- @include icon-passing.icon-passing;
95
- }
96
- }
97
-
98
- a,
99
- button {
100
- justify-content: flex-start;
101
- }
102
-
103
- .db-control-panel-navigation-item-group {
104
- display: flex;
105
- flex-direction: column;
106
-
107
- &::before {
108
- content: none;
109
- }
110
-
111
- .db-control-panel-navigation-item-group-expand-button {
112
- @include icons.set-icon("chevron_right");
113
-
114
- &[aria-expanded="true"] {
115
- &::before {
116
- transform: rotate(90deg);
117
- pointer-events: none;
118
-
119
- @media screen and (prefers-reduced-motion: no-preference) {
120
- transition: form-components.$dropdown-icon-transition;
121
- }
122
- }
123
-
124
- ~ .db-control-panel-navigation-item-group-menu {
125
- visibility: visible;
126
- block-size: auto;
127
- /* stylelint-disable-next-line declaration-property-value-no-unknown,db-ux/use-sizing */
128
- block-size: calc-size(auto, size);
129
- }
130
-
131
- + .db-control-panel-navigation-item-group-menu {
132
- padding-block: variables.$db-spacing-fixed-xs;
133
- }
134
- }
135
- }
136
-
137
- .db-control-panel-navigation-item-group-menu {
138
- @extend %db-control-panel-navigation-item-group-menu-tree;
139
- }
140
- }
141
-
142
- &[data-show-tree-line="true"] {
143
- .db-control-panel-navigation-item-group {
144
- .db-control-panel-navigation-item-group-menu {
145
- @include helpers.divider("left");
146
-
147
- &::before {
148
- inset-inline-start: 1lh;
149
- inset-block: variables.$db-spacing-fixed-xs;
150
- }
151
- }
152
- }
153
- }
154
- }
155
-
156
- .db-control-panel-navigation {
157
- inline-size: 100%;
158
- position: relative;
159
-
160
- @include screen-sizes.screen("md") {
161
- inline-size: auto;
162
- }
163
-
164
- > menu {
165
- display: flex;
166
- flex-direction: column;
167
- padding: 0;
168
- margin: 0;
169
- gap: variables.$db-spacing-fixed-xs;
170
- }
171
-
172
- &:not([data-variant]),
173
- &[data-variant="popover"] {
174
- @extend %popover-navigation;
175
- }
176
-
177
- &[data-variant="tree"] {
178
- @extend %tree-navigation;
179
- }
180
-
181
- .overflow-scroll-left-button,
182
- .overflow-scroll-right-button {
183
- // We hide the overflow buttons, only showing them in horizontal desktop
184
- display: none;
185
- }
186
- }