@db-ux/core-components 4.3.2 → 4.4.0-loading-567cd0c

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 (33) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/components/accordion-item/accordion-item.css +6 -0
  3. package/build/components/button/button.css +43 -0
  4. package/build/components/button/button.scss +4 -0
  5. package/build/components/custom-select/custom-select.css +9 -9
  6. package/build/components/custom-select-dropdown/custom-select-dropdown.css +2 -21
  7. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +2 -10
  8. package/build/components/drawer/drawer.css +6 -0
  9. package/build/components/link/link.css +6 -0
  10. package/build/components/loading-indicator/loading-indicator.css +591 -0
  11. package/build/components/loading-indicator/loading-indicator.scss +515 -0
  12. package/build/components/navigation-item/navigation-item.css +6 -0
  13. package/build/components/notification/notification.css +6 -0
  14. package/build/components/popover/popover.css +6 -0
  15. package/build/components/select/select.css +2 -1
  16. package/build/components/select/select.scss +4 -1
  17. package/build/components/tab-list/tab-list.css +6 -0
  18. package/build/components/tag/tag.css +6 -0
  19. package/build/components/textarea/textarea.css +6 -0
  20. package/build/components/tooltip/tooltip.css +6 -0
  21. package/build/styles/absolute.css +18 -4
  22. package/build/styles/component-animations.css +1 -1
  23. package/build/styles/index.css +17 -3
  24. package/build/styles/index.scss +2 -0
  25. package/build/styles/internal/_custom-elements.scss +2 -0
  26. package/build/styles/internal/_form-components.scss +7 -1
  27. package/build/styles/internal/_loading.scss +76 -0
  28. package/build/styles/relative.css +18 -4
  29. package/build/styles/rollup.css +18 -4
  30. package/build/styles/wc-workarounds.css +1 -1
  31. package/build/styles/wc-workarounds.scss +1 -0
  32. package/build/styles/webpack.css +18 -4
  33. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @db-ux/core-components
2
2
 
3
+ ## 4.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - feat: add `role` property to DBNotification & automatically add role based on semantic if no `role` or `ariaLive` is provided to increase UX for screen-reader users - [see commit 177d71e](https://github.com/db-ux-design-system/core-web/commit/177d71e287a64a6491ba446e7812d0adbda1717e)
8
+
9
+ - feat(DBSelect): hide empty first option in `required` selects with placeholder after the first user selection, and add `showEmptyOption` prop to overwrite this - [see commit 4280bc4](https://github.com/db-ux-design-system/core-web/commit/4280bc47538d6983d6bb5575f012b6c6b25b40e8)
10
+
3
11
  ## 4.3.2
4
12
 
5
13
  ### Patch Changes
@@ -77,6 +77,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
77
77
  transform: rotate(1turn);
78
78
  }
79
79
  }
80
+ @keyframes wobbling {
81
+ 50% {
82
+ inset-inline-start: 100%;
83
+ transform: translateX(calc(-100% - var(--db-loading-indicator-progress-bar-segment-padding, 2px)));
84
+ }
85
+ }
80
86
  .db-accordion-item > details > summary:not([data-show-icon-trailing=false])::after {
81
87
  color: var(--db-icon-color, inherit);
82
88
  display: inline-block;
@@ -154,6 +154,48 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
154
154
  display: inline-flex;
155
155
  }
156
156
 
157
+ .db-button .db-loading-indicator:not([data-overlay]) div label, .db-button .db-loading-indicator:not([data-overlay=true]) div label,
158
+ .db-button .db-loading-indicator:not([data-overlay]) div span,
159
+ .db-button .db-loading-indicator:not([data-overlay=true]) div span {
160
+ display: none;
161
+ }
162
+
163
+ .db-button:has(.db-loading-indicator:not([data-overlay=true]))[data-icon]::before, .db-button:has(.db-loading-indicator:not([data-overlay=true]))[data-icon-before]::before {
164
+ display: none;
165
+ }
166
+ .db-button:has(.db-loading-indicator:not([data-overlay=true]))[data-icon-after]::after {
167
+ display: none;
168
+ }
169
+ .db-button:has(.db-loading-indicator[data-state=inactive]) .db-loading-indicator {
170
+ display: none;
171
+ }
172
+ .db-button .db-loading-indicator:not([data-state=successful], [data-state=critical]) {
173
+ --db-loading-indicator-segment-color: currentcolor;
174
+ --db-loading-indicator-segment-color-overlay: currentcolor;
175
+ }
176
+ .db-button .db-loading-indicator:not([data-overlay]), .db-button .db-loading-indicator:not([data-overlay=true]) {
177
+ margin-inline-end: var(--db-spacing-fixed-xs);
178
+ }
179
+ .db-button .db-loading-indicator[data-overlay=true] {
180
+ background-color: transparent;
181
+ }
182
+ .db-button .db-loading-indicator[data-overlay=true]::before {
183
+ z-index: 1;
184
+ background-color: var(--db-loading-indicator-button-overlay-color, inherit);
185
+ }
186
+ .db-button .db-loading-indicator[data-overlay=true]::after {
187
+ z-index: 0;
188
+ content: "";
189
+ position: absolute;
190
+ inset: 0;
191
+ border-radius: inherit;
192
+ background-color: var(--db-adaptive-bg-basic-level-1-default);
193
+ }
194
+ .db-button .db-loading-indicator[data-overlay=true] svg,
195
+ .db-button .db-loading-indicator[data-overlay=true] div {
196
+ z-index: 2;
197
+ }
198
+
157
199
  .db-button {
158
200
  max-inline-size: 100%;
159
201
  color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
@@ -193,6 +235,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
193
235
  inline-size: 100%;
194
236
  }
195
237
  .db-button[data-variant=brand] {
238
+ --db-loading-indicator-button-overlay-color: var(--db-brand-origin-default);
196
239
  background-color: var(--db-brand-origin-default);
197
240
  color: var(--db-brand-on-origin-default);
198
241
  border-color: var(--db-brand-on-bg-basic-emphasis-70-default);
@@ -6,11 +6,13 @@
6
6
  @use "@db-ux/core-foundations/build/styles/helpers";
7
7
  @use "../../styles/internal/component";
8
8
  @use "../../styles/internal/button-components";
9
+ @use "../../styles/internal/loading";
9
10
 
10
11
  // generic styles can be found in _button-components.scss
11
12
  .db-button {
12
13
  @extend %default-interactive-component;
13
14
  @extend %default-button;
15
+ @extend %interactive-element-with-loading;
14
16
  @extend %db-overwrite-font-size-md;
15
17
 
16
18
  max-inline-size: 100%;
@@ -62,6 +64,8 @@
62
64
  }
63
65
 
64
66
  &[data-variant="brand"] {
67
+ --db-loading-indicator-button-overlay-color: #{colors.$db-brand-origin-default};
68
+
65
69
  background-color: colors.$db-brand-origin-default;
66
70
  color: colors.$db-brand-on-origin-default;
67
71
  border-color: colors.$db-brand-on-bg-basic-emphasis-70-default;
@@ -645,7 +645,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
645
645
 
646
646
  @layer variables {}
647
647
 
648
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
648
+ .db-custom-select[data-variant=floating]:has(:focus-within,
649
649
  summary:is(input, textarea):not(:placeholder-shown),
650
650
  > select option:checked:not(.placeholder),
651
651
  input[type=checkbox]:checked,
@@ -654,7 +654,7 @@ input[type=radio]:checked) > label {
654
654
  /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
655
655
  }
656
656
  @layer variables {
657
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
657
+ .db-custom-select[data-variant=floating]:has(:focus-within,
658
658
  summary:is(input, textarea):not(:placeholder-shown),
659
659
  > select option:checked:not(.placeholder),
660
660
  input[type=checkbox]:checked,
@@ -881,7 +881,7 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
881
881
  /* stylelint-disable-next-line db-ux/use-spacings */
882
882
  padding-block-start: var(--db-base-body-icon-font-size-2xs);
883
883
  }
884
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
884
+ .db-custom-select[data-variant=floating]:has(:focus-within,
885
885
  summary:is(input, textarea):not(:placeholder-shown),
886
886
  > select option:checked:not(.placeholder),
887
887
  input[type=checkbox]:checked,
@@ -890,12 +890,12 @@ input[type=radio]:checked) > label {
890
890
  opacity: 1;
891
891
  font-style: normal;
892
892
  }
893
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
893
+ .db-custom-select[data-variant=floating]:has(:focus-within,
894
894
  summary:is(input, textarea):not(:placeholder-shown),
895
895
  > select option:checked:not(.placeholder),
896
896
  input[type=checkbox]:checked,
897
897
  input[type=radio]:checked) summary::placeholder,
898
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
898
+ .db-custom-select[data-variant=floating]:has(:focus-within,
899
899
  summary:is(input, textarea):not(:placeholder-shown),
900
900
  > select option:checked:not(.placeholder),
901
901
  input[type=checkbox]:checked,
@@ -907,12 +907,12 @@ input[type=radio]:checked) [id$=-placeholder] {
907
907
  padding-block-start: var(--db-base-body-icon-font-size-2xs);
908
908
  }
909
909
  @media screen and (prefers-reduced-motion: no-preference) {
910
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
910
+ .db-custom-select[data-variant=floating]:has(:focus-within,
911
911
  summary:is(input, textarea):not(:placeholder-shown),
912
912
  > select option:checked:not(.placeholder),
913
913
  input[type=checkbox]:checked,
914
914
  input[type=radio]:checked) summary::placeholder,
915
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
915
+ .db-custom-select[data-variant=floating]:has(:focus-within,
916
916
  summary:is(input, textarea):not(:placeholder-shown),
917
917
  > select option:checked:not(.placeholder),
918
918
  input[type=checkbox]:checked,
@@ -920,7 +920,7 @@ input[type=radio]:checked) [id$=-placeholder] {
920
920
  transition: opacity var(--db-transition-straight-emotional);
921
921
  }
922
922
  }
923
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
923
+ .db-custom-select[data-variant=floating]:has(:focus-within,
924
924
  summary:is(input, textarea):not(:placeholder-shown),
925
925
  > select option:checked:not(.placeholder),
926
926
  input[type=checkbox]:checked,
@@ -946,7 +946,7 @@ input[type=radio]:checked) summary:is([type=date],
946
946
  padding-block-start: var(--db-base-body-icon-font-size-2xs);
947
947
  }
948
948
  @media screen and (prefers-reduced-motion: no-preference) {
949
- .db-custom-select[data-variant=floating]:has(summary:focus-within,
949
+ .db-custom-select[data-variant=floating]:has(:focus-within,
950
950
  summary:is(input, textarea):not(:placeholder-shown),
951
951
  > select option:checked:not(.placeholder),
952
952
  input[type=checkbox]:checked,
@@ -219,21 +219,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
219
219
  * @mixin screen-min-max
220
220
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
221
221
  */
222
- @keyframes popover-animation {
223
- 0% {
224
- opacity: 0;
225
- transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
226
- }
227
- 100% {
228
- opacity: 1;
229
- transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
230
- }
231
- }
232
- @keyframes rotate {
233
- 100% {
234
- transform: rotate(1turn);
235
- }
236
- }
237
222
  /**
238
223
  Generates 3 types of placeholders, e.g:
239
224
  - %db-component-variables-md
@@ -427,14 +412,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
427
412
  display: none;
428
413
  }
429
414
  }
415
+ .db-custom-select-dropdown > db-loading-indicator > .db-loading-indicator,
416
+ .db-custom-select-dropdown > .db-loading-indicator,
430
417
  .db-custom-select-dropdown > db-infotext > .db-infotext,
431
418
  .db-custom-select-dropdown > .db-infotext {
432
419
  padding: var(--db-spacing-fixed-lg) var(--db-spacing-fixed-md);
433
420
  margin: auto;
434
421
  }
435
- @media screen and (prefers-reduced-motion: no-preference) {
436
- .db-custom-select-dropdown > db-infotext > .db-infotext[data-icon=circular_arrows]::before,
437
- .db-custom-select-dropdown > .db-infotext[data-icon=circular_arrows]::before {
438
- animation: rotate 1.5s linear 0s infinite normal none running;
439
- }
440
- }
@@ -2,7 +2,6 @@
2
2
  @use "@db-ux/core-foundations/build/styles/colors";
3
3
  @use "@db-ux/core-foundations/build/styles/screen-sizes";
4
4
  @use "@db-ux/core-foundations/build/styles/helpers";
5
- @use "@db-ux/core-foundations/build/styles/animation";
6
5
  @use "../../styles/internal/form-components";
7
6
 
8
7
  .db-custom-select-dropdown {
@@ -69,18 +68,11 @@
69
68
  }
70
69
  }
71
70
 
71
+ > db-loading-indicator > .db-loading-indicator,
72
+ > .db-loading-indicator,
72
73
  > db-infotext > .db-infotext,
73
74
  > .db-infotext {
74
75
  padding: variables.$db-spacing-fixed-lg variables.$db-spacing-fixed-md;
75
76
  margin: auto;
76
-
77
- &[data-icon="circular_arrows"] {
78
- &::before {
79
- @media screen and (prefers-reduced-motion: no-preference) {
80
- animation: rotate 1.5s linear 0s infinite normal none
81
- running;
82
- }
83
- }
84
- }
85
77
  }
86
78
  }
@@ -58,6 +58,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
58
58
  transform: rotate(1turn);
59
59
  }
60
60
  }
61
+ @keyframes wobbling {
62
+ 50% {
63
+ inset-inline-start: 100%;
64
+ transform: translateX(calc(-100% - var(--db-loading-indicator-progress-bar-segment-padding, 2px)));
65
+ }
66
+ }
61
67
  /**
62
68
  * @mixin screen-min-max
63
69
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -144,6 +144,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
144
144
  transform: rotate(1turn);
145
145
  }
146
146
  }
147
+ @keyframes wobbling {
148
+ 50% {
149
+ inset-inline-start: 100%;
150
+ transform: translateX(calc(-100% - var(--db-loading-indicator-progress-bar-segment-padding, 2px)));
151
+ }
152
+ }
147
153
  .db-link[data-content=internal]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after, .db-link[data-content=external]:not([data-variant=inline]):not([data-show-icon-trailing=false])::after {
148
154
  color: var(--db-icon-color, inherit);
149
155
  display: inline-block;