blue-web 1.21.1 → 1.21.2

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 (73) hide show
  1. package/LICENSE +164 -164
  2. package/README.md +74 -74
  3. package/dist/js/actions.d.ts +6 -6
  4. package/dist/js/color-mode.d.ts +4 -4
  5. package/dist/js/dialog.d.ts +18 -18
  6. package/dist/js/edit-view.d.ts +14 -14
  7. package/dist/js/edit-view.js +2 -2
  8. package/dist/js/input-splitted.d.ts +19 -19
  9. package/dist/js/odometer.d.ts +30 -30
  10. package/dist/js/odometer.js +8 -8
  11. package/dist/js/progress.d.ts +2 -2
  12. package/dist/js/read-view.d.ts +35 -35
  13. package/dist/js/read-view.js +18 -18
  14. package/dist/js/select-list.d.ts +46 -46
  15. package/dist/js/select-list.js +17 -17
  16. package/dist/js/shared.d.ts +14 -14
  17. package/dist/js/side-layout.d.ts +7 -7
  18. package/dist/js/utils.d.ts +18 -18
  19. package/dist/js/utils.js +6 -6
  20. package/dist/merged.scss +2170 -2170
  21. package/dist/neu.scss +92 -92
  22. package/dist/style.css +1 -1
  23. package/dist/style.min.css +1 -1
  24. package/dist/style.scss +62 -62
  25. package/dist/styles/_action-menu.scss +57 -57
  26. package/dist/styles/_actions.scss +37 -37
  27. package/dist/styles/_anchor.scss +42 -42
  28. package/dist/styles/_bootstrap-mixins_overwritten.scss +106 -106
  29. package/dist/styles/_bootstrap-variables.scss +46 -46
  30. package/dist/styles/_bootstrap.scss +64 -64
  31. package/dist/styles/_button-icon-wrapper.scss +28 -28
  32. package/dist/styles/_buttons.scss +120 -120
  33. package/dist/styles/_collapse.scss +72 -72
  34. package/dist/styles/_container-grid.scss +52 -52
  35. package/dist/styles/_devexpress.scss +104 -104
  36. package/dist/styles/_general.scss +55 -55
  37. package/dist/styles/_hover.scss +37 -37
  38. package/dist/styles/_input-group.scss +29 -29
  39. package/dist/styles/_inter.scss +19 -19
  40. package/dist/styles/_intro.scss +22 -22
  41. package/dist/styles/_keyframes.scss +73 -73
  42. package/dist/styles/_layout.scss +175 -175
  43. package/dist/styles/_menu-item.scss +86 -86
  44. package/dist/styles/_mixins.scss +6 -6
  45. package/dist/styles/_modal.scss +118 -118
  46. package/dist/styles/_page-header.scss +14 -14
  47. package/dist/styles/_scrollspy.scss +78 -78
  48. package/dist/styles/_status.scss +131 -131
  49. package/dist/styles/_text-icons.scss +15 -15
  50. package/dist/styles/_tooltips.scss +150 -150
  51. package/dist/styles/_utils.scss +20 -20
  52. package/dist/styles/_variables.scss +128 -128
  53. package/dist/styles/mixins/_action-menu.scss +64 -64
  54. package/dist/styles/mixins/_custom-property.scss +10 -10
  55. package/dist/styles/mixins/_menu-item.scss +136 -136
  56. package/dist/styles/mixins/_misc.scss +7 -7
  57. package/dist/styles/mixins/_scroll-shadow.scss +9 -9
  58. package/dist/styles/mixins/_switch.scss +91 -91
  59. package/package.json +88 -88
  60. package/dist/container-grid.css +0 -196
  61. package/dist/js/auto-theme.bundle.js +0 -1
  62. package/dist/js/auto-theme.d.ts +0 -26
  63. package/dist/js/auto-theme.js +0 -169
  64. package/dist/js/button.bundle.js +0 -1
  65. package/dist/js/button.d.ts +0 -6
  66. package/dist/js/button.js +0 -16
  67. package/dist/js/dialog.bundle.js.LICENSE.txt +0 -5
  68. package/dist/js/dxf-viewer.js +0 -129
  69. package/dist/js/searchbox.bundle.js +0 -2
  70. package/dist/js/searchbox.bundle.js.LICENSE.txt +0 -11
  71. package/dist/js/searchbox.d.ts +0 -16
  72. package/dist/js/searchbox.js +0 -158
  73. package/dist/tailwind-main.css +0 -737
@@ -1,118 +1,118 @@
1
- /**
2
- * Allows to use Bootstrap Modals but with the native dialog element
3
- * without the need of Bootstrap's JavaScript.
4
- * Even works with Bootstrap's Offcanvas classes.
5
- */
6
-
7
- @keyframes blue-modal-open {
8
- from {
9
- opacity: 0;
10
- scale: var(--ani-scale-from, 95%);
11
- translate: var(--ani-translate-from, 0 0);
12
- }
13
- to {
14
- opacity: 1;
15
- scale: var(--ani-scale-to, 100%);
16
- translate: var(--ani-translate-to, 0 0);
17
- }
18
- }
19
-
20
- @keyframes blue-modal-close {
21
- from {
22
- opacity: 1;
23
- scale: var(--ani-scale-to, 100%);
24
- translate: var(--ani-translate-to, 0 0);
25
- }
26
- to {
27
- opacity: 0;
28
- scale: var(--ani-scale-from, 95%);
29
- translate: var(--ani-translate-from, 0 0);
30
- }
31
- }
32
-
33
- dialog.blue-modal {
34
- --ani-scale-from: 95%;
35
- --ani-scale-to: 100%;
36
- --ani-translate-from: 0 0;
37
- --ani-translate-to: 0 0;
38
-
39
- border: none;
40
- background: none;
41
- padding: 0;
42
- margin: 0;
43
- max-width: none;
44
- max-height: none;
45
- transition:
46
- display 0.2s allow-discrete,
47
- overlay 0.2s allow-discrete;
48
- animation: blue-modal-close 0.2s forwards;
49
-
50
- .offcanvas-backdrop {
51
- display: none;
52
- }
53
- }
54
-
55
- dialog.blue-modal[open] {
56
- display: block;
57
- animation: blue-modal-open 0.2s forwards;
58
- }
59
-
60
- dialog.blue-modal::backdrop {
61
- --bs-backdrop-bg: #000;
62
- --bs-backdrop-opacity: 0.5;
63
- background-color: var(--bs-backdrop-bg);
64
- transition: opacity 0.2s;
65
- opacity: 0;
66
- }
67
-
68
- dialog.blue-modal[open]::backdrop {
69
- opacity: var(--bs-backdrop-opacity);
70
- }
71
-
72
- .blue-modal-backdrop {
73
- color: #0000;
74
- z-index: -1;
75
- grid-row-start: 1;
76
- grid-column-start: 1;
77
- place-self: stretch stretch;
78
- display: grid;
79
- position: fixed;
80
- top: 0;
81
- left: 0;
82
- right: 0;
83
- bottom: 0;
84
- }
85
-
86
- .blue-modal-backdrop > button {
87
- opacity: 0;
88
- cursor: default;
89
- }
90
-
91
- @media (prefers-reduced-motion: reduce) {
92
- dialog.blue-modal,
93
- dialog.blue-modal[open],
94
- dialog.blue-modal::backdrop {
95
- transition: none;
96
- animation: none;
97
- }
98
- }
99
-
100
- dialog.blue-modal:has(.offcanvas) {
101
- --ani-scale-from: 100%;
102
- }
103
-
104
- dialog.blue-modal:has(.offcanvas-top) {
105
- --ani-translate-from: 0 -100%;
106
- }
107
-
108
- dialog.blue-modal:has(.offcanvas-end) {
109
- --ani-translate-from: 100% 0;
110
- }
111
-
112
- dialog.blue-modal:has(.offcanvas-bottom) {
113
- --ani-translate-from: 0 100%;
114
- }
115
-
116
- dialog.blue-modal:has(.offcanvas-start) {
117
- --ani-translate-from: -100% 0;
118
- }
1
+ /**
2
+ * Allows to use Bootstrap Modals but with the native dialog element
3
+ * without the need of Bootstrap's JavaScript.
4
+ * Even works with Bootstrap's Offcanvas classes.
5
+ */
6
+
7
+ @keyframes blue-modal-open {
8
+ from {
9
+ opacity: 0;
10
+ scale: var(--ani-scale-from, 95%);
11
+ translate: var(--ani-translate-from, 0 0);
12
+ }
13
+ to {
14
+ opacity: 1;
15
+ scale: var(--ani-scale-to, 100%);
16
+ translate: var(--ani-translate-to, 0 0);
17
+ }
18
+ }
19
+
20
+ @keyframes blue-modal-close {
21
+ from {
22
+ opacity: 1;
23
+ scale: var(--ani-scale-to, 100%);
24
+ translate: var(--ani-translate-to, 0 0);
25
+ }
26
+ to {
27
+ opacity: 0;
28
+ scale: var(--ani-scale-from, 95%);
29
+ translate: var(--ani-translate-from, 0 0);
30
+ }
31
+ }
32
+
33
+ dialog.blue-modal {
34
+ --ani-scale-from: 95%;
35
+ --ani-scale-to: 100%;
36
+ --ani-translate-from: 0 0;
37
+ --ani-translate-to: 0 0;
38
+
39
+ border: none;
40
+ background: none;
41
+ padding: 0;
42
+ margin: 0;
43
+ max-width: none;
44
+ max-height: none;
45
+ transition:
46
+ display 0.2s allow-discrete,
47
+ overlay 0.2s allow-discrete;
48
+ animation: blue-modal-close 0.2s forwards;
49
+
50
+ .offcanvas-backdrop {
51
+ display: none;
52
+ }
53
+ }
54
+
55
+ dialog.blue-modal[open] {
56
+ display: block;
57
+ animation: blue-modal-open 0.2s forwards;
58
+ }
59
+
60
+ dialog.blue-modal::backdrop {
61
+ --bs-backdrop-bg: #000;
62
+ --bs-backdrop-opacity: 0.5;
63
+ background-color: var(--bs-backdrop-bg);
64
+ transition: opacity 0.2s;
65
+ opacity: 0;
66
+ }
67
+
68
+ dialog.blue-modal[open]::backdrop {
69
+ opacity: var(--bs-backdrop-opacity);
70
+ }
71
+
72
+ .blue-modal-backdrop {
73
+ color: #0000;
74
+ z-index: -1;
75
+ grid-row-start: 1;
76
+ grid-column-start: 1;
77
+ place-self: stretch stretch;
78
+ display: grid;
79
+ position: fixed;
80
+ top: 0;
81
+ left: 0;
82
+ right: 0;
83
+ bottom: 0;
84
+ }
85
+
86
+ .blue-modal-backdrop > button {
87
+ opacity: 0;
88
+ cursor: default;
89
+ }
90
+
91
+ @media (prefers-reduced-motion: reduce) {
92
+ dialog.blue-modal,
93
+ dialog.blue-modal[open],
94
+ dialog.blue-modal::backdrop {
95
+ transition: none;
96
+ animation: none;
97
+ }
98
+ }
99
+
100
+ dialog.blue-modal:has(.offcanvas) {
101
+ --ani-scale-from: 100%;
102
+ }
103
+
104
+ dialog.blue-modal:has(.offcanvas-top) {
105
+ --ani-translate-from: 0 -100%;
106
+ }
107
+
108
+ dialog.blue-modal:has(.offcanvas-end) {
109
+ --ani-translate-from: 100% 0;
110
+ }
111
+
112
+ dialog.blue-modal:has(.offcanvas-bottom) {
113
+ --ani-translate-from: 0 100%;
114
+ }
115
+
116
+ dialog.blue-modal:has(.offcanvas-start) {
117
+ --ani-translate-from: -100% 0;
118
+ }
@@ -1,14 +1,14 @@
1
- .blue-header-title {
2
- a {
3
- color: inherit;
4
-
5
- &:focus {
6
- text-decoration: none;
7
- }
8
- }
9
- }
10
-
11
- .blue-header-title-image {
12
- width: var(--blue-header-title-image-width, var(--blue-header-title-image-size, 2rem));
13
- height: var(--blue-header-title-image-height, var(--blue-header-title-image-size, 2rem));
14
- }
1
+ .blue-header-title {
2
+ a {
3
+ color: inherit;
4
+
5
+ &:focus {
6
+ text-decoration: none;
7
+ }
8
+ }
9
+ }
10
+
11
+ .blue-header-title-image {
12
+ width: var(--blue-header-title-image-width, var(--blue-header-title-image-size, 2rem));
13
+ height: var(--blue-header-title-image-height, var(--blue-header-title-image-size, 2rem));
14
+ }
@@ -1,78 +1,78 @@
1
- .blue-scrollspy {
2
- --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x * 0.5};
3
- --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y * 0.5};
4
- @include rfs(0.875rem, --#{$prefix}nav-link-font-size);
5
- --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
6
- --#{$prefix}nav-link-color: #{$nav-link-color};
7
- --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
8
- --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
9
-
10
- --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
11
- --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
12
- --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
13
- --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
14
- --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
15
- --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
16
- --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
17
-
18
- @media (prefers-reduced-motion: no-preference) {
19
- scroll-behavior: smooth;
20
- }
21
-
22
- overflow-y: auto;
23
- overscroll-behavior-y: contain;
24
- scroll-snap-type: y mandatory;
25
-
26
- scroll-marker-group: before;
27
-
28
- &::scroll-marker-group {
29
- display: flex;
30
- overflow-x: auto;
31
- overflow-y: hidden;
32
- -ms-overflow-style: none;
33
- scrollbar-width: none;
34
- min-height: calc(
35
- (var(--#{$prefix}nav-link-padding-y) + var(--#{$prefix}nav-tabs-border-width)) * 2 +
36
- (var(--#{$prefix}nav-link-font-size) * var(--#{$prefix}body-line-height))
37
- );
38
- margin-bottom: 0.25rem;
39
- padding-inline: var(--blue-scrollspy-marker-group-padding-inline);
40
- gap: var(--blue-scrollspy-marker-group-gap);
41
- }
42
-
43
- & > :is(section, .blue-scrollspy-group) {
44
- &::scroll-marker {
45
- content: attr(aria-label);
46
- white-space: nowrap;
47
-
48
- font-size: var(--#{$prefix}nav-link-font-size);
49
- box-sizing: border-box;
50
- text-decoration: none;
51
-
52
- padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
53
- border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
54
-
55
- border-radius: var(--#{$prefix}nav-tabs-border-radius);
56
-
57
- &:is(:hover, :focus) {
58
- border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
59
- }
60
-
61
- &:target-current,
62
- &:is(:active) {
63
- color: var(--#{$prefix}nav-tabs-link-active-color);
64
- background-color: var(--#{$prefix}nav-tabs-link-active-bg);
65
- border-color: var(--#{$prefix}border-color);
66
- }
67
- }
68
- }
69
- }
70
-
71
- .blue-scrollspy-after {
72
- scroll-marker-group: after;
73
-
74
- &::scroll-marker-group {
75
- margin-bottom: 0;
76
- margin-top: 0.25rem;
77
- }
78
- }
1
+ .blue-scrollspy {
2
+ --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x * 0.5};
3
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y * 0.5};
4
+ @include rfs(0.875rem, --#{$prefix}nav-link-font-size);
5
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
6
+ --#{$prefix}nav-link-color: #{$nav-link-color};
7
+ --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
8
+ --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
9
+
10
+ --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
11
+ --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
12
+ --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
13
+ --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
14
+ --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
15
+ --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
16
+ --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
17
+
18
+ @media (prefers-reduced-motion: no-preference) {
19
+ scroll-behavior: smooth;
20
+ }
21
+
22
+ overflow-y: auto;
23
+ overscroll-behavior-y: contain;
24
+ scroll-snap-type: y mandatory;
25
+
26
+ scroll-marker-group: before;
27
+
28
+ &::scroll-marker-group {
29
+ display: flex;
30
+ overflow-x: auto;
31
+ overflow-y: hidden;
32
+ -ms-overflow-style: none;
33
+ scrollbar-width: none;
34
+ min-height: calc(
35
+ (var(--#{$prefix}nav-link-padding-y) + var(--#{$prefix}nav-tabs-border-width)) * 2 +
36
+ (var(--#{$prefix}nav-link-font-size) * var(--#{$prefix}body-line-height))
37
+ );
38
+ margin-bottom: 0.25rem;
39
+ padding-inline: var(--blue-scrollspy-marker-group-padding-inline);
40
+ gap: var(--blue-scrollspy-marker-group-gap);
41
+ }
42
+
43
+ & > :is(section, .blue-scrollspy-group) {
44
+ &::scroll-marker {
45
+ content: attr(aria-label);
46
+ white-space: nowrap;
47
+
48
+ font-size: var(--#{$prefix}nav-link-font-size);
49
+ box-sizing: border-box;
50
+ text-decoration: none;
51
+
52
+ padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
53
+ border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
54
+
55
+ border-radius: var(--#{$prefix}nav-tabs-border-radius);
56
+
57
+ &:is(:hover, :focus) {
58
+ border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
59
+ }
60
+
61
+ &:target-current,
62
+ &:is(:active) {
63
+ color: var(--#{$prefix}nav-tabs-link-active-color);
64
+ background-color: var(--#{$prefix}nav-tabs-link-active-bg);
65
+ border-color: var(--#{$prefix}border-color);
66
+ }
67
+ }
68
+ }
69
+ }
70
+
71
+ .blue-scrollspy-after {
72
+ scroll-marker-group: after;
73
+
74
+ &::scroll-marker-group {
75
+ margin-bottom: 0;
76
+ margin-top: 0.25rem;
77
+ }
78
+ }
@@ -1,131 +1,131 @@
1
- .blue-loading {
2
- background-color: $primary;
3
- }
4
-
5
- .blue-status-alert,
6
- .blue-status-circle {
7
- position: fixed;
8
- display: none;
9
- box-shadow: 0 0.313rem 0.938rem rgba(0, 0, 0, 0.2);
10
- }
11
-
12
- .blue-status-alert,
13
- .blue-status-circle {
14
- z-index: 6000;
15
- }
16
-
17
- .blue-status-alert {
18
- &:after {
19
- content: "";
20
- display: block;
21
- position: absolute;
22
- width: 100%;
23
- height: 100%;
24
- top: 50%;
25
- left: 0;
26
- pointer-events: none;
27
- background-image: radial-gradient(circle, rgba(black, 0.7) 10%, transparent 10.01%);
28
- background-repeat: no-repeat;
29
- background-position: 50%;
30
- animation: alert-in 1s;
31
-
32
- @media (prefers-reduced-motion) {
33
- animation-duration: 0s;
34
- }
35
-
36
- & {
37
- transform: scale(10, 10);
38
- opacity: 0;
39
- transition:
40
- transform 0.5s,
41
- opacity 1s;
42
- }
43
-
44
- @media (prefers-reduced-motion) {
45
- transition: none;
46
- }
47
- }
48
-
49
- & {
50
- transform: translate3d(0, 0, 0);
51
- overflow: hidden;
52
- white-space: pre-wrap;
53
-
54
- bottom: 2.5rem + 4rem + 0.938rem;
55
- left: 1rem;
56
- right: 1rem;
57
-
58
- max-height: calc(100vh - 15rem);
59
- max-height: calc(100dvh - 15rem);
60
- }
61
-
62
- .alert-body {
63
- max-height: calc(100vh - 16rem);
64
- max-height: calc(100dvh - 16rem);
65
- overflow-y: auto;
66
- }
67
- }
68
-
69
- @media screen and (min-width: 768px) {
70
- .blue-status-alert {
71
- left: calc(50% - 18.75rem);
72
- right: calc(50% - 18.75rem);
73
- }
74
- }
75
-
76
- .blue-status-circle {
77
- bottom: 2.5rem;
78
- left: calc(50% - 1.25rem);
79
- border-radius: 50%;
80
- width: 4rem;
81
- height: 4rem;
82
- color: #fff;
83
-
84
- &:not(.blue-loading) {
85
- align-items: center;
86
- justify-content: center;
87
- font-size: 2.5em;
88
- }
89
- }
90
-
91
- .blue-status-success {
92
- background-color: #5cb85c;
93
- }
94
-
95
- .blue-status-info {
96
- background-color: #5bc0de;
97
- }
98
-
99
- .blue-status-warning {
100
- background-color: #d58512;
101
- }
102
-
103
- .blue-status-danger {
104
- background-color: #d43f3a;
105
- }
106
-
107
- .spinner-bounce-circle {
108
- width: 100%;
109
- height: 100%;
110
-
111
- position: relative;
112
- margin: 0;
113
- }
114
-
115
- .spinner-bounce-circle div {
116
- width: 100%;
117
- height: 100%;
118
- border-radius: 50%;
119
- background-color: #fff;
120
- opacity: 0.6;
121
- position: absolute;
122
- top: 0;
123
- left: 0;
124
-
125
- animation: circlebounce 2s infinite ease-in-out;
126
- }
127
-
128
- .spinner-bounce-circle div:nth-child(1) {
129
- -webkit-animation-delay: -1s;
130
- animation-delay: -1s;
131
- }
1
+ .blue-loading {
2
+ background-color: $primary;
3
+ }
4
+
5
+ .blue-status-alert,
6
+ .blue-status-circle {
7
+ position: fixed;
8
+ display: none;
9
+ box-shadow: 0 0.313rem 0.938rem rgba(0, 0, 0, 0.2);
10
+ }
11
+
12
+ .blue-status-alert,
13
+ .blue-status-circle {
14
+ z-index: 6000;
15
+ }
16
+
17
+ .blue-status-alert {
18
+ &:after {
19
+ content: "";
20
+ display: block;
21
+ position: absolute;
22
+ width: 100%;
23
+ height: 100%;
24
+ top: 50%;
25
+ left: 0;
26
+ pointer-events: none;
27
+ background-image: radial-gradient(circle, rgba(black, 0.7) 10%, transparent 10.01%);
28
+ background-repeat: no-repeat;
29
+ background-position: 50%;
30
+ animation: alert-in 1s;
31
+
32
+ @media (prefers-reduced-motion) {
33
+ animation-duration: 0s;
34
+ }
35
+
36
+ & {
37
+ transform: scale(10, 10);
38
+ opacity: 0;
39
+ transition:
40
+ transform 0.5s,
41
+ opacity 1s;
42
+ }
43
+
44
+ @media (prefers-reduced-motion) {
45
+ transition: none;
46
+ }
47
+ }
48
+
49
+ & {
50
+ transform: translate3d(0, 0, 0);
51
+ overflow: hidden;
52
+ white-space: pre-wrap;
53
+
54
+ bottom: 2.5rem + 4rem + 0.938rem;
55
+ left: 1rem;
56
+ right: 1rem;
57
+
58
+ max-height: calc(100vh - 15rem);
59
+ max-height: calc(100dvh - 15rem);
60
+ }
61
+
62
+ .alert-body {
63
+ max-height: calc(100vh - 16rem);
64
+ max-height: calc(100dvh - 16rem);
65
+ overflow-y: auto;
66
+ }
67
+ }
68
+
69
+ @media screen and (min-width: 768px) {
70
+ .blue-status-alert {
71
+ left: calc(50% - 18.75rem);
72
+ right: calc(50% - 18.75rem);
73
+ }
74
+ }
75
+
76
+ .blue-status-circle {
77
+ bottom: 2.5rem;
78
+ left: calc(50% - 1.25rem);
79
+ border-radius: 50%;
80
+ width: 4rem;
81
+ height: 4rem;
82
+ color: #fff;
83
+
84
+ &:not(.blue-loading) {
85
+ align-items: center;
86
+ justify-content: center;
87
+ font-size: 2.5em;
88
+ }
89
+ }
90
+
91
+ .blue-status-success {
92
+ background-color: #5cb85c;
93
+ }
94
+
95
+ .blue-status-info {
96
+ background-color: #5bc0de;
97
+ }
98
+
99
+ .blue-status-warning {
100
+ background-color: #d58512;
101
+ }
102
+
103
+ .blue-status-danger {
104
+ background-color: #d43f3a;
105
+ }
106
+
107
+ .spinner-bounce-circle {
108
+ width: 100%;
109
+ height: 100%;
110
+
111
+ position: relative;
112
+ margin: 0;
113
+ }
114
+
115
+ .spinner-bounce-circle div {
116
+ width: 100%;
117
+ height: 100%;
118
+ border-radius: 50%;
119
+ background-color: #fff;
120
+ opacity: 0.6;
121
+ position: absolute;
122
+ top: 0;
123
+ left: 0;
124
+
125
+ animation: circlebounce 2s infinite ease-in-out;
126
+ }
127
+
128
+ .spinner-bounce-circle div:nth-child(1) {
129
+ -webkit-animation-delay: -1s;
130
+ animation-delay: -1s;
131
+ }