@db-ux/core-components 4.4.0-loading-567cd0c → 4.4.1-floating-components-066d296

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 (30) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/accordion-item/accordion-item.css +0 -6
  3. package/build/components/button/button.css +0 -43
  4. package/build/components/button/button.scss +0 -4
  5. package/build/components/custom-select-dropdown/custom-select-dropdown.css +21 -2
  6. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +10 -2
  7. package/build/components/drawer/drawer.css +0 -6
  8. package/build/components/link/link.css +0 -6
  9. package/build/components/navigation-item/navigation-item.css +0 -6
  10. package/build/components/notification/notification.css +0 -6
  11. package/build/components/popover/popover.css +26 -6
  12. package/build/components/tab-list/tab-list.css +0 -6
  13. package/build/components/tag/tag.css +0 -6
  14. package/build/components/textarea/textarea.css +0 -6
  15. package/build/components/tooltip/tooltip.css +26 -6
  16. package/build/styles/absolute.css +4 -18
  17. package/build/styles/component-animations.css +1 -1
  18. package/build/styles/index.css +3 -17
  19. package/build/styles/index.scss +0 -2
  20. package/build/styles/internal/_custom-elements.scss +0 -2
  21. package/build/styles/internal/_popover-component.scss +15 -5
  22. package/build/styles/relative.css +4 -18
  23. package/build/styles/rollup.css +4 -18
  24. package/build/styles/wc-workarounds.css +1 -1
  25. package/build/styles/wc-workarounds.scss +0 -1
  26. package/build/styles/webpack.css +4 -18
  27. package/package.json +2 -2
  28. package/build/components/loading-indicator/loading-indicator.css +0 -591
  29. package/build/components/loading-indicator/loading-indicator.scss +0 -515
  30. package/build/styles/internal/_loading.scss +0 -76
@@ -1,515 +0,0 @@
1
- @use "@db-ux/core-foundations/build/styles/animation";
2
- @use "@db-ux/core-foundations/build/styles/variables";
3
- @use "@db-ux/core-foundations/build/styles/colors";
4
- @use "@db-ux/core-foundations/build/styles/fonts";
5
- @use "@db-ux/core-foundations/build/styles/icons";
6
- @use "../../styles/dialog-init";
7
- @use "../../styles/internal/loading";
8
-
9
- $stroke-dasharray-inline: calc(var(--circle) * 2 - var(--stroke-width));
10
- $stroke-dasharray-onsite: calc(
11
- var(--circle) * 2 + var(--stroke-width) + var(--radius)
12
- );
13
- $stroke-segment-length: calc((var(--circle) / 2 - var(--stroke-width)));
14
- $db-loading-indicator-track-color: color(
15
- from var(--db-loading-indicator-segment-color) srgb r g b /
16
- #{variables.$db-opacity-2xs}
17
- );
18
-
19
- %text-container {
20
- div {
21
- display: flex;
22
-
23
- > label {
24
- display: inline-flex;
25
- align-items: center;
26
-
27
- > progress {
28
- display: none;
29
- }
30
- }
31
-
32
- > span,
33
- > label {
34
- @extend %db-overwrite-font-size-xs;
35
-
36
- color: colors.$db-adaptive-on-bg-basic-emphasis-80-default;
37
- }
38
- }
39
-
40
- &:not([data-variant]),
41
- &[data-variant="inline"] {
42
- flex-direction: row;
43
-
44
- div {
45
- flex-direction: column;
46
- }
47
- }
48
-
49
- &[data-variant="progress-bar"],
50
- &[data-variant="onsite"] {
51
- flex-direction: column;
52
- }
53
-
54
- &[data-variant="onsite"] {
55
- div {
56
- > span {
57
- position: absolute;
58
-
59
- // Center the progress text inside the spinner
60
- inset-block-start: calc(
61
- var(--db-loading-indicator-spinner-inline-size) / 2
62
- );
63
- inset-inline-start: calc(
64
- var(--db-loading-indicator-spinner-inline-size) / 2
65
- );
66
- transform: translate(-50%, -50%);
67
- }
68
- }
69
- }
70
-
71
- [data-show-label="false"],
72
- [data-show-progress-text="false"] {
73
- display: none;
74
- }
75
- }
76
-
77
- %spinner {
78
- &:not([data-state]),
79
- &[data-state="active"] {
80
- &:not([data-indeterminate]),
81
- &[data-indeterminate="true"] {
82
- svg {
83
- animation: rotate 1.5s linear 0s infinite normal none running;
84
-
85
- @media screen and (prefers-reduced-motion: reduce) {
86
- animation-duration: 5s;
87
- }
88
- }
89
-
90
- &:not([data-variant]),
91
- &[data-variant="inline"] {
92
- .db-loading-indicator-circle-segment {
93
- stroke-dashoffset: calc(
94
- #{$stroke-dasharray-inline} - #{$stroke-segment-length}
95
- );
96
- }
97
- }
98
-
99
- &[data-variant="onsite"] {
100
- .db-loading-indicator-circle-segment {
101
- stroke-dashoffset: calc(
102
- #{$stroke-dasharray-onsite} - #{$stroke-segment-length}
103
- );
104
- }
105
- }
106
- }
107
-
108
- &[data-indeterminate="false"] {
109
- &:not([data-variant]),
110
- &[data-variant="inline"] {
111
- .db-loading-indicator-circle-segment {
112
- stroke-dashoffset: calc(
113
- (1 - var(--db-loading-indicator-percentage, 0)) *
114
- #{$stroke-dasharray-inline}
115
- );
116
- }
117
- }
118
-
119
- &[data-variant="onsite"] {
120
- .db-loading-indicator-circle-segment {
121
- stroke-dashoffset: calc(
122
- (1 - var(--db-loading-indicator-percentage, 0)) *
123
- #{$stroke-dasharray-onsite}
124
- );
125
- }
126
- }
127
- }
128
- }
129
-
130
- &[data-indeterminate="false"] {
131
- svg {
132
- transform: rotate(-90deg);
133
- }
134
- }
135
-
136
- svg {
137
- aspect-ratio: 1;
138
- inline-size: var(--db-loading-indicator-spinner-inline-size, 1lh);
139
- }
140
-
141
- &:not([data-variant]),
142
- &[data-variant="inline"] {
143
- svg {
144
- --radius: 6px; // This is the size based on the viewBox of the <svg>
145
- --circle: 20px; // This is the size based on the viewBox of the <svg>
146
- --stroke-width: 4px;
147
- }
148
-
149
- .db-loading-indicator-circle-segment {
150
- stroke-dasharray: $stroke-dasharray-inline;
151
- }
152
-
153
- &[data-size="small"] {
154
- svg {
155
- @extend %db-overwrite-font-size-sm;
156
- }
157
-
158
- div > label::before {
159
- @extend %db-overwrite-font-size-xs;
160
- }
161
- }
162
-
163
- &:not([data-size]),
164
- &[data-size="medium"] {
165
- svg {
166
- @extend %db-overwrite-font-size-md;
167
- }
168
-
169
- div > label::before {
170
- @extend %db-overwrite-font-size-sm;
171
- }
172
- }
173
- }
174
-
175
- &[data-variant="onsite"] {
176
- .db-loading-indicator-circle-segment {
177
- stroke-dasharray: $stroke-dasharray-onsite;
178
- }
179
-
180
- svg {
181
- --radius: 27px; // This is the size based on the viewBox of the <svg>
182
- --circle: 64px; // This is the size based on the viewBox of the <svg>
183
- --stroke-width: 10px;
184
- }
185
-
186
- &[data-size="small"] {
187
- --db-loading-indicator-spinner-inline-size: #{variables.$db-sizing-md};
188
-
189
- div {
190
- > span {
191
- // Hide progress text for onsite spinner, as it is centered inside the spinner and can overlap with the segment
192
- display: none;
193
- }
194
- }
195
- }
196
-
197
- &:not([data-size]),
198
- &[data-size="medium"] {
199
- --db-loading-indicator-spinner-inline-size: #{variables.$db-sizing-lg};
200
- }
201
- }
202
-
203
- circle {
204
- cx: var(--circle);
205
- cy: var(--circle);
206
- r: var(--radius);
207
- stroke-width: var(--stroke-width);
208
- stroke-linecap: round;
209
- fill: none;
210
- }
211
-
212
- .db-loading-indicator-circle-track {
213
- stroke: $db-loading-indicator-track-color;
214
- }
215
-
216
- .db-loading-indicator-circle-segment {
217
- stroke: var(--db-loading-indicator-segment-color);
218
- }
219
- }
220
-
221
- $progress-bar-full-segment-inline-size: calc(
222
- 100% - var(--db-loading-indicator-progress-bar-segment-padding) * 2
223
- );
224
-
225
- %progress-bar {
226
- inline-size: 100%;
227
-
228
- &[data-size="small"] {
229
- div {
230
- &::before,
231
- &::after {
232
- --db-loading-indicator-progress-bar-track-block-size: #{variables.$db-sizing-3xs};
233
- }
234
- }
235
- }
236
-
237
- &:not([data-size]),
238
- &[data-size="medium"] {
239
- div {
240
- &::before,
241
- &::after {
242
- --db-loading-indicator-progress-bar-track-block-size: #{variables.$db-sizing-2xs};
243
- }
244
- }
245
- }
246
-
247
- &:not([data-state]),
248
- &[data-state="inactive"] {
249
- div {
250
- &::after {
251
- inline-size: 0;
252
- }
253
- }
254
- }
255
-
256
- &[data-state="active"] {
257
- &:not([data-indeterminate]),
258
- &[data-indeterminate="true"] {
259
- div {
260
- &::after {
261
- inline-size: 25%;
262
- animation: wobbling 2.5s infinite linear;
263
-
264
- @media screen and (prefers-reduced-motion: reduce) {
265
- animation-duration: 5s;
266
- }
267
- }
268
- }
269
- }
270
-
271
- &[data-indeterminate="false"] {
272
- div {
273
- &::after {
274
- inline-size: calc(
275
- var(--db-loading-indicator-percentage, 0) *
276
- #{$progress-bar-full-segment-inline-size}
277
- );
278
- }
279
- }
280
- }
281
- }
282
-
283
- &[data-state="successful"],
284
- &[data-state="critical"] {
285
- div {
286
- &::after {
287
- inline-size: $progress-bar-full-segment-inline-size;
288
- }
289
- }
290
- }
291
-
292
- div {
293
- &::before,
294
- &::after {
295
- content: "";
296
- border-radius: variables.$db-border-radius-sm;
297
- position: absolute;
298
- }
299
-
300
- &::before {
301
- inline-size: 100%;
302
- min-inline-size: variables.$db-sizing-md;
303
- inset-block-start: 0;
304
- inset-inline-start: 0;
305
- block-size: var(
306
- --db-loading-indicator-progress-bar-track-block-size
307
- );
308
- background-color: $db-loading-indicator-track-color;
309
- }
310
-
311
- &::after {
312
- --db-loading-indicator-progress-bar-segment-padding: 2px;
313
-
314
- z-index: 1;
315
- inset-block-start: var(
316
- --db-loading-indicator-progress-bar-segment-padding
317
- );
318
- inset-inline: var(
319
- --db-loading-indicator-progress-bar-segment-padding
320
- );
321
- block-size: calc(
322
- var(--db-loading-indicator-progress-bar-track-block-size) - 2 *
323
- var(--db-loading-indicator-progress-bar-segment-padding)
324
- );
325
- background-color: var(--db-loading-indicator-segment-color);
326
- }
327
-
328
- // Provide space for the progress bar because it is absolute
329
- padding-block-start: calc(
330
- #{variables.$db-sizing-2xs} + var(--db-indicator-gap)
331
- );
332
- position: relative;
333
- flex-direction: row;
334
- justify-content: space-between;
335
- gap: variables.$db-spacing-fixed-md;
336
- inline-size: 100%;
337
- align-items: center;
338
-
339
- > label {
340
- align-self: flex-start;
341
- }
342
-
343
- > span {
344
- align-self: flex-end;
345
- }
346
- }
347
- }
348
-
349
- @mixin get-state-icon($name) {
350
- @include icons.to-filled-icon;
351
- @include icons.set-icon($name);
352
- @include icons.variant-icons($name);
353
-
354
- &::before {
355
- --db-icon-color: var(--db-#{$name}-on-bg-basic-emphasis-70-default);
356
- }
357
- }
358
-
359
- %states {
360
- &:not([data-state="successful"], [data-state="critical"]) {
361
- --db-loading-indicator-segment-color: #{colors.$db-adaptive-on-bg-basic-emphasis-70-default};
362
- --db-loading-indicator-segment-color-overlay: #{colors.$db-adaptive-on-bg-inverted-default};
363
- }
364
-
365
- &[data-state="inactive"] {
366
- &:not([data-variant]),
367
- &[data-variant="inline"],
368
- &[data-variant="onsite"] {
369
- .db-loading-indicator-circle-segment {
370
- display: none;
371
- }
372
- }
373
- }
374
-
375
- @each $name in (successful, critical) {
376
- &[data-state="#{$name}"] {
377
- --db-loading-indicator-segment-color: var(
378
- --db-#{$name}-on-bg-basic-emphasis-70-default
379
- );
380
-
381
- &:not([data-variant]),
382
- &[data-variant="inline"] {
383
- svg {
384
- display: none;
385
- }
386
-
387
- div {
388
- @include get-state-icon($name);
389
-
390
- display: grid;
391
- grid-template-columns: min-content 1fr;
392
-
393
- &:has(> label) {
394
- grid-template-areas: "icon label";
395
- }
396
-
397
- &:has(> span) {
398
- grid-template-areas: "icon progress";
399
-
400
- &:has(> label) {
401
- grid-template-areas: "icon label" "icon progress";
402
- }
403
- }
404
-
405
- &::before {
406
- --db-icon-margin-end: var(--db-indicator-gap);
407
-
408
- grid-area: icon;
409
- align-self: center;
410
- }
411
-
412
- > label {
413
- grid-area: label;
414
- }
415
-
416
- > span {
417
- grid-area: progress;
418
- }
419
- }
420
- }
421
-
422
- &[data-variant="progress-bar"],
423
- &[data-variant="onsite"] {
424
- div {
425
- > label {
426
- @include get-state-icon($name);
427
-
428
- &::before {
429
- --db-icon-margin-end: var(--db-indicator-gap);
430
- }
431
- }
432
- }
433
- }
434
-
435
- div {
436
- > label,
437
- > span {
438
- color: var(--db-#{$name}-on-bg-basic-emphasis-80-default);
439
- }
440
- }
441
- }
442
- }
443
- }
444
-
445
- %overlay {
446
- &:not([data-overlay="true"]) {
447
- position: relative;
448
- block-size: fit-content;
449
- }
450
-
451
- &[data-overlay="true"] {
452
- // Hide label and progress when overlay
453
- @extend %hide-label-and-progress-text;
454
-
455
- position: absolute;
456
- inset: 0;
457
- border-radius: inherit;
458
-
459
- &::before {
460
- content: "";
461
- position: absolute;
462
- inset: 0;
463
- border-radius: inherit;
464
- background-color: dialog-init.$backdrop-color-strong;
465
- }
466
-
467
- &[data-variant="progress-bar"] {
468
- div {
469
- max-inline-size: calc(100% - #{variables.$db-spacing-fixed-md});
470
- }
471
- }
472
- }
473
- }
474
-
475
- *:has(
476
- > .db-loading-indicator[data-overlay="true"],
477
- > db-loading-indicator > .db-loading-indicator[data-overlay="true"]
478
- ) {
479
- position: relative;
480
-
481
- .db-loading-indicator {
482
- --db-loading-indicator-segment-color: var(
483
- --db-loading-indicator-segment-color-overlay
484
- );
485
- }
486
- }
487
-
488
- .db-loading-indicator {
489
- --db-indicator-gap: #{variables.$db-spacing-fixed-2xs};
490
-
491
- @extend %text-container;
492
- @extend %states;
493
- @extend %overlay;
494
-
495
- display: flex;
496
- /* stylelint-disable-next-line db-ux/use-spacings */
497
- gap: var(--db-indicator-gap);
498
- align-items: center;
499
- justify-content: center;
500
-
501
- &:not([data-variant]),
502
- &[data-variant="inline"],
503
- &[data-variant="onsite"] {
504
- @extend %spinner;
505
- }
506
-
507
- &[data-variant="progress-bar"] {
508
- @extend %progress-bar;
509
- }
510
-
511
- &[data-delay="slow"],
512
- &[data-delay="fast"] {
513
- display: none;
514
- }
515
- }
@@ -1,76 +0,0 @@
1
- @use "@db-ux/core-foundations/build/styles/variables";
2
- @use "@db-ux/core-foundations/build/styles/colors";
3
-
4
- %hide-label-and-progress-text {
5
- div {
6
- label,
7
- span {
8
- display: none;
9
- }
10
- }
11
- }
12
-
13
- %interactive-element-with-loading {
14
- &:has(.db-loading-indicator:not([data-overlay="true"])) {
15
- // Hide icon inside button when loading indicator is present
16
- &[data-icon],
17
- &[data-icon-before] {
18
- &::before {
19
- display: none;
20
- }
21
- }
22
-
23
- &[data-icon-after] {
24
- &::after {
25
- display: none;
26
- }
27
- }
28
- }
29
-
30
- &:has(.db-loading-indicator[data-state="inactive"]) {
31
- .db-loading-indicator {
32
- display: none;
33
- }
34
- }
35
-
36
- .db-loading-indicator {
37
- &:not([data-state="successful"], [data-state="critical"]) {
38
- --db-loading-indicator-segment-color: currentcolor;
39
- --db-loading-indicator-segment-color-overlay: currentcolor;
40
- }
41
-
42
- &:not([data-overlay]),
43
- &:not([data-overlay="true"]) {
44
- // Hide label and progress inside a button
45
- @extend %hide-label-and-progress-text;
46
-
47
- margin-inline-end: variables.$db-spacing-fixed-xs; // same margin like a icon
48
- }
49
-
50
- &[data-overlay="true"] {
51
- background-color: transparent;
52
-
53
- &::before {
54
- z-index: 1;
55
- background-color: var(
56
- --db-loading-indicator-button-overlay-color,
57
- inherit
58
- );
59
- }
60
-
61
- &::after {
62
- z-index: 0;
63
- content: "";
64
- position: absolute;
65
- inset: 0;
66
- border-radius: inherit;
67
- background-color: colors.$db-adaptive-bg-basic-level-1-default;
68
- }
69
-
70
- svg,
71
- div {
72
- z-index: 2;
73
- }
74
- }
75
- }
76
- }