@db-ux/core-components 4.12.0 → 4.13.0-shell-f221975

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 (117) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/agent/Best-Practise_Common-AI-Mistakes.md +3 -3
  3. package/build/components/accordion/accordion.css +13 -6
  4. package/build/components/accordion-item/accordion-item.css +6 -11
  5. package/build/components/accordion-item/accordion-item.scss +4 -9
  6. package/build/components/badge/badge.css +1 -1
  7. package/build/components/badge/badge.scss +1 -1
  8. package/build/components/button/button.css +0 -8
  9. package/build/components/button/button.scss +0 -11
  10. package/build/components/checkbox/checkbox.css +6 -11
  11. package/build/components/checkbox/checkbox.scss +7 -0
  12. package/build/components/control-panel-brand/control-panel-brand.css +53 -0
  13. package/build/components/control-panel-brand/control-panel-brand.scss +48 -0
  14. package/build/components/control-panel-desktop/control-panel-desktop.css +579 -0
  15. package/build/components/control-panel-desktop/control-panel-desktop.scss +30 -0
  16. package/build/components/control-panel-flat-icon/control-panel-flat-icon.css +258 -0
  17. package/build/components/control-panel-flat-icon/control-panel-flat-icon.scss +239 -0
  18. package/build/components/control-panel-meta/control-panel-meta.css +14 -0
  19. package/build/components/control-panel-meta/control-panel-meta.scss +15 -0
  20. package/build/components/control-panel-mobile/control-panel-mobile.css +438 -0
  21. package/build/components/control-panel-mobile/control-panel-mobile.scss +116 -0
  22. package/build/components/control-panel-navigation/control-panel-navigation.css +390 -0
  23. package/build/components/control-panel-navigation/control-panel-navigation.scss +186 -0
  24. package/build/components/control-panel-navigation-item/control-panel-navigation-item.css +87 -0
  25. package/build/components/control-panel-navigation-item/control-panel-navigation-item.scss +39 -0
  26. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.css +21 -0
  27. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-popover.scss +125 -0
  28. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.css +35 -0
  29. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group-menu-tree.scss +36 -0
  30. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.css +158 -0
  31. package/build/components/control-panel-navigation-item-group/control-panel-navigation-item-group.scss +80 -0
  32. package/build/components/control-panel-primary-actions/control-panel-primary-actions.css +12 -0
  33. package/build/components/control-panel-primary-actions/control-panel-primary-actions.scss +7 -0
  34. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.css +12 -0
  35. package/build/components/control-panel-secondary-actions/control-panel-secondary-actions.scss +7 -0
  36. package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.css +23 -0
  37. package/build/components/control-panel-skip-navigation/control-panel-skip-navigation.scss +25 -0
  38. package/build/components/custom-button/custom-button.css +11 -19
  39. package/build/components/custom-select/custom-select.css +17 -16
  40. package/build/components/custom-select/custom-select.scss +1 -1
  41. package/build/components/custom-select-dropdown/custom-select-dropdown.css +45 -26
  42. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +9 -0
  43. package/build/components/custom-select-form-field/custom-select-form-field.css +6 -11
  44. package/build/components/custom-select-list/custom-select-list.css +6 -11
  45. package/build/components/custom-select-list-item/custom-select-list-item.css +29 -19
  46. package/build/components/custom-select-list-item/custom-select-list-item.scss +15 -9
  47. package/build/components/divider/divider.css +18 -8
  48. package/build/components/drawer/drawer.css +78 -156
  49. package/build/components/drawer/drawer.scss +124 -167
  50. package/build/components/drawer-footer/drawer-footer.css +34 -0
  51. package/build/components/drawer-footer/drawer-footer.scss +11 -0
  52. package/build/components/drawer-header/drawer-header.css +38 -0
  53. package/build/components/drawer-header/drawer-header.scss +17 -0
  54. package/build/components/input/input.css +6 -11
  55. package/build/components/link/link.css +7 -1
  56. package/build/components/notification/notification.css +7 -1
  57. package/build/components/radio/radio.css +6 -11
  58. package/build/components/radio/radio.scss +3 -0
  59. package/build/components/select/select.css +6 -11
  60. package/build/components/shell/shell-desktop.css +475 -0
  61. package/build/components/shell/shell-desktop.scss +105 -0
  62. package/build/components/shell/shell-mobile.css +441 -0
  63. package/build/components/shell/shell-mobile.scss +148 -0
  64. package/build/components/shell/shell.css +1670 -0
  65. package/build/components/shell/shell.scss +70 -0
  66. package/build/components/shell-content/shell-content.css +31 -0
  67. package/build/components/shell-content/shell-content.scss +49 -0
  68. package/build/components/shell-sub-navigation/shell-sub-navigation.css +51 -0
  69. package/build/components/shell-sub-navigation/shell-sub-navigation.scss +184 -0
  70. package/build/components/stack/stack-web-component.css +1 -0
  71. package/build/components/stack/stack.css +1 -0
  72. package/build/components/switch/switch.css +6 -11
  73. package/build/components/switch/switch.scss +7 -0
  74. package/build/components/tab-item/tab-item.css +6 -11
  75. package/build/components/tab-item/tab-item.scss +4 -10
  76. package/build/components/tab-list/tab-list.css +6 -11
  77. package/build/components/table/table.css +6 -11
  78. package/build/components/table-row/table-row.scss +3 -0
  79. package/build/components/tabs/tabs.css +55 -39
  80. package/build/components/tabs/tabs.scss +25 -70
  81. package/build/components/tag/tag.css +5 -10
  82. package/build/components/tag/tag.scss +1 -5
  83. package/build/components/textarea/textarea.css +6 -11
  84. package/build/styles/absolute.css +7 -7
  85. package/build/styles/bundle.css +7 -7
  86. package/build/styles/index.css +6 -6
  87. package/build/styles/index.scss +16 -5
  88. package/build/styles/internal/_button-components.scss +4 -9
  89. package/build/styles/internal/_component.scss +7 -0
  90. package/build/styles/internal/_control-panel-actions.scss +11 -0
  91. package/build/styles/internal/_control-panel-desktop.scss +412 -0
  92. package/build/styles/internal/_control-panel-mobile.scss +107 -0
  93. package/build/styles/internal/_custom-elements.scss +31 -7
  94. package/build/styles/internal/_form-components.scss +6 -0
  95. package/build/styles/internal/_icon-passing.scss +18 -10
  96. package/build/styles/internal/{_db-puls.scss → _indicator.scss} +37 -16
  97. package/build/styles/internal/_link-components.scss +7 -1
  98. package/build/styles/internal/_navigation-item.scss +122 -0
  99. package/build/styles/internal/_scrollbar.scss +71 -0
  100. package/build/styles/internal/_tag-components.scss +4 -10
  101. package/build/styles/relative.css +7 -7
  102. package/build/styles/rollup.css +7 -7
  103. package/build/styles/visually-hidden.css +1 -1
  104. package/build/styles/wc-workarounds.css +1 -1
  105. package/build/styles/wc-workarounds.scss +11 -0
  106. package/build/styles/webpack.css +7 -7
  107. package/package.json +6 -7
  108. package/build/components/brand/brand.css +0 -32
  109. package/build/components/brand/brand.scss +0 -35
  110. package/build/components/header/header.css +0 -700
  111. package/build/components/header/header.scss +0 -274
  112. package/build/components/navigation/navigation.css +0 -202
  113. package/build/components/navigation/navigation.scss +0 -108
  114. package/build/components/navigation-item/navigation-item.css +0 -447
  115. package/build/components/navigation-item/navigation-item.scss +0 -343
  116. package/build/components/page/page.css +0 -61
  117. package/build/components/page/page.scss +0 -61
@@ -3,27 +3,35 @@
3
3
 
4
4
  $interactive-button-selectors: "label,button,a";
5
5
 
6
- @mixin icon-passing($inline-start: variables.$db-spacing-fixed-sm) {
6
+ @mixin icon-passing(
7
+ $inline-start: variables.$db-spacing-fixed-sm,
8
+ $block-start: calc(50% - 0.5em)
9
+ ) {
7
10
  &[data-icon-leading]:not([data-show-icon-leading="false"]),
8
11
  &[data-icon]:not([data-show-icon="false"]) {
9
12
  &::before {
10
13
  position: absolute;
11
- inset-block-start: calc(50% - 0.5em);
14
+ inset-block-start: var(
15
+ --db-icon-passing-inset-block-start,
16
+ #{$block-start}
17
+ );
12
18
  inset-inline-start: var(
13
- --db-icon-passing-inline-start,
19
+ --db-icon-passing-inset-inline-start,
14
20
  #{$inline-start}
15
21
  );
16
22
  pointer-events: none;
17
23
  z-index: 1;
18
24
  }
19
25
 
20
- #{$interactive-button-selectors} {
21
- --db-padding-inline-start: calc(
22
- #{$inline-start} + #{icons.$default-icon-margin-end} + 1lh
23
- );
24
-
26
+ > :is(#{$interactive-button-selectors}) {
25
27
  /* stylelint-disable-next-line db-ux/use-spacings */
26
- padding-inline-start: var(--db-padding-inline-start);
28
+ padding-inline-start: var(
29
+ --db-icon-passing-padding-inline-start,
30
+ calc(
31
+ #{$inline-start} + #{icons.$default-icon-margin-end} +
32
+ var(--db-icon-font-size)
33
+ )
34
+ );
27
35
  }
28
36
  }
29
37
  }
@@ -38,7 +46,7 @@ $interactive-button-selectors: "label,button,a";
38
46
  z-index: 1;
39
47
  }
40
48
 
41
- #{$interactive-button-selectors} {
49
+ > :is(#{$interactive-button-selectors}) {
42
50
  padding-inline-end: calc(
43
51
  #{$inline-end} + #{icons.$default-icon-margin-end} +
44
52
  var(--db-icon-font-size)
@@ -2,33 +2,54 @@
2
2
  @use "@db-ux/core-foundations/build/styles/screen-sizes";
3
3
  @use "@db-ux/core-foundations/build/styles/colors";
4
4
 
5
- @mixin set-db-puls-horizontal() {
5
+ $indicator-background: linear-gradient(
6
+ 135deg,
7
+ var(--db-pride-red, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
8
+ 16.7%,
9
+ var(--db-pride-orange, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
10
+ 0,
11
+ var(--db-pride-orange, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
12
+ 33.4%,
13
+ var(--db-pride-yellow, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
14
+ 0,
15
+ var(--db-pride-yellow, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
16
+ 50.1%,
17
+ var(--db-pride-green, #{colors.$db-brand-on-bg-basic-emphasis-70-default}) 0,
18
+ var(--db-pride-green, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
19
+ 66.8%,
20
+ var(--db-pride-blue, #{colors.$db-brand-on-bg-basic-emphasis-70-default}) 0,
21
+ var(--db-pride-blue, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
22
+ 83.5%,
23
+ var(--db-pride-violet, #{colors.$db-brand-on-bg-basic-emphasis-70-default})
24
+ 0
25
+ );
26
+
27
+ @mixin set-indicator-horizontal() {
6
28
  &::after {
7
29
  block-size: variables.$db-border-width-xs;
8
30
  inline-size: 0;
9
31
  transform: translate(-50%, 0);
10
32
  inset-inline-start: 50%;
11
- background-color: colors.$db-brand-on-bg-basic-emphasis-70-default;
12
33
  inset-block: auto calc(-1 * #{variables.$db-spacing-fixed-xs});
13
34
  }
14
35
  }
15
36
 
16
- @mixin set-db-puls-vertical() {
37
+ @mixin set-indicator-vertical() {
17
38
  &::after {
18
39
  block-size: 0;
19
40
  inline-size: variables.$db-border-width-xs;
20
41
  transform: translate(0, -50%);
21
- inset-block: 50% auto;
22
- background-color: colors.$db-brand-on-bg-basic-emphasis-70-default;
42
+ inset-block: var(--indicator-vertical-inset-block-start, 50%) auto;
23
43
  inset-inline-start: calc(-1 * #{variables.$db-spacing-fixed-xs});
24
44
  }
25
45
  }
26
46
 
27
- %db-puls {
47
+ %indicator {
28
48
  &::after {
29
49
  content: "";
30
50
  position: absolute;
31
51
  border-radius: variables.$db-border-radius-xs;
52
+ background: $indicator-background;
32
53
 
33
54
  @media (prefers-reduced-motion: no-preference) {
34
55
  transition:
@@ -40,16 +61,16 @@
40
61
  }
41
62
  }
42
63
 
43
- %db-puls-auto {
44
- @extend %db-puls;
45
- @include set-db-puls-vertical;
64
+ %indicator-auto {
65
+ @extend %indicator;
66
+ @include set-indicator-vertical;
46
67
 
47
68
  @include screen-sizes.screen("md") {
48
- @include set-db-puls-horizontal;
69
+ @include set-indicator-horizontal;
49
70
  }
50
71
  }
51
72
 
52
- @mixin show-db-puls-horizontal() {
73
+ @mixin show-indicator-horizontal() {
53
74
  &::after {
54
75
  block-size: variables.$db-border-width-xs;
55
76
  inline-size: 100%;
@@ -61,9 +82,9 @@
61
82
  }
62
83
  }
63
84
 
64
- @mixin show-db-puls-vertical() {
85
+ @mixin show-indicator-vertical() {
65
86
  &::after {
66
- block-size: 100%;
87
+ block-size: var(--indicator-vertical-block-size, 100%);
67
88
  inline-size: variables.$db-border-width-xs;
68
89
 
69
90
  @media (forced-colors: active), print {
@@ -73,10 +94,10 @@
73
94
  }
74
95
  }
75
96
 
76
- %show-db-puls-auto {
77
- @include show-db-puls-vertical;
97
+ %show-indicator-auto {
98
+ @include show-indicator-vertical;
78
99
 
79
100
  @include screen-sizes.screen("md") {
80
- @include show-db-puls-horizontal;
101
+ @include show-indicator-horizontal;
81
102
  }
82
103
  }
@@ -5,7 +5,9 @@
5
5
  @use "./component";
6
6
 
7
7
  %db-link-height {
8
- @include helpers.display(inline-block);
8
+ @include helpers.display(inline-flex);
9
+
10
+ align-items: center;
9
11
 
10
12
  &:not([data-wrap="true"]) {
11
13
  block-size: variables.$db-sizing-sm;
@@ -64,4 +66,8 @@
64
66
  opacity: variables.$db-opacity-md;
65
67
  pointer-events: none;
66
68
  }
69
+
70
+ &::after {
71
+ text-decoration: none;
72
+ }
67
73
  }
@@ -0,0 +1,122 @@
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
+ }
@@ -111,3 +111,74 @@ $scrollbar-width: helpers.px-to-rem(8);
111
111
  border-end-end-radius: variables.$db-border-radius-xs;
112
112
  }
113
113
  }
114
+
115
+ @mixin angular-button-workaround() {
116
+ > .db-button,
117
+ &:is(.db-button) {
118
+ @content;
119
+ }
120
+ }
121
+
122
+ $db-overflow-scroll-buttons-background: 21;
123
+ $db-overflow-scroll-buttons-button: 22;
124
+
125
+ @mixin set-overflow-scroll-button-backgrounds {
126
+ &::before,
127
+ &::after {
128
+ position: absolute;
129
+ z-index: $db-overflow-scroll-buttons-background;
130
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
131
+ inline-size: variables.$db-sizing-md;
132
+ block-size: calc(
133
+ var(
134
+ --db-overflow-scroll-button-background-block-size,
135
+ #{variables.$db-spacing-fixed-sm}
136
+ ) +
137
+ #{variables.$db-sizing-md}
138
+ );
139
+ flex: 0 0 auto;
140
+ }
141
+
142
+ &::before {
143
+ inset-inline-start: var(
144
+ --db-overflow-scroll-button-inset-inline-start,
145
+ 0
146
+ );
147
+ }
148
+
149
+ &::after {
150
+ inset-inline-end: 0;
151
+ }
152
+ }
153
+
154
+ @mixin set-overflow-scroll-buttons {
155
+ /*
156
+ * Scroll left / right buttons
157
+ */
158
+ .overflow-scroll-left-button {
159
+ @include angular-button-workaround {
160
+ inset-inline-start: var(
161
+ --db-overflow-scroll-button-inset-inline-start,
162
+ 0
163
+ );
164
+ }
165
+ }
166
+
167
+ .overflow-scroll-right-button {
168
+ @include angular-button-workaround {
169
+ inset-inline-end: 0;
170
+ }
171
+ }
172
+
173
+ .overflow-scroll-left-button,
174
+ .overflow-scroll-right-button {
175
+ @include angular-button-workaround {
176
+ position: absolute;
177
+ z-index: $db-overflow-scroll-buttons-button;
178
+ inset-block: var(
179
+ --db-overflow-scroll-button-inset-block,
180
+ #{variables.$db-spacing-fixed-xs}
181
+ );
182
+ }
183
+ }
184
+ }
@@ -32,16 +32,10 @@ $interactive-selectors: "label, button:not(.db-tab-remove-button), a";
32
32
 
33
33
  %set-interactive-weak {
34
34
  @include get-weak;
35
-
36
- @include helpers.not-disabled {
37
- @include helpers.hover {
38
- background-color: colors.$db-adaptive-bg-basic-level-1-hovered;
39
- }
40
-
41
- @include helpers.active {
42
- background-color: colors.$db-adaptive-bg-basic-level-1-pressed;
43
- }
44
- }
35
+ @include helpers.interactive-bg(
36
+ colors.$db-adaptive-bg-basic-level-1-hovered,
37
+ colors.$db-adaptive-bg-basic-level-1-pressed
38
+ );
45
39
  }
46
40
 
47
41
  @mixin get-tag-colors($htmlTag: "tag") {