@db-ux/core-components 4.13.1-angular-signal-forms12-ac097f6 → 4.14.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 (48) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/components/accordion/accordion.css +33 -6
  3. package/build/components/accordion/accordion.scss +25 -0
  4. package/build/components/accordion-item/accordion-item.css +9 -14
  5. package/build/components/accordion-item/accordion-item.scss +5 -3
  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/custom-button/custom-button.css +15 -20
  12. package/build/components/custom-button/custom-button.scss +1 -1
  13. package/build/components/custom-select/custom-select.css +17 -16
  14. package/build/components/custom-select/custom-select.scss +1 -1
  15. package/build/components/custom-select-dropdown/custom-select-dropdown.css +39 -26
  16. package/build/components/custom-select-form-field/custom-select-form-field.css +6 -11
  17. package/build/components/custom-select-list/custom-select-list.css +6 -11
  18. package/build/components/custom-select-list-item/custom-select-list-item.css +24 -19
  19. package/build/components/divider/divider.css +18 -8
  20. package/build/components/drawer/drawer.css +9 -4
  21. package/build/components/header/header.css +33 -15
  22. package/build/components/input/input.css +6 -11
  23. package/build/components/link/link.css +8 -1
  24. package/build/components/navigation/navigation.css +6 -11
  25. package/build/components/navigation-item/navigation-item.css +15 -11
  26. package/build/components/notification/notification.css +8 -1
  27. package/build/components/radio/radio.css +6 -11
  28. package/build/components/select/select.css +6 -11
  29. package/build/components/switch/switch.css +6 -11
  30. package/build/components/tab-item/tab-item.css +6 -11
  31. package/build/components/tab-list/tab-list.css +6 -11
  32. package/build/components/table/table.css +6 -11
  33. package/build/components/tabs/tabs.css +50 -33
  34. package/build/components/tabs/tabs.scss +10 -55
  35. package/build/components/tag/tag.css +7 -10
  36. package/build/components/tag/tag.scss +1 -5
  37. package/build/components/textarea/textarea.css +6 -11
  38. package/build/styles/absolute.css +7 -7
  39. package/build/styles/bundle.css +7 -7
  40. package/build/styles/index.css +6 -6
  41. package/build/styles/internal/_icon-passing.scss +20 -10
  42. package/build/styles/internal/_link-components.scss +8 -1
  43. package/build/styles/internal/_scrollbar.scss +71 -0
  44. package/build/styles/relative.css +7 -7
  45. package/build/styles/rollup.css +7 -7
  46. package/build/styles/visually-hidden.css +1 -1
  47. package/build/styles/webpack.css +7 -7
  48. package/package.json +2 -2
@@ -3,19 +3,14 @@
3
3
  /* Variants for adaptive components like input, select, notification, ... */
4
4
  .db-visually-hidden,
5
5
  [data-visually-hidden=true] {
6
- clip: rect(0, 0, 0, 0) !important;
7
- overflow: hidden !important;
8
- white-space: nowrap !important;
9
- font-size: 0 !important;
10
- all: initial;
11
- inset-block-start: 0 !important;
12
- block-size: 1px !important;
13
6
  position: absolute !important;
7
+ inset-block-start: 0 !important;
14
8
  inline-size: 1px !important;
15
- border-width: 0 !important;
16
- border-style: initial !important;
17
- border-color: initial !important;
18
- border-image: initial !important;
9
+ block-size: 1px !important;
10
+ overflow: hidden !important;
11
+ clip: rect(0, 0, 0, 0) !important;
12
+ white-space: nowrap !important;
13
+ border: 0 !important;
19
14
  padding: 0 !important;
20
15
  pointer-events: none !important;
21
16
  }
@@ -32,6 +27,23 @@
32
27
  }
33
28
  }
34
29
 
30
+ @keyframes popover-animation {
31
+ 0% {
32
+ pointer-events: none;
33
+ opacity: 0;
34
+ transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
35
+ }
36
+ 100% {
37
+ pointer-events: auto;
38
+ opacity: 1;
39
+ transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
40
+ }
41
+ }
42
+ @keyframes rotate {
43
+ 100% {
44
+ transform: rotate(1turn);
45
+ }
46
+ }
35
47
  .db-tabs db-tab-list:has([id$=-tab-0]:checked) ~ dbtabpanel > [id$=-tab-panel-0]:not([hidden]),
36
48
  .db-tabs db-tab-list:has([id$=-tab-0]:checked) ~ db-tab-panel > [id$=-tab-panel-0]:not([hidden]),
37
49
  .db-tabs dbtablist:has([id$=-tab-0]:checked) ~ dbtabpanel > [id$=-tab-panel-0]:not([hidden]),
@@ -313,13 +325,36 @@
313
325
  text-align: center;
314
326
  justify-content: center;
315
327
  }
328
+ .db-tabs[data-scroll-behavior=arrows] {
329
+ /*
330
+ * Scroll left / right buttons
331
+ */
332
+ }
333
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button > .db-button, .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button:is(.db-button) {
334
+ inset-inline-start: var(--db-overflow-scroll-button-inset-inline-start, 0);
335
+ }
336
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button > .db-button, .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button:is(.db-button) {
337
+ inset-inline-end: 0;
338
+ }
339
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button > .db-button, .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-left-button:is(.db-button),
340
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button > .db-button,
341
+ .db-tabs[data-scroll-behavior=arrows] .overflow-scroll-right-button:is(.db-button) {
342
+ position: absolute;
343
+ z-index: 22;
344
+ inset-block: var(--db-overflow-scroll-button-inset-block, var(--db-spacing-fixed-xs));
345
+ }
346
+ @supports (scrollbar-width: none) {
347
+ .db-tabs[data-scroll-behavior=arrows] .db-tab-list > ul {
348
+ scrollbar-width: none;
349
+ }
350
+ }
316
351
  .db-tabs[data-scroll-behavior=arrows] .db-tab-list > ul::-webkit-scrollbar {
317
352
  display: none;
318
353
  }
319
- .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-left)::before {
354
+ .db-tabs[data-scroll-behavior=arrows]:has(.overflow-scroll-left-button)::before {
320
355
  content: "";
321
356
  }
322
- .db-tabs[data-scroll-behavior=arrows]:has(.tabs-scroll-right)::after {
357
+ .db-tabs[data-scroll-behavior=arrows]:has(.overflow-scroll-right-button)::after {
323
358
  content: "";
324
359
  }
325
360
  .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before, .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
@@ -327,30 +362,12 @@
327
362
  z-index: 21;
328
363
  background-color: var(--db-adaptive-bg-basic-level-1-default);
329
364
  inline-size: var(--db-sizing-md);
330
- block-size: calc(var(--db-spacing-fixed-sm) + var(--db-sizing-md));
365
+ block-size: calc(var(--db-overflow-scroll-button-background-block-size, var(--db-spacing-fixed-sm)) + var(--db-sizing-md));
331
366
  flex: 0 0 auto;
332
367
  }
333
368
  .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::before {
334
- inset-inline-start: 0;
369
+ inset-inline-start: var(--db-overflow-scroll-button-inset-inline-start, 0);
335
370
  }
336
371
  .db-tabs[data-scroll-behavior=arrows]:has(.db-button)::after {
337
372
  inset-inline-end: 0;
338
373
  }
339
- .db-tabs[data-scroll-behavior=arrows] {
340
- /*
341
- * Scroll left / right buttons
342
- */
343
- }
344
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button) {
345
- inset-inline-start: 0;
346
- }
347
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
348
- inset-inline-end: 0;
349
- }
350
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left > .db-button, .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-left:is(.db-button),
351
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right > .db-button,
352
- .db-tabs[data-scroll-behavior=arrows] .tabs-scroll-right:is(.db-button) {
353
- position: absolute;
354
- z-index: 22;
355
- inset-block: var(--db-spacing-fixed-xs);
356
- }
@@ -2,6 +2,7 @@
2
2
  @use "@db-ux/core-foundations/build/styles/colors";
3
3
  @use "../../styles/internal/form-components";
4
4
  @use "../../styles/internal/indicator";
5
+ @use "../../styles/internal/scrollbar";
5
6
  @use "@db-ux/core-foundations/build/styles/helpers";
6
7
 
7
8
  $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
@@ -62,17 +63,8 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
62
63
  position: absolute;
63
64
  }
64
65
 
65
- @mixin angular-button-workaround() {
66
- > .db-button,
67
- &:is(.db-button) {
68
- @content;
69
- }
70
- }
71
-
72
66
  .db-tabs {
73
67
  $db-tabs-z-index-tab-list: 20;
74
- $db-tabs-z-index-button-background: 21;
75
- $db-tabs-z-index-button: 22;
76
68
 
77
69
  @extend %angular-workaround;
78
70
  @include helpers.display(flex);
@@ -294,71 +286,34 @@ $max-tabs: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
294
286
  }
295
287
 
296
288
  &[data-scroll-behavior="arrows"] {
289
+ @include scrollbar.set-overflow-scroll-buttons;
290
+
297
291
  .db-tab-list {
298
292
  > ul {
293
+ @supports (scrollbar-width: none) {
294
+ scrollbar-width: none;
295
+ }
296
+
299
297
  &::-webkit-scrollbar {
300
298
  display: none;
301
299
  }
302
300
  }
303
301
  }
304
302
 
305
- &:has(.tabs-scroll-left) {
303
+ &:has(.overflow-scroll-left-button) {
306
304
  &::before {
307
305
  content: "";
308
306
  }
309
307
  }
310
308
 
311
- &:has(.tabs-scroll-right) {
309
+ &:has(.overflow-scroll-right-button) {
312
310
  &::after {
313
311
  content: "";
314
312
  }
315
313
  }
316
314
 
317
315
  &:has(.db-button) {
318
- &::before,
319
- &::after {
320
- position: absolute;
321
- z-index: $db-tabs-z-index-button-background;
322
- background-color: colors.$db-adaptive-bg-basic-level-1-default;
323
- inline-size: variables.$db-sizing-md;
324
- block-size: calc(
325
- #{variables.$db-spacing-fixed-sm} +
326
- #{variables.$db-sizing-md}
327
- );
328
- flex: 0 0 auto;
329
- }
330
-
331
- &::before {
332
- inset-inline-start: 0;
333
- }
334
-
335
- &::after {
336
- inset-inline-end: 0;
337
- }
338
- }
339
-
340
- /*
341
- * Scroll left / right buttons
342
- */
343
- .tabs-scroll-left {
344
- @include angular-button-workaround {
345
- inset-inline-start: 0;
346
- }
347
- }
348
-
349
- .tabs-scroll-right {
350
- @include angular-button-workaround {
351
- inset-inline-end: 0;
352
- }
353
- }
354
-
355
- .tabs-scroll-left,
356
- .tabs-scroll-right {
357
- @include angular-button-workaround {
358
- position: absolute;
359
- z-index: $db-tabs-z-index-button;
360
- inset-block: variables.$db-spacing-fixed-xs;
361
- }
316
+ @include scrollbar.set-overflow-scroll-button-backgrounds;
362
317
  }
363
318
  }
364
319
  }
@@ -973,9 +973,7 @@
973
973
  /* stylelint-disable-next-line at-rule-empty-line-before */
974
974
  }
975
975
  .db-tag:not([data-no-text=true]) {
976
- --db-padding-inline-start: var(--db-spacing-fixed-2xs);
977
- /* stylelint-disable-next-line db-ux/use-spacings */
978
- padding-inline: var(--db-padding-inline-start) var(--db-spacing-fixed-2xs);
976
+ padding-inline: var(--db-spacing-fixed-2xs);
979
977
  }
980
978
  .db-tag:not([data-no-text=true]):has(.db-tab-remove-button) {
981
979
  padding-inline-end: 0;
@@ -1119,17 +1117,16 @@
1119
1117
  }
1120
1118
  .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon-leading]:not([data-show-icon-leading=false])::before, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false])::before {
1121
1119
  position: absolute;
1122
- inset-block-start: calc(50% - 0.5em);
1123
- inset-inline-start: var(--db-icon-passing-inline-start, var(--db-spacing-fixed-2xs));
1120
+ inset-block-start: var(--db-icon-passing-inset-block-start, calc(50% - 0.5em));
1121
+ inset-inline-start: var(--db-icon-passing-inset-inline-start, var(--db-spacing-fixed-2xs));
1124
1122
  pointer-events: none;
1125
1123
  z-index: 1;
1126
1124
  }
1127
- .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon-leading]:not([data-show-icon-leading=false]) label, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon-leading]:not([data-show-icon-leading=false]) button, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon-leading]:not([data-show-icon-leading=false]) a, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) label, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) button, .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) a {
1128
- --db-padding-inline-start: calc(
1129
- var(--db-spacing-fixed-2xs) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) + 1lh
1130
- );
1125
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon-leading]:not([data-show-icon-leading=false]) > :is(label, button, a),
1126
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon-leading]:not([data-show-icon-leading=false]) > * > :is(label, button, a), .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) > :is(label, button, a),
1127
+ .db-tag:has(label, button:not(.db-tab-remove-button), a)[data-icon]:not([data-show-icon=false]) > * > :is(label, button, a) {
1131
1128
  /* stylelint-disable-next-line db-ux/use-spacings */
1132
- padding-inline-start: var(--db-padding-inline-start);
1129
+ padding-inline-start: var(--db-icon-passing-padding-inline-start, calc(var(--db-spacing-fixed-2xs) + var(--db-icon-margin-end, var(--db-spacing-fixed-xs)) + var(--db-icon-font-size)));
1133
1130
  }
1134
1131
  .db-tag:has(label, button:not(.db-tab-remove-button), a) input:checked {
1135
1132
  background-color: transparent;
@@ -25,11 +25,7 @@
25
25
  }
26
26
 
27
27
  &:not([data-no-text="true"]) {
28
- --db-padding-inline-start: #{variables.$db-spacing-fixed-2xs};
29
-
30
- /* stylelint-disable-next-line db-ux/use-spacings */
31
- padding-inline: var(--db-padding-inline-start)
32
- #{variables.$db-spacing-fixed-2xs};
28
+ padding-inline: variables.$db-spacing-fixed-2xs;
33
29
 
34
30
  &:has(.db-tab-remove-button) {
35
31
  padding-inline-end: 0;
@@ -1,18 +1,13 @@
1
1
  .db-textarea[data-hide-label=true] > label, .db-visually-hidden,
2
2
  [data-visually-hidden=true] {
3
- clip: rect(0, 0, 0, 0) !important;
4
- overflow: hidden !important;
5
- white-space: nowrap !important;
6
- font-size: 0 !important;
7
- all: initial;
8
- inset-block-start: 0 !important;
9
- block-size: 1px !important;
10
3
  position: absolute !important;
4
+ inset-block-start: 0 !important;
11
5
  inline-size: 1px !important;
12
- border-width: 0 !important;
13
- border-style: initial !important;
14
- border-color: initial !important;
15
- border-image: initial !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;
16
11
  padding: 0 !important;
17
12
  pointer-events: none !important;
18
13
  }