@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.
- package/CHANGELOG.md +12 -0
- package/agent/Best-Practise_Common-AI-Mistakes.md +3 -3
- package/build/components/accordion/accordion.css +33 -6
- package/build/components/accordion/accordion.scss +25 -0
- package/build/components/accordion-item/accordion-item.css +9 -14
- package/build/components/accordion-item/accordion-item.scss +5 -3
- package/build/components/badge/badge.css +1 -1
- package/build/components/badge/badge.scss +1 -1
- package/build/components/button/button.css +0 -8
- package/build/components/button/button.scss +0 -11
- package/build/components/checkbox/checkbox.css +6 -11
- package/build/components/control-panel-brand/control-panel-brand.css +53 -0
- package/build/components/control-panel-brand/control-panel-brand.scss +48 -0
- package/build/components/control-panel-desktop/control-panel-desktop.css +579 -0
- package/build/components/control-panel-desktop/control-panel-desktop.scss +30 -0
- package/build/components/control-panel-flat-icon/control-panel-flat-icon.css +258 -0
- package/build/components/control-panel-flat-icon/control-panel-flat-icon.scss +239 -0
- package/build/components/control-panel-meta/control-panel-meta.css +14 -0
- package/build/components/control-panel-meta/control-panel-meta.scss +15 -0
- package/build/components/control-panel-mobile/control-panel-mobile.css +442 -0
- package/build/components/control-panel-mobile/control-panel-mobile.scss +119 -0
- package/build/components/control-panel-navigation/control-panel-navigation.css +402 -0
- package/build/components/control-panel-navigation/control-panel-navigation.scss +186 -0
- package/build/components/control-panel-navigation-item/control-panel-navigation-item.css +87 -0
- package/build/components/control-panel-navigation-item/control-panel-navigation-item.scss +39 -0
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.css +21 -0
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.scss +129 -0
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.css +35 -0
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.scss +36 -0
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.css +158 -0
- package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.scss +80 -0
- package/build/components/control-panel-primary-actions/control-panel-primary-actions.css +12 -0
- package/build/components/control-panel-primary-actions/control-panel-primary-actions.scss +7 -0
- package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.css +12 -0
- package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.scss +7 -0
- package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.css +23 -0
- package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.scss +25 -0
- package/build/components/custom-button/custom-button.css +15 -20
- package/build/components/custom-button/custom-button.scss +1 -1
- package/build/components/custom-select/custom-select.css +17 -16
- package/build/components/custom-select/custom-select.scss +1 -1
- package/build/components/custom-select-dropdown/custom-select-dropdown.css +39 -26
- package/build/components/custom-select-form-field/custom-select-form-field.css +6 -11
- package/build/components/custom-select-list/custom-select-list.css +6 -11
- package/build/components/custom-select-list-item/custom-select-list-item.css +24 -19
- package/build/components/divider/divider.css +18 -8
- package/build/components/drawer/drawer.css +79 -157
- package/build/components/drawer/drawer.scss +130 -170
- package/build/components/drawer-footer/drawer-footer.css +34 -0
- package/build/components/drawer-footer/drawer-footer.scss +11 -0
- package/build/components/drawer-header/drawer-header.css +38 -0
- package/build/components/drawer-header/drawer-header.scss +17 -0
- package/build/components/header/header.css +81 -46
- package/build/components/header/header.scss +34 -21
- package/build/components/input/input.css +6 -11
- package/build/components/link/link.css +12 -2
- package/build/components/navigation/navigation.css +6 -11
- package/build/components/navigation-item/navigation-item.css +45 -30
- package/build/components/navigation-item/navigation-item.scss +28 -13
- package/build/components/notification/notification.css +12 -2
- package/build/components/page/page.css +8 -0
- package/build/components/page/page.scss +8 -0
- package/build/components/radio/radio.css +6 -11
- package/build/components/select/select.css +6 -11
- package/build/components/shell/shell-desktop.css +475 -0
- package/build/components/shell/shell-desktop.scss +105 -0
- package/build/components/shell/shell-mobile.css +441 -0
- package/build/components/shell/shell-mobile.scss +148 -0
- package/build/components/shell/shell.css +1670 -0
- package/build/components/shell/shell.scss +70 -0
- package/build/components/shell-content/shell-content.css +34 -0
- package/build/components/shell-content/shell-content.scss +53 -0
- package/build/components/shell-sub-navigation/shell-sub-navigation.css +51 -0
- package/build/components/shell-sub-navigation/shell-sub-navigation.scss +184 -0
- package/build/components/stack/stack-web-component.css +1 -0
- package/build/components/stack/stack.css +1 -0
- package/build/components/switch/switch.css +6 -11
- package/build/components/tab-item/tab-item.css +6 -11
- package/build/components/tab-list/tab-list.css +6 -11
- package/build/components/table/table.css +6 -11
- package/build/components/tabs/tabs.css +50 -33
- package/build/components/tabs/tabs.scss +10 -55
- package/build/components/tag/tag.css +7 -10
- package/build/components/tag/tag.scss +1 -5
- package/build/components/textarea/textarea.css +6 -11
- package/build/styles/absolute.css +7 -7
- package/build/styles/bundle.css +7 -7
- package/build/styles/index.css +6 -6
- package/build/styles/index.scss +18 -2
- package/build/styles/internal/_component.scss +4 -0
- package/build/styles/internal/_control-panel-actions.scss +11 -0
- package/build/styles/internal/_control-panel-desktop.scss +412 -0
- package/build/styles/internal/_control-panel-mobile.scss +107 -0
- package/build/styles/internal/_custom-elements.scss +32 -7
- package/build/styles/internal/_icon-passing.scss +20 -10
- package/build/styles/internal/_link-components.scss +11 -2
- package/build/styles/internal/_navigation-item.scss +122 -0
- package/build/styles/internal/_scrollbar.scss +71 -0
- package/build/styles/relative.css +7 -7
- package/build/styles/rollup.css +7 -7
- package/build/styles/visually-hidden.css +1 -1
- package/build/styles/wc-workarounds.css +1 -1
- package/build/styles/wc-workarounds.scss +11 -0
- package/build/styles/webpack.css +7 -7
- package/package.json +3 -3
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
2
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
3
|
+
/* Variants for adaptive components like input, select, notification, ... */
|
|
4
|
+
.db-control-panel-navigation-item, .db-control-panel-navigation-item a {
|
|
5
|
+
font: var(--db-type-body-md);
|
|
6
|
+
/* Those variables are only for components to calculate heights and change icons */
|
|
7
|
+
--db-icon-font-weight: var(--db-base-body-icon-weight-md);
|
|
8
|
+
--db-icon-font-size: var(--db-base-body-icon-font-size-md);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Sub components for shell */
|
|
12
|
+
.db-control-panel-navigation-item a {
|
|
13
|
+
border: var(--db-border-width-3xs) solid transparent;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.db-control-panel-navigation-item a {
|
|
17
|
+
background-color: var(--db-adaptive-bg-basic-transparent-full-default);
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
inline-size: 100%;
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
border-radius: var(--db-border-radius-sm);
|
|
22
|
+
padding: var(--db-spacing-fixed-xs) var(--db-spacing-fixed-sm);
|
|
23
|
+
text-align: start;
|
|
24
|
+
align-items: center;
|
|
25
|
+
min-block-size: var(--db-sizing-md);
|
|
26
|
+
/* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
|
|
27
|
+
}
|
|
28
|
+
.db-control-panel-navigation-item a:hover {
|
|
29
|
+
cursor: var(--db-overwrite-cursor, pointer);
|
|
30
|
+
background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
|
|
31
|
+
}
|
|
32
|
+
.db-control-panel-navigation-item a:active {
|
|
33
|
+
cursor: var(--db-overwrite-cursor, pointer);
|
|
34
|
+
background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.db-control-panel-navigation-item {
|
|
38
|
+
position: relative;
|
|
39
|
+
display: flex;
|
|
40
|
+
block-size: fit-content;
|
|
41
|
+
/* stylelint-disable-next-line media-query-no-invalid */
|
|
42
|
+
}
|
|
43
|
+
@media (width <= 48em) {
|
|
44
|
+
.db-control-panel-navigation-item {
|
|
45
|
+
inline-size: 100%;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
.db-control-panel-navigation-item {
|
|
49
|
+
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
50
|
+
/* stylelint-disable-next-line media-query-no-invalid */
|
|
51
|
+
}
|
|
52
|
+
@media (48em < width) {
|
|
53
|
+
.db-control-panel-navigation-item {
|
|
54
|
+
inline-size: fit-content;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
.db-control-panel-navigation-item {
|
|
58
|
+
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
59
|
+
}
|
|
60
|
+
.db-control-panel-navigation-item:has([aria-current=page]) > :is(a, button), .db-control-panel-navigation-item:has([data-active=true]) > :is(a, button), [aria-current=page].db-control-panel-navigation-item > :is(a, button), [data-active=true].db-control-panel-navigation-item > :is(a, button) {
|
|
61
|
+
font-weight: 700;
|
|
62
|
+
}
|
|
63
|
+
[aria-disabled=true].db-control-panel-navigation-item {
|
|
64
|
+
opacity: var(--db-opacity-md);
|
|
65
|
+
pointer-events: none;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.db-control-panel-navigation-item a {
|
|
69
|
+
text-decoration: none;
|
|
70
|
+
}
|
|
71
|
+
.db-control-panel-navigation-item a:focus-visible {
|
|
72
|
+
z-index: 1;
|
|
73
|
+
}
|
|
74
|
+
.db-control-panel-navigation-item .db-tooltip {
|
|
75
|
+
--db-show-popover-visibility: hidden;
|
|
76
|
+
}
|
|
77
|
+
.db-control-panel-navigation-item .db-control-panel-navigation-item-end-slot-container {
|
|
78
|
+
position: absolute;
|
|
79
|
+
display: flex;
|
|
80
|
+
inset-block: 0;
|
|
81
|
+
inset-inline-end: 0;
|
|
82
|
+
align-items: center;
|
|
83
|
+
pointer-events: none;
|
|
84
|
+
}
|
|
85
|
+
.db-control-panel-navigation-item .db-control-panel-navigation-item-end-slot-container:empty {
|
|
86
|
+
display: none;
|
|
87
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
@use "../../styles/internal/navigation-item";
|
|
2
|
+
@use "@db-ux/core-foundations/build/styles/screen-sizes";
|
|
3
|
+
@use "@db-ux/core-foundations/build/styles/helpers";
|
|
4
|
+
|
|
5
|
+
.db-control-panel-navigation-item {
|
|
6
|
+
@extend %navigation-item;
|
|
7
|
+
|
|
8
|
+
a {
|
|
9
|
+
@extend %navigation-item-interactive-element;
|
|
10
|
+
|
|
11
|
+
text-decoration: none;
|
|
12
|
+
|
|
13
|
+
&:focus-visible {
|
|
14
|
+
// We need to increase the z-index on focus-visible for the outline and box-shadow to appear above the indicator
|
|
15
|
+
z-index: 1;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.db-tooltip {
|
|
20
|
+
// We don't show the tooltip unless user uses DBShell with controlPanelDesktopPosition="left"
|
|
21
|
+
// and collapsed navigation
|
|
22
|
+
--db-show-popover-visibility: hidden;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.db-control-panel-navigation-item-end-slot-container {
|
|
26
|
+
position: absolute;
|
|
27
|
+
display: flex;
|
|
28
|
+
inset-block: 0;
|
|
29
|
+
inset-inline-end: 0;
|
|
30
|
+
align-items: center;
|
|
31
|
+
|
|
32
|
+
// We avoid clicking on <span> etc. so the Link can be clicked anyways
|
|
33
|
+
pointer-events: none;
|
|
34
|
+
|
|
35
|
+
&:empty {
|
|
36
|
+
display: none;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
2
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
3
|
+
/* Variants for adaptive components like input, select, notification, ... */
|
|
4
|
+
@keyframes popover-animation {
|
|
5
|
+
0% {
|
|
6
|
+
pointer-events: none;
|
|
7
|
+
opacity: 0;
|
|
8
|
+
transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
|
|
9
|
+
}
|
|
10
|
+
100% {
|
|
11
|
+
pointer-events: auto;
|
|
12
|
+
opacity: 1;
|
|
13
|
+
transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
@keyframes rotate {
|
|
17
|
+
100% {
|
|
18
|
+
transform: rotate(1turn);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/* Sub components for shell */
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
@use "@db-ux/core-foundations/build/styles/screen-sizes";
|
|
2
|
+
@use "@db-ux/core-foundations/build/styles/variables";
|
|
3
|
+
@use "@db-ux/core-foundations/build/styles/animation";
|
|
4
|
+
@use "@db-ux/core-foundations/build/styles/colors";
|
|
5
|
+
@use "../../styles/internal/component";
|
|
6
|
+
@use "../../styles/internal/navigation-item";
|
|
7
|
+
|
|
8
|
+
$outside-position: calc(-200% + #{variables.$db-spacing-fixed-xs});
|
|
9
|
+
$z-index-popover: 70;
|
|
10
|
+
|
|
11
|
+
%db-control-panel-navigation-item-group-menu-popover {
|
|
12
|
+
--db-popover-distance: #{variables.$db-spacing-fixed-xs};
|
|
13
|
+
--db-control-panel-navigation-item-group-menu-popover: 1;
|
|
14
|
+
|
|
15
|
+
margin: 0;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
z-index: $z-index-popover;
|
|
19
|
+
background-color: colors.$db-adaptive-bg-basic-level-1-default;
|
|
20
|
+
visibility: hidden;
|
|
21
|
+
max-block-size: 100vh;
|
|
22
|
+
|
|
23
|
+
&:empty {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.db-control-panel-navigation-item,
|
|
28
|
+
.db-control-panel-navigation-item-group {
|
|
29
|
+
inline-size: 100%;
|
|
30
|
+
|
|
31
|
+
&::after {
|
|
32
|
+
margin-inline-start: auto;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* jscpd:ignore-start */
|
|
37
|
+
|
|
38
|
+
// Mobile
|
|
39
|
+
@include screen-sizes.screen-min-max(
|
|
40
|
+
(
|
|
41
|
+
max: "sm"
|
|
42
|
+
)
|
|
43
|
+
) {
|
|
44
|
+
--db-control-panel-navigation-item-group-menu-mobile: 1;
|
|
45
|
+
|
|
46
|
+
padding: variables.$db-spacing-fixed-xs
|
|
47
|
+
component.$drawer-content-padding-inline;
|
|
48
|
+
inline-size: 100%;
|
|
49
|
+
max-inline-size: var(
|
|
50
|
+
--db-drawer-max-width,
|
|
51
|
+
var(--db-drawer-max-width-horizontal)
|
|
52
|
+
);
|
|
53
|
+
position: fixed;
|
|
54
|
+
overflow: hidden auto;
|
|
55
|
+
inset-inline-end: 0;
|
|
56
|
+
inset-block: calc(
|
|
57
|
+
#{component.$min-mobile-header-height} +
|
|
58
|
+
env(safe-area-inset-top)
|
|
59
|
+
)
|
|
60
|
+
calc(
|
|
61
|
+
#{component.$min-mobile-header-height} +
|
|
62
|
+
env(safe-area-inset-bottom)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* jscpd:ignore-end */
|
|
67
|
+
|
|
68
|
+
// Desktop
|
|
69
|
+
@include screen-sizes.screen-min-max(
|
|
70
|
+
(
|
|
71
|
+
min: "sm"
|
|
72
|
+
)
|
|
73
|
+
) {
|
|
74
|
+
inset-inline-start: 0;
|
|
75
|
+
// stylelint-disable-next-line db-ux/use-border-width, db-ux/use-border-color
|
|
76
|
+
border: component.$component-border;
|
|
77
|
+
border-radius: variables.$db-border-radius-sm;
|
|
78
|
+
box-shadow: variables.$db-elevation-md;
|
|
79
|
+
padding: variables.$db-spacing-fixed-sm;
|
|
80
|
+
block-size: fit-content;
|
|
81
|
+
position: absolute;
|
|
82
|
+
inline-size: variables.$db-container-xs;
|
|
83
|
+
gap: variables.$db-spacing-fixed-xs;
|
|
84
|
+
|
|
85
|
+
// TODO: This causes some flash for angular navigation item group
|
|
86
|
+
transition: visibility 1ms linear; // workaround to enable focus with keyboard
|
|
87
|
+
|
|
88
|
+
.db-control-panel-navigation-item-group-back-button {
|
|
89
|
+
display: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&:is(:hover, :focus-within):not([data-force-close="true"]) {
|
|
93
|
+
visibility: visible;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&[data-force-close="true"] {
|
|
97
|
+
pointer-events: none;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.db-control-panel-navigation-item-group-menu {
|
|
101
|
+
// 1px for box shadow
|
|
102
|
+
inset-block-start: calc(
|
|
103
|
+
-50% + #{variables.$db-spacing-fixed-xs} + 1px
|
|
104
|
+
);
|
|
105
|
+
inset-inline-start: calc(100% + #{variables.$db-spacing-fixed-xs});
|
|
106
|
+
|
|
107
|
+
@include navigation-item.navigation-item-group-menu-triangle-vertical;
|
|
108
|
+
|
|
109
|
+
&[data-outside-vy="bottom"] {
|
|
110
|
+
transform: translateY($outside-position);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
&[data-outside-vx="right"] {
|
|
114
|
+
transform: translateX($outside-position);
|
|
115
|
+
|
|
116
|
+
&[data-outside-vy="bottom"] {
|
|
117
|
+
transform: translate($outside-position, $outside-position);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
&::before {
|
|
121
|
+
inset-block: auto 0;
|
|
122
|
+
|
|
123
|
+
// inline-size: calc(var(--db-control-panel-navigation-item-inline-size, 100%) - #{variables.$db-spacing-fixed-xs} - 2px);
|
|
124
|
+
transform: translateX(100%) scaleX(-1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
@keyframes popover-animation {
|
|
2
|
+
0% {
|
|
3
|
+
pointer-events: none;
|
|
4
|
+
opacity: 0;
|
|
5
|
+
transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
|
|
6
|
+
}
|
|
7
|
+
100% {
|
|
8
|
+
pointer-events: auto;
|
|
9
|
+
opacity: 1;
|
|
10
|
+
transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
@keyframes rotate {
|
|
14
|
+
100% {
|
|
15
|
+
transform: rotate(1turn);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
19
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
20
|
+
/* Variants for adaptive components like input, select, notification, ... */
|
|
21
|
+
.db-visually-hidden,
|
|
22
|
+
[data-visually-hidden=true] {
|
|
23
|
+
position: absolute !important;
|
|
24
|
+
inset-block-start: 0 !important;
|
|
25
|
+
inline-size: 1px !important;
|
|
26
|
+
block-size: 1px !important;
|
|
27
|
+
overflow: hidden !important;
|
|
28
|
+
clip: rect(0, 0, 0, 0) !important;
|
|
29
|
+
white-space: nowrap !important;
|
|
30
|
+
border: 0 !important;
|
|
31
|
+
padding: 0 !important;
|
|
32
|
+
pointer-events: none !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Sub components for shell */
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
@use "@db-ux/core-foundations/build/styles/variables";
|
|
2
|
+
@use "@db-ux/core-foundations/build/styles/animation";
|
|
3
|
+
@use "@db-ux/core-foundations/build/styles/colors";
|
|
4
|
+
@use "@db-ux/core-foundations/build/styles/screen-sizes";
|
|
5
|
+
@use "../../styles/internal/component";
|
|
6
|
+
@use "../../styles/internal/form-components";
|
|
7
|
+
@use "../../styles/internal/navigation-item";
|
|
8
|
+
|
|
9
|
+
%db-control-panel-navigation-item-group-menu-tree {
|
|
10
|
+
margin: 0;
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
block-size: 0;
|
|
14
|
+
visibility: hidden;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
gap: variables.$db-spacing-fixed-xs;
|
|
17
|
+
/* stylelint-disable-next-line db-ux/use-spacings */
|
|
18
|
+
padding-inline-start: 1lh;
|
|
19
|
+
|
|
20
|
+
@media screen and (prefers-reduced-motion: no-preference) {
|
|
21
|
+
transition: block-size #{variables.$db-transition-straight-emotional};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&:empty {
|
|
25
|
+
display: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.db-control-panel-navigation-item-group-back-button {
|
|
29
|
+
display: none;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Mobile
|
|
33
|
+
@include screen-sizes.screen("md", "max") {
|
|
34
|
+
--db-control-panel-navigation-item-group-menu-mobile: 1;
|
|
35
|
+
}
|
|
36
|
+
}
|
package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.css
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
2
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
3
|
+
/* Variants for adaptive components like input, select, notification, ... */
|
|
4
|
+
.db-control-panel-navigation-item-group, .db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button {
|
|
5
|
+
font: var(--db-type-body-md);
|
|
6
|
+
/* Those variables are only for components to calculate heights and change icons */
|
|
7
|
+
--db-icon-font-weight: var(--db-base-body-icon-weight-md);
|
|
8
|
+
--db-icon-font-size: var(--db-base-body-icon-font-size-md);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Sub components for shell */
|
|
12
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button {
|
|
13
|
+
border: var(--db-border-width-3xs) solid transparent;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button {
|
|
17
|
+
background-color: var(--db-adaptive-bg-basic-transparent-full-default);
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
inline-size: 100%;
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
border-radius: var(--db-border-radius-sm);
|
|
22
|
+
padding: var(--db-spacing-fixed-xs) var(--db-spacing-fixed-sm);
|
|
23
|
+
text-align: start;
|
|
24
|
+
align-items: center;
|
|
25
|
+
min-block-size: var(--db-sizing-md);
|
|
26
|
+
/* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
|
|
27
|
+
}
|
|
28
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:hover {
|
|
29
|
+
cursor: var(--db-overwrite-cursor, pointer);
|
|
30
|
+
background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
|
|
31
|
+
}
|
|
32
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button:active {
|
|
33
|
+
cursor: var(--db-overwrite-cursor, pointer);
|
|
34
|
+
background-color: var(--db-adaptive-bg-basic-transparent-full-pressed);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.db-control-panel-navigation-item-group {
|
|
38
|
+
position: relative;
|
|
39
|
+
display: flex;
|
|
40
|
+
block-size: fit-content;
|
|
41
|
+
/* stylelint-disable-next-line media-query-no-invalid */
|
|
42
|
+
}
|
|
43
|
+
@media (width <= 48em) {
|
|
44
|
+
.db-control-panel-navigation-item-group {
|
|
45
|
+
inline-size: 100%;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
.db-control-panel-navigation-item-group {
|
|
49
|
+
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
50
|
+
/* stylelint-disable-next-line media-query-no-invalid */
|
|
51
|
+
}
|
|
52
|
+
@media (48em < width) {
|
|
53
|
+
.db-control-panel-navigation-item-group {
|
|
54
|
+
inline-size: fit-content;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
.db-control-panel-navigation-item-group {
|
|
58
|
+
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
59
|
+
}
|
|
60
|
+
.db-control-panel-navigation-item-group:has([aria-current=page]) > :is(a, button), .db-control-panel-navigation-item-group:has([data-active=true]) > :is(a, button), [aria-current=page].db-control-panel-navigation-item-group > :is(a, button), [data-active=true].db-control-panel-navigation-item-group > :is(a, button) {
|
|
61
|
+
font-weight: 700;
|
|
62
|
+
}
|
|
63
|
+
[aria-disabled=true].db-control-panel-navigation-item-group {
|
|
64
|
+
opacity: var(--db-opacity-md);
|
|
65
|
+
pointer-events: none;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@keyframes popover-animation {
|
|
69
|
+
0% {
|
|
70
|
+
pointer-events: none;
|
|
71
|
+
opacity: 0;
|
|
72
|
+
transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
|
|
73
|
+
}
|
|
74
|
+
100% {
|
|
75
|
+
pointer-events: auto;
|
|
76
|
+
opacity: 1;
|
|
77
|
+
transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
@keyframes rotate {
|
|
81
|
+
100% {
|
|
82
|
+
transform: rotate(1turn);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
.db-control-panel-navigation-item-group:has(> .db-control-panel-navigation-item-group-menu:hover) > .db-control-panel-navigation-item-group-expand-button, .db-control-panel-navigation-item-group:has(> .db-control-panel-navigation-item-group-menu:focus) > .db-control-panel-navigation-item-group-expand-button {
|
|
86
|
+
background-color: var(--db-adaptive-bg-basic-transparent-full-hovered);
|
|
87
|
+
}
|
|
88
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button .db-control-panel-navigation-item-group-expand-button-end-slot-container {
|
|
89
|
+
--db-has-badge-position: static;
|
|
90
|
+
display: inline-flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
margin-inline-start: auto;
|
|
93
|
+
}
|
|
94
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button {
|
|
95
|
+
/* stylelint-disable-next-line media-query-no-invalid */
|
|
96
|
+
}
|
|
97
|
+
@media (width <= 48em) {
|
|
98
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button::after {
|
|
99
|
+
--db-icon-margin-start: auto;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button {
|
|
103
|
+
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
104
|
+
/* stylelint-disable-next-line media-query-no-invalid */
|
|
105
|
+
}
|
|
106
|
+
@media (48em < width) {
|
|
107
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button::after {
|
|
108
|
+
--db-icon-margin-start: var(--db-spacing-fixed-sm);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item-group-expand-button {
|
|
112
|
+
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
113
|
+
}
|
|
114
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item {
|
|
115
|
+
/* Hide tooltips for nested navigation items */
|
|
116
|
+
}
|
|
117
|
+
.db-control-panel-navigation-item-group .db-control-panel-navigation-item .db-tooltip {
|
|
118
|
+
display: none;
|
|
119
|
+
}
|
|
120
|
+
.db-control-panel-navigation-item-group::after {
|
|
121
|
+
--indicator-vertical-block-size: var(--db-sizing-md);
|
|
122
|
+
--indicator-vertical-inset-block-start: calc(
|
|
123
|
+
var(--db-sizing-md) / 2
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.db-control-panel-navigation-item-group-back-button {
|
|
128
|
+
display: flex;
|
|
129
|
+
font-weight: normal;
|
|
130
|
+
background-color: var(--db-adaptive-bg-basic-level-1-default);
|
|
131
|
+
padding-block-end: var(--db-spacing-fixed-xs);
|
|
132
|
+
margin-block-end: var(--db-spacing-fixed-xs);
|
|
133
|
+
--db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
|
|
134
|
+
position: var(--db-tooltip-parent-position, relative);
|
|
135
|
+
}
|
|
136
|
+
.db-control-panel-navigation-item-group-back-button[data-emphasis=strong] {
|
|
137
|
+
--db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
|
|
138
|
+
}
|
|
139
|
+
.db-control-panel-navigation-item-group-back-button::before {
|
|
140
|
+
content: "";
|
|
141
|
+
background-color: var(--db-divider-bg-color);
|
|
142
|
+
position: absolute;
|
|
143
|
+
/* jscpd:ignore-start */
|
|
144
|
+
block-size: var(--db-border-width-3xs);
|
|
145
|
+
inset-block-end: 0;
|
|
146
|
+
inset-inline: 0;
|
|
147
|
+
/* stylelint-disable-next-line db-ux/use-border-color */
|
|
148
|
+
}
|
|
149
|
+
@media (forced-colors: active) {
|
|
150
|
+
.db-control-panel-navigation-item-group-back-button::before {
|
|
151
|
+
/* stylelint-disable-next-line db-ux/use-border-color */
|
|
152
|
+
border-block-end: var(--db-border-width-3xs) solid var(--db-divider-bg-color);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
.db-control-panel-navigation-item-group-back-button::before {
|
|
156
|
+
/* stylelint-disable-next-line at-rule-empty-line-before */
|
|
157
|
+
/* jscpd:ignore-end */
|
|
158
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
@use "@db-ux/core-foundations/build/styles/screen-sizes";
|
|
2
|
+
@use "@db-ux/core-foundations/build/styles/variables";
|
|
3
|
+
@use "@db-ux/core-foundations/build/styles/colors";
|
|
4
|
+
@use "@db-ux/core-foundations/build/styles/fonts";
|
|
5
|
+
@use "@db-ux/core-foundations/build/styles/helpers";
|
|
6
|
+
@use "../../styles/internal/navigation-item";
|
|
7
|
+
@use "control-panel-navigation-item-group-menu-popover";
|
|
8
|
+
@use "../../styles/internal/icon-passing";
|
|
9
|
+
|
|
10
|
+
.db-control-panel-navigation-item-group {
|
|
11
|
+
@extend %navigation-item;
|
|
12
|
+
|
|
13
|
+
&:has(> .db-control-panel-navigation-item-group-menu:hover),
|
|
14
|
+
&:has(> .db-control-panel-navigation-item-group-menu:focus) {
|
|
15
|
+
> .db-control-panel-navigation-item-group-expand-button {
|
|
16
|
+
// If we hover on the triangle we should still show hover color of the item
|
|
17
|
+
background-color: colors.$db-adaptive-bg-basic-transparent-full-hovered;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.db-control-panel-navigation-item-group-expand-button {
|
|
22
|
+
@extend %navigation-item-interactive-element;
|
|
23
|
+
|
|
24
|
+
.db-control-panel-navigation-item-group-expand-button-end-slot-container {
|
|
25
|
+
--db-has-badge-position: static;
|
|
26
|
+
|
|
27
|
+
display: inline-flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
margin-inline-start: auto;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Mobile
|
|
33
|
+
@include screen-sizes.screen-min-max(
|
|
34
|
+
(
|
|
35
|
+
max: "sm"
|
|
36
|
+
)
|
|
37
|
+
) {
|
|
38
|
+
&::after {
|
|
39
|
+
--db-icon-margin-start: auto;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Desktop
|
|
44
|
+
@include screen-sizes.screen-min-max(
|
|
45
|
+
(
|
|
46
|
+
min: "sm"
|
|
47
|
+
)
|
|
48
|
+
) {
|
|
49
|
+
&::after {
|
|
50
|
+
--db-icon-margin-start: #{variables.$db-spacing-fixed-sm};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.db-control-panel-navigation-item {
|
|
56
|
+
/* Hide tooltips for nested navigation items */
|
|
57
|
+
.db-tooltip {
|
|
58
|
+
display: none;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&::after {
|
|
63
|
+
// Mobile navigation item is always sizing-md
|
|
64
|
+
// We add this fixed block-size to avoid issues with tree navigation
|
|
65
|
+
--indicator-vertical-block-size: #{variables.$db-sizing-md};
|
|
66
|
+
--indicator-vertical-inset-block-start: calc(
|
|
67
|
+
#{variables.$db-sizing-md} / 2
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.db-control-panel-navigation-item-group-back-button {
|
|
73
|
+
display: flex;
|
|
74
|
+
font-weight: normal;
|
|
75
|
+
background-color: colors.$db-adaptive-bg-basic-level-1-default;
|
|
76
|
+
padding-block-end: variables.$db-spacing-fixed-xs;
|
|
77
|
+
margin-block-end: variables.$db-spacing-fixed-xs;
|
|
78
|
+
|
|
79
|
+
@include helpers.divider("bottom");
|
|
80
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
2
|
+
/* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
|
|
3
|
+
/* Variants for adaptive components like input, select, notification, ... */
|
|
4
|
+
.db-control-panel-skip-navigation {
|
|
5
|
+
position: absolute;
|
|
6
|
+
inset-block-start: var(--db-spacing-fixed-xs);
|
|
7
|
+
inset-inline-start: var(--db-spacing-fixed-xs);
|
|
8
|
+
background-color: var(--db-adaptive-bg-basic-level-1-default);
|
|
9
|
+
border-radius: var(--db-border-radius-sm);
|
|
10
|
+
z-index: 9999;
|
|
11
|
+
transform: translateX(-110%);
|
|
12
|
+
}
|
|
13
|
+
.db-control-panel-skip-navigation:not(:empty) {
|
|
14
|
+
padding: var(--db-spacing-fixed-3xs);
|
|
15
|
+
}
|
|
16
|
+
.db-control-panel-skip-navigation:focus-within {
|
|
17
|
+
transform: none;
|
|
18
|
+
}
|
|
19
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
20
|
+
.db-control-panel-skip-navigation {
|
|
21
|
+
transition: transform var(--db-transition-duration-extra-slow) var(--db-transition-timing-emotional);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@use "@db-ux/core-foundations/build/styles/variables";
|
|
2
|
+
@use "@db-ux/core-foundations/build/styles/colors";
|
|
3
|
+
|
|
4
|
+
.db-control-panel-skip-navigation {
|
|
5
|
+
position: absolute;
|
|
6
|
+
inset-block-start: variables.$db-spacing-fixed-xs;
|
|
7
|
+
inset-inline-start: variables.$db-spacing-fixed-xs;
|
|
8
|
+
background-color: colors.$db-adaptive-bg-basic-level-1-default;
|
|
9
|
+
border-radius: variables.$db-border-radius-sm;
|
|
10
|
+
z-index: 9999;
|
|
11
|
+
transform: translateX(-110%);
|
|
12
|
+
|
|
13
|
+
&:not(:empty) {
|
|
14
|
+
padding: variables.$db-spacing-fixed-3xs;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&:focus-within {
|
|
18
|
+
transform: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
22
|
+
transition: transform #{variables.$db-transition-duration-extra-slow}
|
|
23
|
+
#{variables.$db-transition-timing-emotional};
|
|
24
|
+
}
|
|
25
|
+
}
|