@db-ux/core-components 4.13.1-angular-signal-forms12-ac097f6 → 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.
Files changed (105) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/agent/Best-Practise_Common-AI-Mistakes.md +3 -3
  3. package/build/components/accordion/accordion.css +33 -6
  4. package/build/components/accordion/accordion.scss +25 -0
  5. package/build/components/accordion-item/accordion-item.css +9 -14
  6. package/build/components/accordion-item/accordion-item.scss +5 -3
  7. package/build/components/badge/badge.css +1 -1
  8. package/build/components/badge/badge.scss +1 -1
  9. package/build/components/button/button.css +0 -8
  10. package/build/components/button/button.scss +0 -11
  11. package/build/components/checkbox/checkbox.css +6 -11
  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 +442 -0
  21. package/build/components/control-panel-mobile/control-panel-mobile.scss +119 -0
  22. package/build/components/control-panel-navigation/control-panel-navigation.css +402 -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 +129 -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 +15 -20
  39. package/build/components/custom-button/custom-button.scss +1 -1
  40. package/build/components/custom-select/custom-select.css +17 -16
  41. package/build/components/custom-select/custom-select.scss +1 -1
  42. package/build/components/custom-select-dropdown/custom-select-dropdown.css +39 -26
  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 +24 -19
  46. package/build/components/divider/divider.css +18 -8
  47. package/build/components/drawer/drawer.css +79 -157
  48. package/build/components/drawer/drawer.scss +130 -170
  49. package/build/components/drawer-footer/drawer-footer.css +34 -0
  50. package/build/components/drawer-footer/drawer-footer.scss +11 -0
  51. package/build/components/drawer-header/drawer-header.css +38 -0
  52. package/build/components/drawer-header/drawer-header.scss +17 -0
  53. package/build/components/header/header.css +81 -46
  54. package/build/components/header/header.scss +34 -21
  55. package/build/components/input/input.css +6 -11
  56. package/build/components/link/link.css +12 -2
  57. package/build/components/navigation/navigation.css +6 -11
  58. package/build/components/navigation-item/navigation-item.css +45 -30
  59. package/build/components/navigation-item/navigation-item.scss +28 -13
  60. package/build/components/notification/notification.css +12 -2
  61. package/build/components/page/page.css +8 -0
  62. package/build/components/page/page.scss +8 -0
  63. package/build/components/radio/radio.css +6 -11
  64. package/build/components/select/select.css +6 -11
  65. package/build/components/shell/shell-desktop.css +475 -0
  66. package/build/components/shell/shell-desktop.scss +105 -0
  67. package/build/components/shell/shell-mobile.css +441 -0
  68. package/build/components/shell/shell-mobile.scss +148 -0
  69. package/build/components/shell/shell.css +1670 -0
  70. package/build/components/shell/shell.scss +70 -0
  71. package/build/components/shell-content/shell-content.css +34 -0
  72. package/build/components/shell-content/shell-content.scss +53 -0
  73. package/build/components/shell-sub-navigation/shell-sub-navigation.css +51 -0
  74. package/build/components/shell-sub-navigation/shell-sub-navigation.scss +184 -0
  75. package/build/components/stack/stack-web-component.css +1 -0
  76. package/build/components/stack/stack.css +1 -0
  77. package/build/components/switch/switch.css +6 -11
  78. package/build/components/tab-item/tab-item.css +6 -11
  79. package/build/components/tab-list/tab-list.css +6 -11
  80. package/build/components/table/table.css +6 -11
  81. package/build/components/tabs/tabs.css +50 -33
  82. package/build/components/tabs/tabs.scss +10 -55
  83. package/build/components/tag/tag.css +7 -10
  84. package/build/components/tag/tag.scss +1 -5
  85. package/build/components/textarea/textarea.css +6 -11
  86. package/build/styles/absolute.css +7 -7
  87. package/build/styles/bundle.css +7 -7
  88. package/build/styles/index.css +6 -6
  89. package/build/styles/index.scss +18 -2
  90. package/build/styles/internal/_component.scss +4 -0
  91. package/build/styles/internal/_control-panel-actions.scss +11 -0
  92. package/build/styles/internal/_control-panel-desktop.scss +412 -0
  93. package/build/styles/internal/_control-panel-mobile.scss +107 -0
  94. package/build/styles/internal/_custom-elements.scss +32 -7
  95. package/build/styles/internal/_icon-passing.scss +20 -10
  96. package/build/styles/internal/_link-components.scss +11 -2
  97. package/build/styles/internal/_navigation-item.scss +122 -0
  98. package/build/styles/internal/_scrollbar.scss +71 -0
  99. package/build/styles/relative.css +7 -7
  100. package/build/styles/rollup.css +7 -7
  101. package/build/styles/visually-hidden.css +1 -1
  102. package/build/styles/wc-workarounds.css +1 -1
  103. package/build/styles/wc-workarounds.scss +11 -0
  104. package/build/styles/webpack.css +7 -7
  105. package/package.json +3 -3
@@ -0,0 +1,70 @@
1
+ @use "sass:string";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/screen-sizes";
4
+ @use "@db-ux/core-foundations/build/styles/colors";
5
+ @use "@db-ux/core-foundations/build/styles/helpers";
6
+ @use "../../styles/internal/control-panel-desktop";
7
+ @use "../../styles/internal/control-panel-mobile";
8
+ @use "../../styles/internal/custom-elements";
9
+ @use "../../styles/internal/form-components";
10
+ @forward "shell-desktop";
11
+ @forward "shell-mobile";
12
+
13
+ %fade-in-loading-fonts {
14
+ &[data-fade-in="true"] {
15
+ opacity: 0;
16
+
17
+ &:not([data-fonts-loaded]),
18
+ &[data-fonts-loaded="true"] {
19
+ opacity: 1;
20
+ }
21
+
22
+ @media screen and (prefers-reduced-motion: no-preference) {
23
+ transition: opacity variables.$db-transition-straight-emotional;
24
+ }
25
+ }
26
+ }
27
+
28
+ // This global rule locks body scrolling when the shell has loaded fonts.
29
+ // On SSR pages, scrolling is possible until hydration sets data-fonts-loaded="true".
30
+ body:has(.db-shell[data-fonts-loaded="true"]) {
31
+ overflow: hidden;
32
+ }
33
+
34
+ .db-shell {
35
+ @extend %fade-in-loading-fonts;
36
+
37
+ block-size: 100lvh;
38
+ inline-size: 100lvw;
39
+ display: grid;
40
+
41
+ &[data-control-panel-desktop-position="left"] {
42
+ #{string.unquote(custom-elements.$control-panel-desktop)} {
43
+ @extend %control-panel-desktop-vertical-orientation;
44
+ }
45
+ }
46
+
47
+ &[data-control-panel-desktop-position="top"] {
48
+ #{string.unquote(custom-elements.$control-panel-desktop)} {
49
+ @extend %control-panel-desktop-horizontal-orientation;
50
+ }
51
+ }
52
+
53
+ &[data-control-panel-mobile-position="top"] {
54
+ #{string.unquote(custom-elements.$control-panel-mobile)} {
55
+ @extend %control-panel-mobile-position-top;
56
+ }
57
+ }
58
+
59
+ &[data-control-panel-mobile-position="bottom"] {
60
+ #{string.unquote(custom-elements.$control-panel-mobile)} {
61
+ @extend %control-panel-mobile-position-bottom;
62
+ }
63
+ }
64
+
65
+ &[data-show-sub-navigation="false"] {
66
+ #{string.unquote(custom-elements.$shell-sub-navigation)} {
67
+ display: none;
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,34 @@
1
+ .db-shell-content[data-variant=fixed] .db-main, .db-shell-content:not([data-variant=fixed]) {
2
+ overflow-y: auto;
3
+ /* stylelint-disable-next-line db-ux/use-spacings */
4
+ padding-inline: env(safe-area-inset-left) env(safe-area-inset-right);
5
+ }
6
+
7
+ .db-shell-content {
8
+ grid-area: shell-content;
9
+ overflow-x: hidden;
10
+ display: flex;
11
+ flex-direction: column;
12
+ }
13
+ .db-shell-content:not([data-variant=fixed]) .db-main {
14
+ margin-block-end: auto;
15
+ }
16
+ .db-shell-content[data-variant=fixed] {
17
+ overflow-y: hidden;
18
+ }
19
+ .db-shell-content[data-variant=fixed] .db-main {
20
+ flex: 1 1 0;
21
+ min-block-size: 0;
22
+ }
23
+ @media all and (display-mode: standalone) {
24
+ .db-shell-content[data-variant=fixed]:not(:has(.db-main + *)) .db-main {
25
+ /* stylelint-disable-next-line db-ux/use-spacings */
26
+ margin-block-end: env(safe-area-inset-bottom);
27
+ }
28
+ }
29
+ @media all and (display-mode: standalone) {
30
+ .db-shell-content:has(.db-main + *) .db-main + *:last-child {
31
+ /* stylelint-disable-next-line db-ux/use-spacings */
32
+ padding-block-end: env(safe-area-inset-bottom);
33
+ }
34
+ }
@@ -0,0 +1,53 @@
1
+ %shell-content-overflow {
2
+ overflow-y: auto;
3
+ /* stylelint-disable-next-line db-ux/use-spacings */
4
+ padding-inline: env(safe-area-inset-left) env(safe-area-inset-right);
5
+ }
6
+
7
+ .db-shell-content {
8
+ grid-area: shell-content;
9
+ overflow-x: hidden;
10
+ display: flex;
11
+ flex-direction: column;
12
+
13
+ &:not([data-variant="fixed"]) {
14
+ @extend %shell-content-overflow;
15
+
16
+ .db-main {
17
+ margin-block-end: auto;
18
+ }
19
+ }
20
+
21
+ &[data-variant="fixed"] {
22
+ overflow-y: hidden;
23
+
24
+ .db-main {
25
+ @extend %shell-content-overflow;
26
+
27
+ flex: 1 1 0;
28
+ min-block-size: 0;
29
+ }
30
+
31
+ @media all and (display-mode: standalone) {
32
+ &:not(:has(.db-main + *)) {
33
+ .db-main {
34
+ // jscpd:ignore-start
35
+ /* stylelint-disable-next-line db-ux/use-spacings */
36
+ margin-block-end: env(safe-area-inset-bottom);
37
+
38
+ // jscpd:ignore-end
39
+ }
40
+ }
41
+ }
42
+ }
43
+
44
+ @media all and (display-mode: standalone) {
45
+ &:has(.db-main + *) {
46
+ // in this case there is some footer etc.
47
+ .db-main + *:last-child {
48
+ /* stylelint-disable-next-line db-ux/use-spacings */
49
+ padding-block-end: env(safe-area-inset-bottom);
50
+ }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,51 @@
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
+ /* Sub components for shell */
19
+ @keyframes popover-animation {
20
+ 0% {
21
+ pointer-events: none;
22
+ opacity: 0;
23
+ transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
24
+ }
25
+ 100% {
26
+ pointer-events: auto;
27
+ opacity: 1;
28
+ transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
29
+ }
30
+ }
31
+ @keyframes rotate {
32
+ 100% {
33
+ transform: rotate(1turn);
34
+ }
35
+ }
36
+ .db-shell-sub-navigation {
37
+ grid-area: sub-navigation;
38
+ overflow: hidden;
39
+ }
40
+ .db-shell-sub-navigation > .db-shell-sub-navigation-button {
41
+ grid-area: button;
42
+ display: flex;
43
+ }
44
+ @media screen and (prefers-reduced-motion: no-preference) {
45
+ .db-shell-sub-navigation > .db-shell-sub-navigation-button .db-button::before {
46
+ transition: transform var(--db-transition-straight-functional);
47
+ }
48
+ }
49
+ .db-shell-sub-navigation .db-control-panel-navigation {
50
+ grid-area: navigation;
51
+ }
@@ -0,0 +1,184 @@
1
+ @use "sass:string";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/screen-sizes";
4
+ @use "@db-ux/core-foundations/build/styles/colors";
5
+ @use "@db-ux/core-foundations/build/styles/helpers";
6
+ @use "../../styles/internal/control-panel-desktop";
7
+ @use "../../styles/internal/custom-elements";
8
+ @use "../../styles/internal/form-components";
9
+
10
+ .db-shell-sub-navigation {
11
+ grid-area: sub-navigation;
12
+ overflow: hidden;
13
+
14
+ > .db-shell-sub-navigation-button {
15
+ grid-area: button;
16
+ display: flex;
17
+
18
+ @media screen and (prefers-reduced-motion: no-preference) {
19
+ .db-button::before {
20
+ transition: transform
21
+ #{variables.$db-transition-straight-functional};
22
+ }
23
+ }
24
+ }
25
+
26
+ .db-control-panel-navigation {
27
+ grid-area: navigation;
28
+ }
29
+ }
30
+
31
+ @mixin sub-navigation-top {
32
+ #{string.unquote(custom-elements.$shell-sub-navigation)} {
33
+ @include helpers.divider("bottom", after);
34
+
35
+ .db-control-panel-navigation {
36
+ --db-overflow-scroll-button-inset-inline-start: calc(
37
+ #{variables.$db-spacing-fixed-sm} / 2
38
+ );
39
+ --db-overflow-scroll-button-inset-block: #{variables.$db-spacing-fixed-sm};
40
+
41
+ display: grid;
42
+
43
+ @include control-panel-desktop.horizontal-navigation;
44
+
45
+ > menu {
46
+ /* workaround for showing correct scrolling and focus */
47
+ padding-inline: calc(#{variables.$db-spacing-fixed-sm} / 2);
48
+ margin-inline: calc(#{variables.$db-spacing-fixed-sm} / 2);
49
+ /* stylelint-disable-next-line db-ux/use-spacings */
50
+ padding-block: var(--db-overflow-scroll-button-inset-block);
51
+ }
52
+ }
53
+
54
+ > .db-shell-sub-navigation-button {
55
+ display: none;
56
+ }
57
+ }
58
+ }
59
+
60
+ @mixin sub-navigation-left {
61
+ #{string.unquote(custom-elements.$shell-sub-navigation)} {
62
+ display: grid;
63
+
64
+ @include helpers.divider("right", after);
65
+
66
+ .db-control-panel-navigation {
67
+ max-inline-size: screen-sizes.$db-breakpoint-xs;
68
+ padding: variables.$db-spacing-fixed-md;
69
+ }
70
+
71
+ /* jscpd:ignore-start */
72
+ &[data-open="false"] {
73
+ inline-size: auto;
74
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
75
+ inline-size: calc-size(auto, size);
76
+ grid-template-areas: "button";
77
+ grid-template-rows: [button] 1fr;
78
+
79
+ /* jscpd:ignore-end */
80
+
81
+ .db-control-panel-navigation {
82
+ display: none;
83
+ }
84
+
85
+ > .db-shell-sub-navigation-button {
86
+ justify-content: center;
87
+
88
+ .db-button {
89
+ block-size: 100%;
90
+ border-radius: 0;
91
+
92
+ &::before {
93
+ transform: form-components.$dropdown-icon-transform;
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ &[data-open="true"] {
100
+ grid-template-areas:
101
+ "navigation"
102
+ "button";
103
+ grid-template-rows:
104
+ [navigation] 1fr
105
+ [button] auto;
106
+
107
+ /// Sets the inline-size (width) of the sub-navigation
108
+ inline-size: var(
109
+ --db-shell-sub-navigation-inline-size,
110
+ #{variables.$db-container-xs}
111
+ );
112
+
113
+ .db-control-panel-navigation {
114
+ overflow: hidden auto;
115
+
116
+ @include control-panel-desktop.vertical-navigation(false);
117
+
118
+ > menu {
119
+ padding-inline: 0;
120
+ }
121
+ }
122
+
123
+ > .db-shell-sub-navigation-button {
124
+ padding-block: variables.$db-spacing-fixed-xs;
125
+ padding-inline: variables.$db-spacing-fixed-lg;
126
+ justify-content: flex-end;
127
+ margin-block-start: auto;
128
+
129
+ @include helpers.divider("top");
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ @mixin sub-navigation-mobile {
136
+ #{string.unquote(custom-elements.$shell-sub-navigation)} {
137
+ > .db-shell-sub-navigation-button {
138
+ display: none;
139
+ }
140
+
141
+ .db-control-panel-navigation-item-group {
142
+ // We don't allow complex sub-navigation in mobile
143
+ // Users should add a custom implementation for this scenario or
144
+ // They should use another mobile navigation
145
+ display: none !important;
146
+ }
147
+
148
+ .db-control-panel-navigation-item {
149
+ inline-size: fit-content;
150
+ white-space: nowrap;
151
+ }
152
+
153
+ .db-control-panel-navigation {
154
+ --db-overflow-scroll-button-inset-block: #{variables.$db-spacing-fixed-xs};
155
+ --db-overflow-scroll-button-inset-inline-start: 0;
156
+ --db-control-panel-sub-navigation-mobile: 1;
157
+
158
+ display: grid;
159
+
160
+ @include control-panel-desktop.horizontal-navigation(false);
161
+
162
+ > menu {
163
+ padding-block: variables.$db-spacing-fixed-xs;
164
+
165
+ /* workaround for showing correct scrolling and focus */
166
+ padding-inline-start: calc(
167
+ #{variables.$db-spacing-fixed-sm} / 2
168
+ );
169
+ margin-inline-start: calc(
170
+ #{variables.$db-spacing-fixed-sm} / 2
171
+ );
172
+ }
173
+
174
+ &[data-variant="tree"] {
175
+ // If a users passes tree, we hide the circle icon
176
+ .db-control-panel-navigation-item a {
177
+ &::before {
178
+ display: none;
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ }
@@ -1,6 +1,7 @@
1
1
  /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
2
2
  /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
3
3
  /* Variants for adaptive components like input, select, notification, ... */
4
+ /* Sub components for shell */
4
5
  .db-stack:not([hidden]) {
5
6
  display: flex;
6
7
  }
@@ -1,6 +1,7 @@
1
1
  /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
2
2
  /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
3
3
  /* Variants for adaptive components like input, select, notification, ... */
4
+ /* Sub components for shell */
4
5
  .db-stack:not([hidden]) {
5
6
  display: flex;
6
7
  }
@@ -4,19 +4,14 @@
4
4
  /* Variants for adaptive components like input, select, notification, ... */
5
5
  .db-visually-hidden,
6
6
  [data-visually-hidden=true] {
7
- clip: rect(0, 0, 0, 0) !important;
8
- overflow: hidden !important;
9
- white-space: nowrap !important;
10
- font-size: 0 !important;
11
- all: initial;
12
- inset-block-start: 0 !important;
13
- block-size: 1px !important;
14
7
  position: absolute !important;
8
+ inset-block-start: 0 !important;
15
9
  inline-size: 1px !important;
16
- border-width: 0 !important;
17
- border-style: initial !important;
18
- border-color: initial !important;
19
- border-image: initial !important;
10
+ block-size: 1px !important;
11
+ overflow: hidden !important;
12
+ clip: rect(0, 0, 0, 0) !important;
13
+ white-space: nowrap !important;
14
+ border: 0 !important;
20
15
  padding: 0 !important;
21
16
  pointer-events: none !important;
22
17
  }
@@ -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
  }
@@ -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
  }
@@ -2,19 +2,14 @@
2
2
  /* stylelint-disable-next-line scss/dollar-variable-colon-space-after */
3
3
  /* Variants for adaptive components like input, select, notification, ... */
4
4
  .db-table:not([data-show-caption=true]) caption {
5
- clip: rect(0, 0, 0, 0) !important;
6
- overflow: hidden !important;
7
- white-space: nowrap !important;
8
- font-size: 0 !important;
9
- all: initial;
10
- inset-block-start: 0 !important;
11
- block-size: 1px !important;
12
5
  position: absolute !important;
6
+ inset-block-start: 0 !important;
13
7
  inline-size: 1px !important;
14
- border-width: 0 !important;
15
- border-style: initial !important;
16
- border-color: initial !important;
17
- border-image: initial !important;
8
+ block-size: 1px !important;
9
+ overflow: hidden !important;
10
+ clip: rect(0, 0, 0, 0) !important;
11
+ white-space: nowrap !important;
12
+ border: 0 !important;
18
13
  padding: 0 !important;
19
14
  pointer-events: none !important;
20
15
  }
@@ -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
- }