@db-ux/core-components 1.0.0-test-13b991d

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 (167) hide show
  1. package/README.md +107 -0
  2. package/build/assets/fonts/OFL.txt +93 -0
  3. package/build/assets/fonts/OpenSans-Bold-EU.woff2 +0 -0
  4. package/build/assets/fonts/OpenSans-Bold.ttf +0 -0
  5. package/build/assets/fonts/OpenSans-ExtraBold-EU.woff2 +0 -0
  6. package/build/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  7. package/build/assets/fonts/OpenSans-Light-EU.woff2 +0 -0
  8. package/build/assets/fonts/OpenSans-Light.ttf +0 -0
  9. package/build/assets/fonts/OpenSans-Medium-EU.woff2 +0 -0
  10. package/build/assets/fonts/OpenSans-Medium.ttf +0 -0
  11. package/build/assets/fonts/OpenSans-Regular-EU.woff2 +0 -0
  12. package/build/assets/fonts/OpenSans-Regular.ttf +0 -0
  13. package/build/assets/fonts/OpenSans-SemiBold-EU.woff2 +0 -0
  14. package/build/assets/fonts/OpenSans-SemiBold.ttf +0 -0
  15. package/build/assets/fonts/README.md +23 -0
  16. package/build/assets/fonts/generate-eu-fonts.ts +46 -0
  17. package/build/assets/fonts/unicode-eu.txt +14 -0
  18. package/build/assets/icons/DB_LICENSE +253 -0
  19. package/build/assets/icons/LICENCES.json +153 -0
  20. package/build/assets/icons/arrow_down.svg +1 -0
  21. package/build/assets/icons/arrow_left.svg +1 -0
  22. package/build/assets/icons/arrow_right.svg +1 -0
  23. package/build/assets/icons/arrow_up.svg +1 -0
  24. package/build/assets/icons/arrow_up_right.svg +1 -0
  25. package/build/assets/icons/brand.svg +1 -0
  26. package/build/assets/icons/calendar.svg +5 -0
  27. package/build/assets/icons/check-circle.svg +1 -0
  28. package/build/assets/icons/check.svg +1 -0
  29. package/build/assets/icons/check_circle.svg +1 -0
  30. package/build/assets/icons/chevron_down.svg +1 -0
  31. package/build/assets/icons/chevron_left.svg +1 -0
  32. package/build/assets/icons/chevron_right.svg +1 -0
  33. package/build/assets/icons/chevron_up.svg +1 -0
  34. package/build/assets/icons/circle.svg +1 -0
  35. package/build/assets/icons/clock.svg +1 -0
  36. package/build/assets/icons/cross.svg +1 -0
  37. package/build/assets/icons/cross_circle.svg +1 -0
  38. package/build/assets/icons/exclamation_mark_circle.svg +1 -0
  39. package/build/assets/icons/exclamation_mark_triangle.svg +1 -0
  40. package/build/assets/icons/fonts/all/db-ux.woff2 +0 -0
  41. package/build/assets/icons/fonts/default/db-ux.woff2 +0 -0
  42. package/build/assets/icons/fonts/default_12/db-ux.woff2 +0 -0
  43. package/build/assets/icons/fonts/default_14/db-ux.woff2 +0 -0
  44. package/build/assets/icons/fonts/default_16/db-ux.woff2 +0 -0
  45. package/build/assets/icons/fonts/default_20/db-ux.woff2 +0 -0
  46. package/build/assets/icons/fonts/default_24/db-ux.woff2 +0 -0
  47. package/build/assets/icons/fonts/default_28/db-ux.woff2 +0 -0
  48. package/build/assets/icons/fonts/default_32/db-ux.woff2 +0 -0
  49. package/build/assets/icons/fonts/default_48/db-ux.woff2 +0 -0
  50. package/build/assets/icons/fonts/default_64/db-ux.woff2 +0 -0
  51. package/build/assets/icons/fonts/filled/db-ux.woff2 +0 -0
  52. package/build/assets/icons/fonts/filled_12/db-ux.woff2 +0 -0
  53. package/build/assets/icons/fonts/filled_14/db-ux.woff2 +0 -0
  54. package/build/assets/icons/fonts/filled_16/db-ux.woff2 +0 -0
  55. package/build/assets/icons/fonts/filled_20/db-ux.woff2 +0 -0
  56. package/build/assets/icons/fonts/filled_24/db-ux.woff2 +0 -0
  57. package/build/assets/icons/fonts/filled_28/db-ux.woff2 +0 -0
  58. package/build/assets/icons/fonts/filled_32/db-ux.woff2 +0 -0
  59. package/build/assets/icons/fonts/filled_48/db-ux.woff2 +0 -0
  60. package/build/assets/icons/fonts/filled_64/db-ux.woff2 +0 -0
  61. package/build/assets/icons/information_circle.svg +1 -0
  62. package/build/assets/icons/magnifying_glass.svg +1 -0
  63. package/build/assets/icons/menu.svg +1 -0
  64. package/build/assets/icons/minus.svg +1 -0
  65. package/build/assets/icons/plus.svg +1 -0
  66. package/build/assets/icons/resize_handle_corner.svg +1 -0
  67. package/build/assets/icons/x_placeholder.svg +1 -0
  68. package/build/components/accordion/accordion.css +78 -0
  69. package/build/components/accordion/accordion.scss +62 -0
  70. package/build/components/accordion-item/accordion-item.css +239 -0
  71. package/build/components/accordion-item/accordion-item.scss +73 -0
  72. package/build/components/badge/badge.css +253 -0
  73. package/build/components/badge/badge.scss +107 -0
  74. package/build/components/brand/brand.css +42 -0
  75. package/build/components/brand/brand.scss +32 -0
  76. package/build/components/button/button.css +165 -0
  77. package/build/components/button/button.scss +123 -0
  78. package/build/components/card/card.css +115 -0
  79. package/build/components/card/card.scss +56 -0
  80. package/build/components/checkbox/checkbox.css +476 -0
  81. package/build/components/checkbox/checkbox.scss +80 -0
  82. package/build/components/divider/divider.css +84 -0
  83. package/build/components/divider/divider.scss +56 -0
  84. package/build/components/drawer/drawer.css +303 -0
  85. package/build/components/drawer/drawer.scss +228 -0
  86. package/build/components/header/header.css +697 -0
  87. package/build/components/header/header.scss +246 -0
  88. package/build/components/icon/icon.css +24 -0
  89. package/build/components/icon/icon.scss +14 -0
  90. package/build/components/infotext/infotext.css +152 -0
  91. package/build/components/infotext/infotext.scss +54 -0
  92. package/build/components/input/input.css +712 -0
  93. package/build/components/input/input.scss +147 -0
  94. package/build/components/link/link.css +257 -0
  95. package/build/components/link/link.scss +60 -0
  96. package/build/components/navigation/navigation.css +218 -0
  97. package/build/components/navigation/navigation.scss +117 -0
  98. package/build/components/navigation-item/navigation-item.css +482 -0
  99. package/build/components/navigation-item/navigation-item.scss +310 -0
  100. package/build/components/notification/notification-grid-default.css +1 -0
  101. package/build/components/notification/notification-grid-default.scss +52 -0
  102. package/build/components/notification/notification-grid-non-overlay.css +1 -0
  103. package/build/components/notification/notification-grid-non-overlay.scss +66 -0
  104. package/build/components/notification/notification-grid-overlay.css +1 -0
  105. package/build/components/notification/notification-grid-overlay.scss +55 -0
  106. package/build/components/notification/notification.css +1173 -0
  107. package/build/components/notification/notification.scss +216 -0
  108. package/build/components/page/page.css +49 -0
  109. package/build/components/page/page.scss +52 -0
  110. package/build/components/popover/popover.css +291 -0
  111. package/build/components/popover/popover.scss +26 -0
  112. package/build/components/radio/radio.css +390 -0
  113. package/build/components/radio/radio.scss +49 -0
  114. package/build/components/section/section.css +38 -0
  115. package/build/components/section/section.scss +51 -0
  116. package/build/components/select/select.css +651 -0
  117. package/build/components/select/select.scss +83 -0
  118. package/build/components/stack/stack-web-component.css +93 -0
  119. package/build/components/stack/stack-web-component.scss +1 -0
  120. package/build/components/stack/stack.css +93 -0
  121. package/build/components/stack/stack.scss +5 -0
  122. package/build/components/switch/switch.css +901 -0
  123. package/build/components/switch/switch.scss +233 -0
  124. package/build/components/tab-item/tab-item.css +160 -0
  125. package/build/components/tab-item/tab-item.scss +135 -0
  126. package/build/components/tab-list/tab-list.css +202 -0
  127. package/build/components/tab-list/tab-list.scss +18 -0
  128. package/build/components/tab-panel/tab-panel.css +10 -0
  129. package/build/components/tab-panel/tab-panel.scss +5 -0
  130. package/build/components/tabs/tabs.css +358 -0
  131. package/build/components/tabs/tabs.scss +361 -0
  132. package/build/components/tag/tag.css +1544 -0
  133. package/build/components/tag/tag.scss +236 -0
  134. package/build/components/textarea/textarea.css +546 -0
  135. package/build/components/textarea/textarea.scss +86 -0
  136. package/build/components/tooltip/tooltip.css +346 -0
  137. package/build/components/tooltip/tooltip.scss +137 -0
  138. package/build/styles/absolute.css +1559 -0
  139. package/build/styles/absolute.scss +5 -0
  140. package/build/styles/component-animations.css +1 -0
  141. package/build/styles/component-animations.scss +17 -0
  142. package/build/styles/dialog-init.css +1 -0
  143. package/build/styles/dialog-init.scss +57 -0
  144. package/build/styles/index.css +615 -0
  145. package/build/styles/index.scss +32 -0
  146. package/build/styles/internal/_button-components.scss +8 -0
  147. package/build/styles/internal/_component.scss +79 -0
  148. package/build/styles/internal/_custom-elements.scss +7 -0
  149. package/build/styles/internal/_db-puls.scss +83 -0
  150. package/build/styles/internal/_form-components.scss +516 -0
  151. package/build/styles/internal/_icon-passing.scss +26 -0
  152. package/build/styles/internal/_link-components.scss +62 -0
  153. package/build/styles/internal/_popover-component.scss +213 -0
  154. package/build/styles/internal/_scrollbar.scss +93 -0
  155. package/build/styles/internal/_stack-components.scss +104 -0
  156. package/build/styles/internal/_tag-components.scss +234 -0
  157. package/build/styles/relative.css +1559 -0
  158. package/build/styles/relative.scss +15 -0
  159. package/build/styles/rollup.css +1559 -0
  160. package/build/styles/rollup.scss +5 -0
  161. package/build/styles/visually-hidden.css +1 -0
  162. package/build/styles/visually-hidden.scss +6 -0
  163. package/build/styles/wc-workarounds.css +1 -0
  164. package/build/styles/wc-workarounds.scss +12 -0
  165. package/build/styles/webpack.css +1559 -0
  166. package/build/styles/webpack.scss +5 -0
  167. package/package.json +62 -0
@@ -0,0 +1,56 @@
1
+ @use "@db-ux/core-foundations/build/styles/variables";
2
+ @use "@db-ux/core-foundations/build/styles/helpers";
3
+
4
+ .db-divider {
5
+ &:is(:not([data-margin]), [data-margin="small"]) {
6
+ margin: variables.$db-spacing-fixed-sm 0;
7
+ }
8
+
9
+ &[data-margin="medium"] {
10
+ margin: variables.$db-spacing-fixed-md 0;
11
+ }
12
+
13
+ &[data-margin="large"] {
14
+ margin: variables.$db-spacing-fixed-lg 0;
15
+ }
16
+
17
+ &[data-margin="none"] {
18
+ margin: 0;
19
+ }
20
+
21
+ &:not([data-variant="vertical"]) {
22
+ @include helpers.divider();
23
+
24
+ block-size: variables.$db-border-height-3xs;
25
+
26
+ &[data-width="full"] {
27
+ inline-size: 100%;
28
+ }
29
+ }
30
+
31
+ &[data-variant="vertical"] {
32
+ @include helpers.divider("left");
33
+
34
+ inline-size: variables.$db-border-height-3xs;
35
+
36
+ &:is(:not([data-margin]), [data-margin="small"]) {
37
+ margin: 0 variables.$db-spacing-fixed-sm;
38
+ }
39
+
40
+ &[data-margin="medium"] {
41
+ margin: 0 variables.$db-spacing-fixed-md;
42
+ }
43
+
44
+ &[data-margin="large"] {
45
+ margin: 0 variables.$db-spacing-fixed-lg;
46
+ }
47
+
48
+ &[data-margin="none"] {
49
+ margin: 0;
50
+ }
51
+
52
+ &[data-width="full"] {
53
+ block-size: 100%;
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,303 @@
1
+ /* Use sizing's for fixed heights/widths e.g. the db-button has always a fixed height */
2
+ /* Use fixed spacings for all kind of distances (margin, padding, ...) */
3
+ /* The primary use-case for responsive spacings are
4
+ paddings/gaps in an application e.g. the <main> should have a responsive padding. */
5
+ /* Elevation */
6
+ /* Border */
7
+ /* Transitions */
8
+ /* Variants for adaptive components like input, select, notification, ... */
9
+ @keyframes show-right-to-left {
10
+ from {
11
+ transform: translateX(110%);
12
+ }
13
+ to {
14
+ transform: translateX(0%);
15
+ }
16
+ }
17
+ @keyframes hide-right-to-left {
18
+ from {
19
+ transform: translateX(0%);
20
+ }
21
+ to {
22
+ transform: translateX(110%);
23
+ }
24
+ }
25
+ @keyframes show-left-to-right {
26
+ from {
27
+ transform: translateX(-110%);
28
+ }
29
+ to {
30
+ transform: translateX(0%);
31
+ }
32
+ }
33
+ @keyframes hide-left-to-right {
34
+ from {
35
+ transform: translateX(0%);
36
+ }
37
+ to {
38
+ transform: translateX(-110%);
39
+ }
40
+ }
41
+ @keyframes show-bottom-to-top {
42
+ from {
43
+ transform: translateY(110%);
44
+ }
45
+ to {
46
+ transform: translateY(0%);
47
+ }
48
+ }
49
+ @keyframes hide-bottom-to-top {
50
+ from {
51
+ transform: translateY(0%);
52
+ }
53
+ to {
54
+ transform: translateY(110%);
55
+ }
56
+ }
57
+ @keyframes show-top-to-bottom {
58
+ from {
59
+ transform: translateY(-110%);
60
+ }
61
+ to {
62
+ transform: translateY(0%);
63
+ }
64
+ }
65
+ @keyframes hide-top-to-bottom {
66
+ from {
67
+ transform: translateY(0%);
68
+ }
69
+ to {
70
+ transform: translateY(-110%);
71
+ }
72
+ }
73
+ @keyframes accordion-open {
74
+ 0% {
75
+ opacity: 0;
76
+ transform: translateY(-10%);
77
+ }
78
+ 100% {
79
+ opacity: 1;
80
+ transform: translateY(0%);
81
+ }
82
+ }
83
+ @keyframes popover-animation {
84
+ 0% {
85
+ opacity: 0;
86
+ transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
87
+ }
88
+ 100% {
89
+ opacity: 1;
90
+ transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
91
+ }
92
+ }
93
+ dialog[data-variant], dialog[data-backdrop] {
94
+ position: fixed;
95
+ inset: 0;
96
+ z-index: 9995;
97
+ }
98
+
99
+ dialog {
100
+ padding: 0;
101
+ margin: 0;
102
+ border: 0;
103
+ z-index: 9996;
104
+ color: inherit;
105
+ }
106
+ dialog[data-variant=inside]:not([data-backdrop=none])::before {
107
+ content: "";
108
+ position: fixed;
109
+ inset: 0;
110
+ }
111
+ dialog:not([data-backdrop=none])::backdrop, dialog:not([data-backdrop=none])::before {
112
+ background-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
113
+ opacity: 0.64;
114
+ }
115
+ dialog:not([data-backdrop=none])[data-backdrop=invisible]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=invisible]::before {
116
+ opacity: 0;
117
+ }
118
+ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=weak]::before {
119
+ opacity: 0.32;
120
+ }
121
+
122
+ .db-drawer .db-drawer-container {
123
+ inset-inline: auto 0;
124
+ }
125
+ .db-drawer [data-rounded=true].db-drawer-container {
126
+ border-start-start-radius: var(--db-border-radius-sm);
127
+ border-end-start-radius: var(--db-border-radius-sm);
128
+ }
129
+
130
+ .db-drawer .db-drawer-container[data-direction=left] {
131
+ inset-inline: 0 auto;
132
+ }
133
+ .db-drawer [data-rounded=true].db-drawer-container[data-direction=left] {
134
+ border-start-end-radius: var(--db-border-radius-sm);
135
+ border-end-end-radius: var(--db-border-radius-sm);
136
+ }
137
+
138
+ .db-drawer .db-drawer-container[data-direction=down]:not([data-width=full]), .db-drawer .db-drawer-container[data-direction=up]:not([data-width=full]) {
139
+ max-block-size: var(--db-drawer-max-height, calc(100% - var(--db-spacing-fixed-xl)));
140
+ max-inline-size: none;
141
+ }
142
+
143
+ .db-drawer .db-drawer-container[data-direction=up] {
144
+ inset: auto 0 0;
145
+ }
146
+ .db-drawer [data-rounded=true].db-drawer-container[data-direction=up] {
147
+ border-start-end-radius: var(--db-border-radius-sm);
148
+ border-start-start-radius: var(--db-border-radius-sm);
149
+ }
150
+
151
+ .db-drawer .db-drawer-container[data-direction=down] {
152
+ inset: 0 0 auto;
153
+ }
154
+ .db-drawer [data-rounded=true].db-drawer-container[data-direction=down] {
155
+ border-end-end-radius: var(--db-border-radius-sm);
156
+ border-end-start-radius: var(--db-border-radius-sm);
157
+ }
158
+
159
+ .db-drawer .db-drawer-container {
160
+ padding-block: var(--db-spacing-fixed-sm);
161
+ }
162
+ .db-drawer [data-spacing=small].db-drawer-container {
163
+ padding-block: var(--db-spacing-fixed-xs);
164
+ }
165
+ .db-drawer [data-spacing=small].db-drawer-container .db-drawer-header {
166
+ /* stylelint-disable-next-line db-ux/use-spacings */
167
+ padding-block-end: var(--db-drawer-header-padding-block-end, var(--db-spacing-fixed-xs));
168
+ padding-inline: var(--db-spacing-fixed-md);
169
+ }
170
+ .db-drawer [data-spacing=small].db-drawer-container .db-drawer-content {
171
+ /* stylelint-disable-next-line db-ux/use-spacings */
172
+ padding-inline: var(--db-drawer-content-padding-inline, var(--db-spacing-fixed-md));
173
+ overflow-y: auto;
174
+ }
175
+ .db-drawer .db-drawer-container .db-drawer-header {
176
+ /* stylelint-disable-next-line db-ux/use-spacings */
177
+ padding-block-end: var(--db-drawer-header-padding-block-end, var(--db-spacing-fixed-sm));
178
+ padding-inline: var(--db-spacing-fixed-lg);
179
+ }
180
+ .db-drawer .db-drawer-container .db-drawer-content {
181
+ /* stylelint-disable-next-line db-ux/use-spacings */
182
+ padding-inline: var(--db-drawer-content-padding-inline, var(--db-spacing-fixed-lg));
183
+ overflow-y: auto;
184
+ }
185
+ .db-drawer [data-spacing=medium].db-drawer-container {
186
+ padding-block: var(--db-spacing-fixed-sm);
187
+ }
188
+ .db-drawer [data-spacing=medium].db-drawer-container .db-drawer-header {
189
+ /* stylelint-disable-next-line db-ux/use-spacings */
190
+ padding-block-end: var(--db-drawer-header-padding-block-end, var(--db-spacing-fixed-sm));
191
+ padding-inline: var(--db-spacing-fixed-lg);
192
+ }
193
+ .db-drawer [data-spacing=medium].db-drawer-container .db-drawer-content {
194
+ /* stylelint-disable-next-line db-ux/use-spacings */
195
+ padding-inline: var(--db-drawer-content-padding-inline, var(--db-spacing-fixed-lg));
196
+ overflow-y: auto;
197
+ }
198
+ .db-drawer [data-spacing=large].db-drawer-container {
199
+ padding-block: var(--db-spacing-fixed-md);
200
+ }
201
+ .db-drawer [data-spacing=large].db-drawer-container .db-drawer-header {
202
+ /* stylelint-disable-next-line db-ux/use-spacings */
203
+ padding-block-end: var(--db-drawer-header-padding-block-end, var(--db-spacing-fixed-md));
204
+ padding-inline: var(--db-spacing-fixed-xl);
205
+ }
206
+ .db-drawer [data-spacing=large].db-drawer-container .db-drawer-content {
207
+ /* stylelint-disable-next-line db-ux/use-spacings */
208
+ padding-inline: var(--db-drawer-content-padding-inline, var(--db-spacing-fixed-xl));
209
+ overflow-y: auto;
210
+ }
211
+ .db-drawer [data-spacing=none].db-drawer-container {
212
+ padding-block: 0;
213
+ }
214
+ .db-drawer [data-spacing=none].db-drawer-container .db-drawer-header {
215
+ /* stylelint-disable-next-line db-ux/use-spacings */
216
+ padding-block-end: var(--db-drawer-header-padding-block-end, 0);
217
+ padding-inline: 0;
218
+ }
219
+ .db-drawer [data-spacing=none].db-drawer-container .db-drawer-content {
220
+ /* stylelint-disable-next-line db-ux/use-spacings */
221
+ padding-inline: var(--db-drawer-content-padding-inline, 0);
222
+ overflow-y: auto;
223
+ }
224
+
225
+ .db-drawer .db-drawer-container {
226
+ display: flex;
227
+ flex-direction: column;
228
+ background-color: var(--db-adaptive-bg-basic-level-1-default);
229
+ block-size: 100%;
230
+ inline-size: 100%;
231
+ position: fixed;
232
+ box-shadow: var(--db-elevation-md);
233
+ }
234
+ .db-drawer .db-drawer-container:not([data-width=full]) {
235
+ max-inline-size: var(--db-drawer-max-width, calc(100% - var(--db-spacing-fixed-xl)));
236
+ }
237
+ .db-drawer .db-drawer-container[data-rounded=true] {
238
+ box-shadow: var(--db-elevation-md);
239
+ }
240
+ .db-drawer .db-drawer-container .db-drawer-header {
241
+ --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
242
+ position: relative;
243
+ display: none;
244
+ }
245
+ .db-drawer .db-drawer-container .db-drawer-header[data-emphasis=strong] {
246
+ --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
247
+ }
248
+ .db-drawer .db-drawer-container .db-drawer-header::before {
249
+ content: "";
250
+ background-color: var(--db-divider-bg-color);
251
+ position: absolute;
252
+ block-size: var(--db-border-height-3xs);
253
+ inset-block-end: 0;
254
+ inset-inline: 0;
255
+ /* stylelint-disable-next-line at-rule-empty-line-before */
256
+ }
257
+ @media (forced-colors: active) {
258
+ .db-drawer .db-drawer-container .db-drawer-header {
259
+ /* stylelint-disable-next-line db-ux/use-border-color */
260
+ border: var(--db-border-height-3xs) solid var(--db-divider-bg-color);
261
+ }
262
+ }
263
+ .db-drawer .db-drawer-container .db-drawer-header .db-drawer-header-text {
264
+ margin-block: auto;
265
+ font-weight: 700;
266
+ }
267
+ .db-drawer .db-drawer-container .db-drawer-header .button-close-drawer {
268
+ margin-inline-start: auto;
269
+ }
270
+ .db-drawer .db-drawer-container .db-drawer-header .button-close-drawer button {
271
+ margin-inline-start: auto;
272
+ }
273
+ .db-drawer .db-drawer-container .db-drawer-header:has(.button-close-drawer), .db-drawer .db-drawer-container .db-drawer-header:has(:not(.db-drawer-header-text:empty)) {
274
+ display: flex;
275
+ }
276
+ @media screen and (prefers-reduced-motion: no-preference) {
277
+ .db-drawer[open] .db-drawer-container:not([data-direction]), .db-drawer[open] .db-drawer-container[data-direction=right] {
278
+ animation: show-right-to-left var(--db-transition-straight-show);
279
+ }
280
+ .db-drawer[open] .db-drawer-container[data-direction=left] {
281
+ animation: show-left-to-right var(--db-transition-straight-show);
282
+ }
283
+ .db-drawer[open] .db-drawer-container[data-direction=up] {
284
+ animation: show-bottom-to-top var(--db-transition-straight-show);
285
+ }
286
+ .db-drawer[open] .db-drawer-container[data-direction=down] {
287
+ animation: show-top-to-bottom var(--db-transition-straight-show);
288
+ }
289
+ }
290
+ @media screen and (prefers-reduced-motion: no-preference) {
291
+ .db-drawer[open] .db-drawer-container[hidden]:not([data-direction]), .db-drawer[open] .db-drawer-container[hidden][data-direction=right] {
292
+ animation: hide-right-to-left var(--db-transition-straight-hide);
293
+ }
294
+ .db-drawer[open] .db-drawer-container[hidden][data-direction=left] {
295
+ animation: hide-left-to-right var(--db-transition-straight-hide);
296
+ }
297
+ .db-drawer[open] .db-drawer-container[hidden][data-direction=up] {
298
+ animation: hide-bottom-to-top var(--db-transition-straight-hide);
299
+ }
300
+ .db-drawer[open] .db-drawer-container[hidden][data-direction=down] {
301
+ animation: hide-top-to-bottom var(--db-transition-straight-hide);
302
+ }
303
+ }
@@ -0,0 +1,228 @@
1
+ @use "sass:map";
2
+ @use "@db-ux/core-foundations/build/styles/variables";
3
+ @use "@db-ux/core-foundations/build/styles/helpers";
4
+ @use "@db-ux/core-foundations/build/styles/animation";
5
+ @use "@db-ux/core-foundations/build/styles/colors";
6
+ @use "../../styles/internal/component";
7
+ @use "../../styles/dialog-init";
8
+
9
+ %direction-right {
10
+ inset-inline: auto 0;
11
+
12
+ &[data-rounded="true"] {
13
+ border-start-start-radius: variables.$db-border-radius-sm;
14
+ border-end-start-radius: variables.$db-border-radius-sm;
15
+ }
16
+ }
17
+
18
+ %direction-left {
19
+ inset-inline: 0 auto;
20
+
21
+ &[data-rounded="true"] {
22
+ border-start-end-radius: variables.$db-border-radius-sm;
23
+ border-end-end-radius: variables.$db-border-radius-sm;
24
+ }
25
+ }
26
+
27
+ %full-horizontal {
28
+ &:not([data-width="full"]) {
29
+ max-block-size: var(
30
+ --db-drawer-max-height,
31
+ calc(100% - #{variables.$db-spacing-fixed-xl})
32
+ );
33
+ max-inline-size: none;
34
+ }
35
+ }
36
+
37
+ %direction-up {
38
+ @extend %full-horizontal;
39
+
40
+ inset: auto 0 0;
41
+
42
+ &[data-rounded="true"] {
43
+ border-start-end-radius: variables.$db-border-radius-sm;
44
+ border-start-start-radius: variables.$db-border-radius-sm;
45
+ }
46
+ }
47
+
48
+ %direction-down {
49
+ @extend %full-horizontal;
50
+
51
+ inset: 0 0 auto;
52
+
53
+ &[data-rounded="true"] {
54
+ border-end-end-radius: variables.$db-border-radius-sm;
55
+ border-end-start-radius: variables.$db-border-radius-sm;
56
+ }
57
+ }
58
+
59
+ $spacings: (
60
+ "small": (
61
+ "block": variables.$db-spacing-fixed-xs,
62
+ "inline": variables.$db-spacing-fixed-md
63
+ ),
64
+ "medium": (
65
+ "block": variables.$db-spacing-fixed-sm,
66
+ "inline": variables.$db-spacing-fixed-lg
67
+ ),
68
+ "large": (
69
+ "block": variables.$db-spacing-fixed-md,
70
+ "inline": variables.$db-spacing-fixed-xl
71
+ ),
72
+ "none": (
73
+ "block": 0,
74
+ "inline": 0
75
+ )
76
+ );
77
+
78
+ @mixin get-spacing($spacing) {
79
+ padding-block: map.get($spacing, "block");
80
+
81
+ .db-drawer-header {
82
+ // We need this variable to overwrite it inside the header
83
+ /* stylelint-disable-next-line db-ux/use-spacings */
84
+ padding-block-end: var(
85
+ --db-drawer-header-padding-block-end,
86
+ #{map.get($spacing, "block")}
87
+ );
88
+ padding-inline: map.get($spacing, "inline");
89
+ }
90
+
91
+ .db-drawer-content {
92
+ // We need this variable to overwrite it inside the header
93
+ /* stylelint-disable-next-line db-ux/use-spacings */
94
+ padding-inline: var(
95
+ --db-drawer-content-padding-inline,
96
+ #{map.get($spacing, "inline")}
97
+ );
98
+ // TODO: Evaluate whether we need overflow: hidden and that for only specifically set y here.
99
+ overflow-y: auto;
100
+ }
101
+ }
102
+
103
+ %spacing-drawer {
104
+ @each $name, $spacing in $spacings {
105
+ @if ($name == "medium") {
106
+ @include get-spacing($spacing);
107
+ }
108
+
109
+ &[data-spacing="#{$name}"] {
110
+ @include get-spacing($spacing);
111
+ }
112
+ }
113
+ }
114
+
115
+ .db-drawer {
116
+ .db-drawer-container {
117
+ @extend %direction-right;
118
+ @extend %spacing-drawer;
119
+
120
+ display: flex;
121
+ flex-direction: column;
122
+ background-color: colors.$db-adaptive-bg-basic-level-1-default;
123
+ block-size: 100%;
124
+ inline-size: 100%;
125
+ position: fixed;
126
+ box-shadow: variables.$db-elevation-md;
127
+
128
+ &:not([data-width="full"]) {
129
+ max-inline-size: var(
130
+ --db-drawer-max-width,
131
+ calc(100% - #{variables.$db-spacing-fixed-xl})
132
+ );
133
+ }
134
+
135
+ &[data-rounded="true"] {
136
+ box-shadow: variables.$db-elevation-md;
137
+ }
138
+
139
+ &[data-direction="left"] {
140
+ @extend %direction-left;
141
+ }
142
+
143
+ &[data-direction="up"] {
144
+ @extend %direction-up;
145
+ }
146
+
147
+ &[data-direction="down"] {
148
+ @extend %direction-down;
149
+ }
150
+
151
+ .db-drawer-header {
152
+ @include helpers.divider("bottom");
153
+
154
+ display: none;
155
+
156
+ .db-drawer-header-text {
157
+ margin-block: auto;
158
+ font-weight: 700;
159
+ }
160
+
161
+ .button-close-drawer {
162
+ margin-inline-start: auto;
163
+
164
+ // angular-workaround
165
+ button {
166
+ margin-inline-start: auto;
167
+ }
168
+ }
169
+
170
+ &:has(.button-close-drawer),
171
+ &:has(:not(.db-drawer-header-text:empty)) {
172
+ display: flex;
173
+ }
174
+ }
175
+ }
176
+
177
+ &[open] {
178
+ .db-drawer-container {
179
+ @media screen and (prefers-reduced-motion: no-preference) {
180
+ &:not([data-direction]),
181
+ &[data-direction="right"] {
182
+ animation: show-right-to-left
183
+ #{variables.$db-transition-straight-show};
184
+ }
185
+
186
+ &[data-direction="left"] {
187
+ animation: show-left-to-right
188
+ #{variables.$db-transition-straight-show};
189
+ }
190
+
191
+ &[data-direction="up"] {
192
+ animation: show-bottom-to-top
193
+ #{variables.$db-transition-straight-show};
194
+ }
195
+
196
+ &[data-direction="down"] {
197
+ animation: show-top-to-bottom
198
+ #{variables.$db-transition-straight-show};
199
+ }
200
+ }
201
+
202
+ &[hidden] {
203
+ @media screen and (prefers-reduced-motion: no-preference) {
204
+ &:not([data-direction]),
205
+ &[data-direction="right"] {
206
+ animation: hide-right-to-left
207
+ #{variables.$db-transition-straight-hide};
208
+ }
209
+
210
+ &[data-direction="left"] {
211
+ animation: hide-left-to-right
212
+ #{variables.$db-transition-straight-hide};
213
+ }
214
+
215
+ &[data-direction="up"] {
216
+ animation: hide-bottom-to-top
217
+ #{variables.$db-transition-straight-hide};
218
+ }
219
+
220
+ &[data-direction="down"] {
221
+ animation: hide-top-to-bottom
222
+ #{variables.$db-transition-straight-hide};
223
+ }
224
+ }
225
+ }
226
+ }
227
+ }
228
+ }