@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
@@ -0,0 +1,591 @@
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
+ /* Opacity */
8
+ /* Transitions */
9
+ /* Screen sizes */
10
+ /* Container sizes */
11
+ @keyframes popover-animation {
12
+ 0% {
13
+ opacity: 0;
14
+ transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
15
+ }
16
+ 100% {
17
+ opacity: 1;
18
+ transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
19
+ }
20
+ }
21
+ @keyframes rotate {
22
+ 100% {
23
+ transform: rotate(1turn);
24
+ }
25
+ }
26
+ @keyframes wobbling {
27
+ 50% {
28
+ inset-inline-start: 100%;
29
+ transform: translateX(calc(-100% - var(--db-loading-indicator-progress-bar-segment-padding, 2px)));
30
+ }
31
+ }
32
+ /* Variants for adaptive components like input, select, notification, ... */
33
+ @layer variables {}
34
+
35
+ @layer variables {}
36
+
37
+ @layer variables {}
38
+
39
+ @layer variables {}
40
+
41
+ @layer variables {}
42
+
43
+ @layer variables {}
44
+
45
+ @layer variables {}
46
+
47
+ @layer variables {}
48
+
49
+ @layer variables {}
50
+
51
+ @layer variables {}
52
+
53
+ @layer variables {}
54
+
55
+ @layer variables {}
56
+
57
+ @layer variables {}
58
+
59
+ @layer variables {}
60
+
61
+ @layer variables {}
62
+
63
+ @layer variables {}
64
+
65
+ @layer variables {}
66
+
67
+ /**
68
+ Generates 3 types of placeholders, e.g:
69
+ - %db-component-variables-md
70
+ - %db-font-size-md
71
+ - %db-overwrite-font-size-md
72
+ */
73
+ @layer variables {}
74
+
75
+ @layer variables {}
76
+
77
+ @layer variables {}
78
+
79
+ @layer variables {}
80
+
81
+ @layer variables {}
82
+
83
+ @layer variables {}
84
+
85
+ @layer variables {}
86
+
87
+ @layer variables {}
88
+
89
+ @layer variables {}
90
+
91
+ @layer variables {}
92
+
93
+ @layer variables {}
94
+
95
+ @layer variables {}
96
+
97
+ @layer variables {}
98
+
99
+ .db-loading-indicator:not([data-variant]):not([data-size]) svg, .db-loading-indicator:not([data-variant])[data-size=medium] svg, [data-variant=inline].db-loading-indicator:not([data-size]) svg, [data-variant=inline][data-size=medium].db-loading-indicator svg {
100
+ font: var(--db-type-body-md);
101
+ /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
102
+ }
103
+ @layer variables {
104
+ .db-loading-indicator:not([data-variant]):not([data-size]) svg, .db-loading-indicator:not([data-variant])[data-size=medium] svg, [data-variant=inline].db-loading-indicator:not([data-size]) svg, [data-variant=inline][data-size=medium].db-loading-indicator svg {
105
+ /* Those variables are only for components to calculate heights and change icons */
106
+ --db-icon-font-weight: var(--db-base-body-icon-weight-md);
107
+ --db-icon-font-size: var(--db-base-body-icon-font-size-md);
108
+ }
109
+ }
110
+
111
+ @layer variables {}
112
+
113
+ @layer variables {}
114
+
115
+ .db-loading-indicator:not([data-variant])[data-size=small] svg, [data-variant=inline][data-size=small].db-loading-indicator svg, .db-loading-indicator:not([data-variant]):not([data-size]) div > label::before, .db-loading-indicator:not([data-variant])[data-size=medium] div > label::before, [data-variant=inline].db-loading-indicator:not([data-size]) div > label::before, [data-variant=inline][data-size=medium].db-loading-indicator div > label::before {
116
+ font: var(--db-type-body-sm);
117
+ /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
118
+ }
119
+ @layer variables {
120
+ .db-loading-indicator:not([data-variant])[data-size=small] svg, [data-variant=inline][data-size=small].db-loading-indicator svg, .db-loading-indicator:not([data-variant]):not([data-size]) div > label::before, .db-loading-indicator:not([data-variant])[data-size=medium] div > label::before, [data-variant=inline].db-loading-indicator:not([data-size]) div > label::before, [data-variant=inline][data-size=medium].db-loading-indicator div > label::before {
121
+ /* Those variables are only for components to calculate heights and change icons */
122
+ --db-icon-font-weight: var(--db-base-body-icon-weight-sm);
123
+ --db-icon-font-size: var(--db-base-body-icon-font-size-sm);
124
+ }
125
+ }
126
+
127
+ @layer variables {}
128
+
129
+ @layer variables {}
130
+
131
+ .db-loading-indicator div > span,
132
+ .db-loading-indicator div > label, .db-loading-indicator:not([data-variant])[data-size=small] div > label::before, [data-variant=inline][data-size=small].db-loading-indicator div > label::before {
133
+ font: var(--db-type-body-xs);
134
+ /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
135
+ }
136
+ @layer variables {
137
+ .db-loading-indicator div > span,
138
+ .db-loading-indicator div > label, .db-loading-indicator:not([data-variant])[data-size=small] div > label::before, [data-variant=inline][data-size=small].db-loading-indicator div > label::before {
139
+ /* Those variables are only for components to calculate heights and change icons */
140
+ --db-icon-font-weight: var(--db-base-body-icon-weight-xs);
141
+ --db-icon-font-size: var(--db-base-body-icon-font-size-xs);
142
+ }
143
+ }
144
+
145
+ @layer variables {}
146
+
147
+ @layer variables {}
148
+
149
+ @layer variables {}
150
+
151
+ @layer variables {}
152
+
153
+ @layer variables {}
154
+
155
+ @layer variables {}
156
+
157
+ @layer variables {}
158
+
159
+ /* Use for body tags like <p> */
160
+ /* Use for headline tags like <h1> */
161
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before {
162
+ color: var(--db-icon-color, inherit);
163
+ display: inline-block;
164
+ /*** icon - placeholder ***/
165
+ font-family: var(--db-icon-font-family, var(--db-icon-default-font-family, "db-ux-default", "icon-font-fallback")) !important;
166
+ font-size: var(--db-icon-font-size, 1.5rem);
167
+ -webkit-font-smoothing: antialiased;
168
+ -moz-osx-font-smoothing: grayscale;
169
+ font-style: normal;
170
+ font-variant: normal;
171
+ font-weight: var(--db-icon-font-weight, normal);
172
+ line-height: 1;
173
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
174
+ speak: none;
175
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
176
+ speak: never;
177
+ text-transform: none;
178
+ overflow: clip;
179
+ vertical-align: var(--db-icon-vertical-align, middle);
180
+ block-size: var(--db-icon-font-size, 1.5rem);
181
+ aspect-ratio: 1;
182
+ flex-shrink: 0;
183
+ content: var(--db-icon, attr(data-icon));
184
+ }
185
+ @supports (content: ""/"") {
186
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before {
187
+ content: var(--db-icon, attr(data-icon))/"";
188
+ }
189
+ }
190
+ @media aural {
191
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before {
192
+ content: none;
193
+ }
194
+ }
195
+ @media speech {
196
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before {
197
+ content: none;
198
+ }
199
+ }
200
+
201
+ dialog {
202
+ padding: 0;
203
+ margin: 0;
204
+ border: 0;
205
+ z-index: 9996;
206
+ color: inherit;
207
+ }
208
+ dialog:not([data-position=absolute])[data-variant], dialog:not([data-position=absolute])[data-backdrop] {
209
+ position: fixed;
210
+ inset: 0;
211
+ z-index: 9995;
212
+ }
213
+ dialog:not([data-position=absolute])[data-variant=inside]:not([data-backdrop=none])::before {
214
+ content: "";
215
+ position: fixed;
216
+ inset: 0;
217
+ }
218
+ dialog:not([data-backdrop=none])::backdrop, dialog:not([data-backdrop=none])::before {
219
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-lg));
220
+ }
221
+ dialog:not([data-backdrop=none])[data-backdrop=invisible]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=invisible]::before {
222
+ background-color: transparent;
223
+ }
224
+ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data-backdrop=none])[data-backdrop=weak]::before {
225
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-sm));
226
+ }
227
+
228
+ [data-overlay=true].db-loading-indicator div label,
229
+ [data-overlay=true].db-loading-indicator div span {
230
+ display: none;
231
+ }
232
+
233
+ .db-loading-indicator div {
234
+ display: flex;
235
+ }
236
+ .db-loading-indicator div > label {
237
+ display: inline-flex;
238
+ align-items: center;
239
+ }
240
+ .db-loading-indicator div > label > progress {
241
+ display: none;
242
+ }
243
+ .db-loading-indicator div > span,
244
+ .db-loading-indicator div > label {
245
+ color: var(--db-adaptive-on-bg-basic-emphasis-80-default);
246
+ }
247
+ .db-loading-indicator:not([data-variant]), [data-variant=inline].db-loading-indicator {
248
+ flex-direction: row;
249
+ }
250
+ .db-loading-indicator:not([data-variant]) div, [data-variant=inline].db-loading-indicator div {
251
+ flex-direction: column;
252
+ }
253
+ [data-variant=progress-bar].db-loading-indicator, [data-variant=onsite].db-loading-indicator {
254
+ flex-direction: column;
255
+ }
256
+ [data-variant=onsite].db-loading-indicator div > span {
257
+ position: absolute;
258
+ inset-block-start: calc(var(--db-loading-indicator-spinner-inline-size) / 2);
259
+ inset-inline-start: calc(var(--db-loading-indicator-spinner-inline-size) / 2);
260
+ transform: translate(-50%, -50%);
261
+ }
262
+ .db-loading-indicator [data-show-label=false],
263
+ .db-loading-indicator [data-show-progress-text=false] {
264
+ display: none;
265
+ }
266
+
267
+ .db-loading-indicator:not([data-state]):not([data-indeterminate]):not([data-variant]) svg, .db-loading-indicator[data-variant=inline]:not([data-state]):not([data-indeterminate]) svg, .db-loading-indicator[data-variant=onsite]:not([data-state]):not([data-indeterminate]) svg, .db-loading-indicator:not([data-state])[data-indeterminate=true]:not([data-variant]) svg, .db-loading-indicator[data-variant=inline]:not([data-state])[data-indeterminate=true] svg, .db-loading-indicator[data-variant=onsite]:not([data-state])[data-indeterminate=true] svg, [data-state=active].db-loading-indicator:not([data-indeterminate]):not([data-variant]) svg, [data-state=active].db-loading-indicator[data-variant=inline]:not([data-indeterminate]) svg, [data-state=active].db-loading-indicator[data-variant=onsite]:not([data-indeterminate]) svg, [data-state=active][data-indeterminate=true].db-loading-indicator:not([data-variant]) svg, [data-state=active][data-indeterminate=true].db-loading-indicator[data-variant=inline] svg, [data-state=active][data-indeterminate=true].db-loading-indicator[data-variant=onsite] svg {
268
+ animation: rotate 1.5s linear 0s infinite normal none running;
269
+ }
270
+ @media screen and (prefers-reduced-motion: reduce) {
271
+ .db-loading-indicator:not([data-state]):not([data-indeterminate]):not([data-variant]) svg, .db-loading-indicator[data-variant=inline]:not([data-state]):not([data-indeterminate]) svg, .db-loading-indicator[data-variant=onsite]:not([data-state]):not([data-indeterminate]) svg, .db-loading-indicator:not([data-state])[data-indeterminate=true]:not([data-variant]) svg, .db-loading-indicator[data-variant=inline]:not([data-state])[data-indeterminate=true] svg, .db-loading-indicator[data-variant=onsite]:not([data-state])[data-indeterminate=true] svg, [data-state=active].db-loading-indicator:not([data-indeterminate]):not([data-variant]) svg, [data-state=active].db-loading-indicator[data-variant=inline]:not([data-indeterminate]) svg, [data-state=active].db-loading-indicator[data-variant=onsite]:not([data-indeterminate]) svg, [data-state=active][data-indeterminate=true].db-loading-indicator:not([data-variant]) svg, [data-state=active][data-indeterminate=true].db-loading-indicator[data-variant=inline] svg, [data-state=active][data-indeterminate=true].db-loading-indicator[data-variant=onsite] svg {
272
+ animation-duration: 5s;
273
+ }
274
+ }
275
+ .db-loading-indicator:not([data-state]):not([data-indeterminate]):not([data-variant]) .db-loading-indicator-circle-segment, .db-loading-indicator:not([data-state]):not([data-indeterminate])[data-variant=inline] .db-loading-indicator-circle-segment, .db-loading-indicator:not([data-state])[data-indeterminate=true]:not([data-variant]) .db-loading-indicator-circle-segment, .db-loading-indicator:not([data-state])[data-indeterminate=true][data-variant=inline] .db-loading-indicator-circle-segment, [data-state=active].db-loading-indicator:not([data-indeterminate]):not([data-variant]) .db-loading-indicator-circle-segment, [data-state=active].db-loading-indicator:not([data-indeterminate])[data-variant=inline] .db-loading-indicator-circle-segment, [data-state=active][data-indeterminate=true].db-loading-indicator:not([data-variant]) .db-loading-indicator-circle-segment, [data-state=active][data-indeterminate=true][data-variant=inline].db-loading-indicator .db-loading-indicator-circle-segment {
276
+ stroke-dashoffset: calc(calc(var(--circle) * 2 - var(--stroke-width)) - calc(var(--circle) / 2 - var(--stroke-width)));
277
+ }
278
+ .db-loading-indicator:not([data-state]):not([data-indeterminate])[data-variant=onsite] .db-loading-indicator-circle-segment, .db-loading-indicator:not([data-state])[data-indeterminate=true][data-variant=onsite] .db-loading-indicator-circle-segment, [data-state=active].db-loading-indicator:not([data-indeterminate])[data-variant=onsite] .db-loading-indicator-circle-segment, [data-state=active][data-indeterminate=true][data-variant=onsite].db-loading-indicator .db-loading-indicator-circle-segment {
279
+ stroke-dashoffset: calc(calc(var(--circle) * 2 + var(--stroke-width) + var(--radius)) - calc(var(--circle) / 2 - var(--stroke-width)));
280
+ }
281
+ .db-loading-indicator:not([data-state])[data-indeterminate=false]:not([data-variant]) .db-loading-indicator-circle-segment, .db-loading-indicator:not([data-state])[data-indeterminate=false][data-variant=inline] .db-loading-indicator-circle-segment, [data-state=active][data-indeterminate=false].db-loading-indicator:not([data-variant]) .db-loading-indicator-circle-segment, [data-state=active][data-indeterminate=false][data-variant=inline].db-loading-indicator .db-loading-indicator-circle-segment {
282
+ stroke-dashoffset: calc((1 - var(--db-loading-indicator-percentage, 0)) * calc(var(--circle) * 2 - var(--stroke-width)));
283
+ }
284
+ .db-loading-indicator:not([data-state])[data-indeterminate=false][data-variant=onsite] .db-loading-indicator-circle-segment, [data-state=active][data-indeterminate=false][data-variant=onsite].db-loading-indicator .db-loading-indicator-circle-segment {
285
+ stroke-dashoffset: calc((1 - var(--db-loading-indicator-percentage, 0)) * calc(var(--circle) * 2 + var(--stroke-width) + var(--radius)));
286
+ }
287
+ [data-indeterminate=false].db-loading-indicator:not([data-variant]) svg, [data-indeterminate=false].db-loading-indicator[data-variant=inline] svg, [data-indeterminate=false].db-loading-indicator[data-variant=onsite] svg {
288
+ transform: rotate(-90deg);
289
+ }
290
+ .db-loading-indicator:not([data-variant]) svg, .db-loading-indicator[data-variant=inline] svg, .db-loading-indicator[data-variant=onsite] svg {
291
+ aspect-ratio: 1;
292
+ inline-size: var(--db-loading-indicator-spinner-inline-size, 1lh);
293
+ }
294
+ .db-loading-indicator:not([data-variant]) svg, .db-loading-indicator[data-variant=inline]:not([data-variant]) svg, .db-loading-indicator[data-variant=onsite]:not([data-variant]) svg, [data-variant=inline].db-loading-indicator svg, [data-variant=inline].db-loading-indicator[data-variant=onsite] svg {
295
+ --radius: 6px;
296
+ --circle: 20px;
297
+ --stroke-width: 4px;
298
+ }
299
+ .db-loading-indicator:not([data-variant]) .db-loading-indicator-circle-segment, .db-loading-indicator[data-variant=inline]:not([data-variant]) .db-loading-indicator-circle-segment, .db-loading-indicator[data-variant=onsite]:not([data-variant]) .db-loading-indicator-circle-segment, [data-variant=inline].db-loading-indicator .db-loading-indicator-circle-segment, [data-variant=inline].db-loading-indicator[data-variant=onsite] .db-loading-indicator-circle-segment {
300
+ stroke-dasharray: calc(var(--circle) * 2 - var(--stroke-width));
301
+ }
302
+ [data-variant=onsite].db-loading-indicator .db-loading-indicator-circle-segment {
303
+ stroke-dasharray: calc(var(--circle) * 2 + var(--stroke-width) + var(--radius));
304
+ }
305
+ [data-variant=onsite].db-loading-indicator svg {
306
+ --radius: 27px;
307
+ --circle: 64px;
308
+ --stroke-width: 10px;
309
+ }
310
+ [data-variant=onsite][data-size=small].db-loading-indicator {
311
+ --db-loading-indicator-spinner-inline-size: var(--db-sizing-md);
312
+ }
313
+ [data-variant=onsite][data-size=small].db-loading-indicator div > span {
314
+ display: none;
315
+ }
316
+ [data-variant=onsite].db-loading-indicator:not([data-size]), [data-variant=onsite][data-size=medium].db-loading-indicator {
317
+ --db-loading-indicator-spinner-inline-size: var(--db-sizing-lg);
318
+ }
319
+ .db-loading-indicator:not([data-variant]) circle, .db-loading-indicator[data-variant=inline] circle, .db-loading-indicator[data-variant=onsite] circle {
320
+ cx: var(--circle);
321
+ cy: var(--circle);
322
+ r: var(--radius);
323
+ stroke-width: var(--stroke-width);
324
+ stroke-linecap: round;
325
+ fill: none;
326
+ }
327
+ .db-loading-indicator:not([data-variant]) .db-loading-indicator-circle-track, .db-loading-indicator[data-variant=inline] .db-loading-indicator-circle-track, .db-loading-indicator[data-variant=onsite] .db-loading-indicator-circle-track {
328
+ stroke: color(from var(--db-loading-indicator-segment-color) srgb r g b/var(--db-opacity-2xs));
329
+ }
330
+ .db-loading-indicator:not([data-variant]) .db-loading-indicator-circle-segment, .db-loading-indicator[data-variant=inline] .db-loading-indicator-circle-segment, .db-loading-indicator[data-variant=onsite] .db-loading-indicator-circle-segment {
331
+ stroke: var(--db-loading-indicator-segment-color);
332
+ }
333
+
334
+ .db-loading-indicator[data-variant=progress-bar] {
335
+ inline-size: 100%;
336
+ }
337
+ [data-size=small].db-loading-indicator[data-variant=progress-bar] div::before, [data-size=small].db-loading-indicator[data-variant=progress-bar] div::after {
338
+ --db-loading-indicator-progress-bar-track-block-size: var(--db-sizing-3xs);
339
+ }
340
+ .db-loading-indicator[data-variant=progress-bar]:not([data-size]) div::before, .db-loading-indicator[data-variant=progress-bar]:not([data-size]) div::after, [data-size=medium].db-loading-indicator[data-variant=progress-bar] div::before, [data-size=medium].db-loading-indicator[data-variant=progress-bar] div::after {
341
+ --db-loading-indicator-progress-bar-track-block-size: var(--db-sizing-2xs);
342
+ }
343
+ .db-loading-indicator[data-variant=progress-bar]:not([data-state]) div::after, [data-state=inactive].db-loading-indicator[data-variant=progress-bar] div::after {
344
+ inline-size: 0;
345
+ }
346
+ [data-state=active].db-loading-indicator[data-variant=progress-bar]:not([data-indeterminate]) div::after, [data-state=active][data-indeterminate=true].db-loading-indicator[data-variant=progress-bar] div::after {
347
+ inline-size: 25%;
348
+ animation: wobbling 2.5s infinite linear;
349
+ }
350
+ @media screen and (prefers-reduced-motion: reduce) {
351
+ [data-state=active].db-loading-indicator[data-variant=progress-bar]:not([data-indeterminate]) div::after, [data-state=active][data-indeterminate=true].db-loading-indicator[data-variant=progress-bar] div::after {
352
+ animation-duration: 5s;
353
+ }
354
+ }
355
+ [data-state=active][data-indeterminate=false].db-loading-indicator[data-variant=progress-bar] div::after {
356
+ inline-size: calc(var(--db-loading-indicator-percentage, 0) * calc(100% - var(--db-loading-indicator-progress-bar-segment-padding) * 2));
357
+ }
358
+ [data-state=successful].db-loading-indicator[data-variant=progress-bar] div::after, [data-state=critical].db-loading-indicator[data-variant=progress-bar] div::after {
359
+ inline-size: calc(100% - var(--db-loading-indicator-progress-bar-segment-padding) * 2);
360
+ }
361
+ .db-loading-indicator[data-variant=progress-bar] div {
362
+ padding-block-start: calc(var(--db-sizing-2xs) + var(--db-indicator-gap));
363
+ position: relative;
364
+ flex-direction: row;
365
+ justify-content: space-between;
366
+ gap: var(--db-spacing-fixed-md);
367
+ inline-size: 100%;
368
+ align-items: center;
369
+ }
370
+ .db-loading-indicator[data-variant=progress-bar] div::before, .db-loading-indicator[data-variant=progress-bar] div::after {
371
+ content: "";
372
+ border-radius: var(--db-border-radius-sm);
373
+ position: absolute;
374
+ }
375
+ .db-loading-indicator[data-variant=progress-bar] div::before {
376
+ inline-size: 100%;
377
+ min-inline-size: var(--db-sizing-md);
378
+ inset-block-start: 0;
379
+ inset-inline-start: 0;
380
+ block-size: var(--db-loading-indicator-progress-bar-track-block-size);
381
+ background-color: color(from var(--db-loading-indicator-segment-color) srgb r g b/var(--db-opacity-2xs));
382
+ }
383
+ .db-loading-indicator[data-variant=progress-bar] div::after {
384
+ --db-loading-indicator-progress-bar-segment-padding: 2px;
385
+ z-index: 1;
386
+ inset-block-start: var(--db-loading-indicator-progress-bar-segment-padding);
387
+ inset-inline: var(--db-loading-indicator-progress-bar-segment-padding);
388
+ block-size: calc(var(--db-loading-indicator-progress-bar-track-block-size) - 2 * var(--db-loading-indicator-progress-bar-segment-padding));
389
+ background-color: var(--db-loading-indicator-segment-color);
390
+ }
391
+ .db-loading-indicator[data-variant=progress-bar] div > label {
392
+ align-self: flex-start;
393
+ }
394
+ .db-loading-indicator[data-variant=progress-bar] div > span {
395
+ align-self: flex-end;
396
+ }
397
+
398
+ .db-loading-indicator:not([data-state=successful], [data-state=critical]) {
399
+ --db-loading-indicator-segment-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
400
+ --db-loading-indicator-segment-color-overlay: var(--db-adaptive-on-bg-inverted-default);
401
+ }
402
+ [data-state=inactive].db-loading-indicator:not([data-variant]) .db-loading-indicator-circle-segment, [data-state=inactive][data-variant=inline].db-loading-indicator .db-loading-indicator-circle-segment, [data-state=inactive][data-variant=onsite].db-loading-indicator .db-loading-indicator-circle-segment {
403
+ display: none;
404
+ }
405
+ [data-state=successful].db-loading-indicator {
406
+ --db-loading-indicator-segment-color: var(
407
+ --db-successful-on-bg-basic-emphasis-70-default
408
+ );
409
+ }
410
+ [data-state=successful].db-loading-indicator:not([data-variant]) svg, [data-state=successful][data-variant=inline].db-loading-indicator svg {
411
+ display: none;
412
+ }
413
+ [data-state=successful].db-loading-indicator:not([data-variant]) div, [data-state=successful][data-variant=inline].db-loading-indicator div {
414
+ --db-icon-font-family: var(
415
+ --db-icon-filled-font-family,
416
+ "db-ux-filled",
417
+ "icon-font-fallback"
418
+ );
419
+ display: grid;
420
+ grid-template-columns: min-content 1fr;
421
+ }
422
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before {
423
+ --db-icon: "successful";
424
+ margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
425
+ }
426
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:not([data-icon])::before, [data-state=successful][data-variant=inline].db-loading-indicator div:not([data-icon])::before {
427
+ --db-icon: "check_circle";
428
+ }
429
+ [data-state=successful].db-loading-indicator:not([data-variant]) div::before, [data-state=successful][data-variant=inline].db-loading-indicator div::before {
430
+ --db-icon-color: var(--db-successful-on-bg-basic-emphasis-70-default);
431
+ }
432
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:has(> label), [data-state=successful][data-variant=inline].db-loading-indicator div:has(> label) {
433
+ grid-template-areas: "icon label";
434
+ }
435
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:has(> span), [data-state=successful][data-variant=inline].db-loading-indicator div:has(> span) {
436
+ grid-template-areas: "icon progress";
437
+ }
438
+ [data-state=successful].db-loading-indicator:not([data-variant]) div:has(> span):has(> label), [data-state=successful][data-variant=inline].db-loading-indicator div:has(> span):has(> label) {
439
+ grid-template-areas: "icon label" "icon progress";
440
+ }
441
+ [data-state=successful].db-loading-indicator:not([data-variant]) div::before, [data-state=successful][data-variant=inline].db-loading-indicator div::before {
442
+ --db-icon-margin-end: var(--db-indicator-gap);
443
+ grid-area: icon;
444
+ align-self: center;
445
+ }
446
+ [data-state=successful].db-loading-indicator:not([data-variant]) div > label, [data-state=successful][data-variant=inline].db-loading-indicator div > label {
447
+ grid-area: label;
448
+ }
449
+ [data-state=successful].db-loading-indicator:not([data-variant]) div > span, [data-state=successful][data-variant=inline].db-loading-indicator div > span {
450
+ grid-area: progress;
451
+ }
452
+ [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label, [data-state=successful][data-variant=onsite].db-loading-indicator div > label {
453
+ --db-icon-font-family: var(
454
+ --db-icon-filled-font-family,
455
+ "db-ux-filled",
456
+ "icon-font-fallback"
457
+ );
458
+ }
459
+ [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before {
460
+ --db-icon: "successful";
461
+ margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
462
+ }
463
+ [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label:not([data-icon])::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label:not([data-icon])::before {
464
+ --db-icon: "check_circle";
465
+ }
466
+ [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label::before {
467
+ --db-icon-color: var(--db-successful-on-bg-basic-emphasis-70-default);
468
+ }
469
+ [data-state=successful][data-variant=progress-bar].db-loading-indicator div > label::before, [data-state=successful][data-variant=onsite].db-loading-indicator div > label::before {
470
+ --db-icon-margin-end: var(--db-indicator-gap);
471
+ }
472
+ [data-state=successful].db-loading-indicator div > label,
473
+ [data-state=successful].db-loading-indicator div > span {
474
+ color: var(--db-successful-on-bg-basic-emphasis-80-default);
475
+ }
476
+ [data-state=critical].db-loading-indicator {
477
+ --db-loading-indicator-segment-color: var(
478
+ --db-critical-on-bg-basic-emphasis-70-default
479
+ );
480
+ }
481
+ [data-state=critical].db-loading-indicator:not([data-variant]) svg, [data-state=critical][data-variant=inline].db-loading-indicator svg {
482
+ display: none;
483
+ }
484
+ [data-state=critical].db-loading-indicator:not([data-variant]) div, [data-state=critical][data-variant=inline].db-loading-indicator div {
485
+ --db-icon-font-family: var(
486
+ --db-icon-filled-font-family,
487
+ "db-ux-filled",
488
+ "icon-font-fallback"
489
+ );
490
+ display: grid;
491
+ grid-template-columns: min-content 1fr;
492
+ }
493
+ [data-state=critical].db-loading-indicator:not([data-variant]) div:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=inline].db-loading-indicator div:not([data-show-icon-leading=false])::before {
494
+ --db-icon: "critical";
495
+ margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
496
+ }
497
+ [data-state=critical].db-loading-indicator:not([data-variant]) div:not([data-icon])::before, [data-state=critical][data-variant=inline].db-loading-indicator div:not([data-icon])::before {
498
+ --db-icon: "exclamation_mark_circle";
499
+ /* stylelint-disable-next-line at-rule-empty-line-before */
500
+ }
501
+ [data-state=critical].db-loading-indicator:not([data-variant]) div::before, [data-state=critical][data-variant=inline].db-loading-indicator div::before {
502
+ --db-icon-color: var(--db-critical-on-bg-basic-emphasis-70-default);
503
+ }
504
+ [data-state=critical].db-loading-indicator:not([data-variant]) div:has(> label), [data-state=critical][data-variant=inline].db-loading-indicator div:has(> label) {
505
+ grid-template-areas: "icon label";
506
+ }
507
+ [data-state=critical].db-loading-indicator:not([data-variant]) div:has(> span), [data-state=critical][data-variant=inline].db-loading-indicator div:has(> span) {
508
+ grid-template-areas: "icon progress";
509
+ }
510
+ [data-state=critical].db-loading-indicator:not([data-variant]) div:has(> span):has(> label), [data-state=critical][data-variant=inline].db-loading-indicator div:has(> span):has(> label) {
511
+ grid-template-areas: "icon label" "icon progress";
512
+ }
513
+ [data-state=critical].db-loading-indicator:not([data-variant]) div::before, [data-state=critical][data-variant=inline].db-loading-indicator div::before {
514
+ --db-icon-margin-end: var(--db-indicator-gap);
515
+ grid-area: icon;
516
+ align-self: center;
517
+ }
518
+ [data-state=critical].db-loading-indicator:not([data-variant]) div > label, [data-state=critical][data-variant=inline].db-loading-indicator div > label {
519
+ grid-area: label;
520
+ }
521
+ [data-state=critical].db-loading-indicator:not([data-variant]) div > span, [data-state=critical][data-variant=inline].db-loading-indicator div > span {
522
+ grid-area: progress;
523
+ }
524
+ [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label, [data-state=critical][data-variant=onsite].db-loading-indicator div > label {
525
+ --db-icon-font-family: var(
526
+ --db-icon-filled-font-family,
527
+ "db-ux-filled",
528
+ "icon-font-fallback"
529
+ );
530
+ }
531
+ [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label:not([data-show-icon-leading=false])::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label:not([data-show-icon-leading=false])::before {
532
+ --db-icon: "critical";
533
+ margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
534
+ }
535
+ [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label:not([data-icon])::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label:not([data-icon])::before {
536
+ --db-icon: "exclamation_mark_circle";
537
+ /* stylelint-disable-next-line at-rule-empty-line-before */
538
+ }
539
+ [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label::before {
540
+ --db-icon-color: var(--db-critical-on-bg-basic-emphasis-70-default);
541
+ }
542
+ [data-state=critical][data-variant=progress-bar].db-loading-indicator div > label::before, [data-state=critical][data-variant=onsite].db-loading-indicator div > label::before {
543
+ --db-icon-margin-end: var(--db-indicator-gap);
544
+ }
545
+ [data-state=critical].db-loading-indicator div > label,
546
+ [data-state=critical].db-loading-indicator div > span {
547
+ color: var(--db-critical-on-bg-basic-emphasis-80-default);
548
+ }
549
+
550
+ .db-loading-indicator:not([data-overlay=true]) {
551
+ position: relative;
552
+ block-size: fit-content;
553
+ }
554
+ [data-overlay=true].db-loading-indicator {
555
+ position: absolute;
556
+ inset: 0;
557
+ border-radius: inherit;
558
+ }
559
+ [data-overlay=true].db-loading-indicator::before {
560
+ content: "";
561
+ position: absolute;
562
+ inset: 0;
563
+ border-radius: inherit;
564
+ background-color: color(from var(--db-adaptive-on-bg-basic-emphasis-100-default) srgb r g b/var(--db-opacity-lg));
565
+ }
566
+ [data-overlay=true][data-variant=progress-bar].db-loading-indicator div {
567
+ max-inline-size: calc(100% - var(--db-spacing-fixed-md));
568
+ }
569
+
570
+ *:has(> .db-loading-indicator[data-overlay=true],
571
+ > db-loading-indicator > .db-loading-indicator[data-overlay=true]) {
572
+ position: relative;
573
+ }
574
+ *:has(> .db-loading-indicator[data-overlay=true],
575
+ > db-loading-indicator > .db-loading-indicator[data-overlay=true]) .db-loading-indicator {
576
+ --db-loading-indicator-segment-color: var(
577
+ --db-loading-indicator-segment-color-overlay
578
+ );
579
+ }
580
+
581
+ .db-loading-indicator {
582
+ --db-indicator-gap: var(--db-spacing-fixed-2xs);
583
+ display: flex;
584
+ /* stylelint-disable-next-line db-ux/use-spacings */
585
+ gap: var(--db-indicator-gap);
586
+ align-items: center;
587
+ justify-content: center;
588
+ }
589
+ .db-loading-indicator[data-delay=slow], .db-loading-indicator[data-delay=fast] {
590
+ display: none;
591
+ }