@ch-post-common/common-web-frontend 0.0.1-security → 1.0.933

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @ch-post-common/common-web-frontend might be problematic. Click here for more details.

Files changed (97) hide show
  1. package/components/accordion.scss +177 -0
  2. package/components/alert.scss +217 -0
  3. package/components/badge.scss +95 -0
  4. package/components/breadcrumb.scss +43 -0
  5. package/components/button.scss +168 -0
  6. package/components/card.scss +227 -0
  7. package/components/carousel.scss +161 -0
  8. package/components/custom-choice-control.scss +217 -0
  9. package/components/custom-range-input.scss +51 -0
  10. package/components/custom-select.scss +60 -0
  11. package/components/datatable.scss +147 -0
  12. package/components/datepicker.scss +220 -0
  13. package/components/detail-summary.scss +72 -0
  14. package/components/dropdown.scss +71 -0
  15. package/components/floating-label.scss +65 -0
  16. package/components/fonts.scss +35 -0
  17. package/components/form-feedback.scss +70 -0
  18. package/components/forms.scss +31 -0
  19. package/components/grid.scss +103 -0
  20. package/components/icons.scss +62 -0
  21. package/components/intranet-header/_icon.scss +6 -0
  22. package/components/intranet-header/_language-chooser.scss +40 -0
  23. package/components/intranet-header/_logo.scss +74 -0
  24. package/components/intranet-header/_nav-overflow.scss +56 -0
  25. package/components/intranet-header/_scaffolding.scss +96 -0
  26. package/components/intranet-header/_searchbox.scss +56 -0
  27. package/components/intranet-header/_settings.scss +23 -0
  28. package/components/intranet-header/_sidebar.scss +118 -0
  29. package/components/intranet-header/_top-navigation.scss +83 -0
  30. package/components/list-group.scss +156 -0
  31. package/components/modal.scss +87 -0
  32. package/components/pagination.scss +67 -0
  33. package/components/popover.scss +21 -0
  34. package/components/product-card.scss +74 -0
  35. package/components/progress.scss +15 -0
  36. package/components/reboot.scss +17 -0
  37. package/components/root.scss +10 -0
  38. package/components/sizing.scss +90 -0
  39. package/components/spinner.scss +58 -0
  40. package/components/stepper.scss +158 -0
  41. package/components/subnavigation.scss +131 -0
  42. package/components/switch.scss +132 -0
  43. package/components/tabs.scss +122 -0
  44. package/components/timepicker.scss +110 -0
  45. package/components/toast.scss +172 -0
  46. package/components/tooltip.scss +23 -0
  47. package/components/topic-teaser.scss +133 -0
  48. package/components/type.scss +106 -0
  49. package/components/utilities.scss +93 -0
  50. package/index.js +28 -0
  51. package/layouts/portal/_type.scss +83 -0
  52. package/lic/_bootstrap-license.scss +29 -0
  53. package/lic/_cwf-license.scss +7 -0
  54. package/mixins/_animation.scss +39 -0
  55. package/mixins/_button.scss +232 -0
  56. package/mixins/_forms.scss +188 -0
  57. package/mixins/_icons.scss +27 -0
  58. package/mixins/_scroll-shadows.scss +13 -0
  59. package/mixins/_size.scss +69 -0
  60. package/mixins/_type.scss +187 -0
  61. package/mixins/_utilities.scss +73 -0
  62. package/package.json +11 -3
  63. package/placeholders/_dropdown.scss +11 -0
  64. package/placeholders/_floating-label.scss +143 -0
  65. package/placeholders/_notifications.scss +160 -0
  66. package/placeholders/_text.scss +187 -0
  67. package/variables/_animation.scss +36 -0
  68. package/variables/_color.scss +240 -0
  69. package/variables/_commons.scss +57 -0
  70. package/variables/_icons.scss +2071 -0
  71. package/variables/_spacing.scss +180 -0
  72. package/variables/_type.scss +157 -0
  73. package/variables/components/_accordion.scss +22 -0
  74. package/variables/components/_alert.scss +50 -0
  75. package/variables/components/_badge.scss +29 -0
  76. package/variables/components/_breadcrumbs.scss +21 -0
  77. package/variables/components/_button.scss +152 -0
  78. package/variables/components/_card.scss +29 -0
  79. package/variables/components/_carousel.scss +27 -0
  80. package/variables/components/_close.scss +9 -0
  81. package/variables/components/_datatable.scss +49 -0
  82. package/variables/components/_datepicker.scss +14 -0
  83. package/variables/components/_dropdowns.scss +30 -0
  84. package/variables/components/_forms.scss +256 -0
  85. package/variables/components/_intranet-header.scss +9 -0
  86. package/variables/components/_modals.scss +68 -0
  87. package/variables/components/_nav.scss +82 -0
  88. package/variables/components/_pagination.scss +41 -0
  89. package/variables/components/_paragraph.scss +6 -0
  90. package/variables/components/_popovers.scss +28 -0
  91. package/variables/components/_progress-bars.scss +16 -0
  92. package/variables/components/_stepper.scss +26 -0
  93. package/variables/components/_subnavigation.scss +36 -0
  94. package/variables/components/_switch.scss +3 -0
  95. package/variables/components/_tables.scss +31 -0
  96. package/variables/components/_tooltips.scss +26 -0
  97. package/README.md +0 -5
@@ -0,0 +1,83 @@
1
+ @use "../../variables/color";
2
+ @use "../../variables/commons";
3
+ @use "../../variables/type";
4
+
5
+ @use "../../themes/bootstrap/overrides" as *;
6
+
7
+ .top-navigation {
8
+ .nav-item > .nav-link {
9
+ border-top: 4px solid transparent; // Border-Width according to PostWeb CSS
10
+ border-bottom: 4px solid transparent; // Border-Width according to PostWeb CSS
11
+ color: color.$black-alpha-60;
12
+ background-color: none;
13
+
14
+ @include hover-focus {
15
+ border-bottom-color: color.$black-alpha-40;
16
+ background-color: color.$gray-100;
17
+ text-decoration: none;
18
+ }
19
+
20
+ &.active {
21
+ border-bottom-color: color.$yellow;
22
+ color: color.$black;
23
+
24
+ @include hover-focus {
25
+ border-bottom-color: color.$yellow;
26
+ }
27
+ }
28
+ }
29
+
30
+ .nav-link {
31
+ @include hover-focus {
32
+ cursor: pointer;
33
+ }
34
+ }
35
+
36
+ .nav-item {
37
+ flex-shrink: 0;
38
+
39
+ a {
40
+ text-decoration: none;
41
+ }
42
+ }
43
+ }
44
+
45
+ @include media-breakpoint-down(rg) {
46
+ .top-navigation #navbarsDefault {
47
+ border-top: commons.$border-width solid color.$black-alpha-20;
48
+ }
49
+ }
50
+
51
+ @include media-breakpoint-up(md) {
52
+ .top-navigation {
53
+ border-top: commons.$border-width solid color.$black-alpha-20;
54
+ }
55
+ }
56
+
57
+ #navbarsDefault > ul > .nav-item {
58
+ font-size: 1.25rem;
59
+ font-weight: type.$font-weight-light;
60
+ }
61
+
62
+ @include media-breakpoint-down(rg) {
63
+ #nav-toggler {
64
+ border: none;
65
+ border-left: commons.$border-width solid color.$black-alpha-20;
66
+ border-radius: 0;
67
+
68
+ @include hover-focus {
69
+ background-color: color.$black-alpha-10;
70
+ }
71
+
72
+ i.pi {
73
+ height: 100%;
74
+ //width: 1.5rem;
75
+ color: color.$black-alpha-20;
76
+
77
+ &:before {
78
+ position: relative;
79
+ top: -3px; // Adjust postitioning
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,156 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "sass:map";
4
+
5
+ @use "../lic/bootstrap-license";
6
+ @use "../themes/bootstrap/overrides" as *;
7
+ @use "../themes/bootstrap/list-group" as bl;
8
+
9
+ @use "../variables/color";
10
+ @use "../variables/spacing";
11
+ @use "../variables/type";
12
+ @use "../variables/commons";
13
+ @use "../variables/animation";
14
+ @use "../variables/components/list-group";
15
+ @use "../mixins/type" as type-mixins;
16
+
17
+ // Base class
18
+ .list-group {
19
+ background-color: transparent;
20
+
21
+ &-box {
22
+ box-shadow: commons.$box-shadow;
23
+ padding-top: map.get(spacing.$post-sizes, "mini");
24
+ padding-bottom: map.get(spacing.$post-sizes, "mini");
25
+ }
26
+ }
27
+
28
+ .list-group-item-action {
29
+ @include transition(color animation.$transition-time-simple animation.$transition-easing-default, background-color animation.$transition-time-simple animation.$transition-easing-default);
30
+
31
+ @include hover-focus {
32
+ .list-group-item-right-svg {
33
+ transform: translateX(animation.$transition-distance-xsmall);
34
+ }
35
+ }
36
+
37
+ .list-group-item-right-svg {
38
+ @include transition(transform animation.$transition-time-area-small animation.$transition-easing-default);
39
+ }
40
+
41
+ &-minimal,
42
+ &-transparent {
43
+ @include hover-focus {
44
+ background-color: transparent;
45
+ }
46
+ }
47
+
48
+ &-inverted {
49
+ background-color: transparent;
50
+
51
+ @include hover-focus {
52
+ background-color: list-group.$list-group-hover-bg-inverted;
53
+ }
54
+ }
55
+ }
56
+
57
+ .list-group-item {
58
+ display: flex;
59
+ align-content: center;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ font-weight: normal;
63
+ text-decoration: none;
64
+ padding-right: map.get(spacing.$post-sizes, "small-regular");
65
+ padding-left: map.get(spacing.$post-sizes, "small-regular");
66
+ background-color: transparent;
67
+
68
+ &-svg {
69
+ flex: 0 0 auto;
70
+ }
71
+
72
+ &-left-icon {
73
+ justify-content: flex-start;
74
+ padding-left: map.get(spacing.$post-sizes, "mini");
75
+
76
+ .list-group-item-svg {
77
+ margin-right: map.get(spacing.$post-sizes, "mini");
78
+
79
+ @include media-breakpoint-up(rg) {
80
+ margin-right: map.get(spacing.$post-sizes, "small-regular");
81
+ }
82
+ }
83
+
84
+ @include media-breakpoint-up(rg) {
85
+ padding-left: map.get(spacing.$post-sizes, "small-regular");
86
+ }
87
+ }
88
+
89
+ &-no-border {
90
+ border: none;
91
+ }
92
+
93
+ &-minimal {
94
+ @include type-mixins.fontSizeAndLineHeight(type.$font-size-bigger-regular, type.$font-size-bigger-regular);
95
+ padding-right: 0;
96
+ padding-left: 0;
97
+ }
98
+
99
+ &-transparent {
100
+ background-color: transparent;
101
+
102
+ &:hover {
103
+ background-color: transparent;
104
+ }
105
+
106
+ @include media-breakpoint-up(rg) {
107
+ padding-left: map.get(spacing.$post-sizes, "regular");
108
+ }
109
+ }
110
+
111
+ &-white {
112
+ background-color: transparent;
113
+ color: color.$white;
114
+
115
+ &:hover {
116
+ color: color.$white-alpha-80;
117
+ background-color: transparent;
118
+ }
119
+ }
120
+
121
+ @include media-breakpoint-up(rg) {
122
+ padding-left: map.get(spacing.$post-sizes, "large");
123
+
124
+ &-minimal {
125
+ padding-left: 0;
126
+ }
127
+
128
+ &-transparent {
129
+ padding-left: map.get(spacing.$post-sizes, "regular");
130
+ padding-right: map.get(spacing.$post-sizes, "mini");
131
+ }
132
+ }
133
+
134
+ @include media-breakpoint-up(lg) {
135
+ &-big {
136
+ padding: map.get(spacing.$post-sizes, "small-large") map.get(spacing.$post-sizes, "mini") map.get(spacing.$post-sizes, "small-large") map.get(spacing.$post-sizes, "regular");
137
+ }
138
+ }
139
+ }
140
+
141
+ .list-group-item {
142
+ border-right: 0;
143
+ border-left: 0;
144
+ border-collapse: collapse;
145
+
146
+ .list-group &:last-child {
147
+ border-bottom: 0;
148
+ }
149
+ }
150
+
151
+ .list-group-white {
152
+ .list-group-item {
153
+ border: none;
154
+ border-top: list-group.$list-group-border-width solid color.$white-alpha-20;
155
+ }
156
+ }
@@ -0,0 +1,87 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "../lic/bootstrap-license";
4
+ @use "../themes/bootstrap/modal" as bm;
5
+ @use "../themes/bootstrap/close" as bc;
6
+ @use "../themes/bootstrap/overrides" as bootstrap;
7
+
8
+ @use "../mixins/icons" as icon-mixin;
9
+ @use "../mixins/scroll-shadows" as scroll-shadows-mixin;
10
+ @use "../variables";
11
+
12
+ .modal-content {
13
+ border: none;
14
+ box-shadow: variables.$box-shadow;
15
+ }
16
+
17
+ post-ngb-modal-content {
18
+ display: flex;
19
+ flex-direction: column;
20
+ }
21
+
22
+ .modal-body {
23
+ @include scroll-shadows-mixin.scroll-shadows-y(variables.$modal-content-bg);
24
+ overflow-y: auto;
25
+ padding: variables.$modal-body-padding;
26
+ }
27
+
28
+ .modal-header,
29
+ .modal-footer {
30
+ border: none;
31
+ }
32
+
33
+ .modal-title:focus {
34
+ outline: none; // Removes focus styles when you manually set focus to title with ngbAutofocus https://ng-bootstrap.github.io/#/components/modal/examples#focus
35
+ }
36
+
37
+ .modal-header .close {
38
+ padding: variables.$modal-close-btn-padding;
39
+
40
+ & > * { // hide the "X" from the ng-bootstrap implementation
41
+ display: none;
42
+ }
43
+
44
+ &::before { // display the "X" from CWF icons
45
+ @include icon-mixin.pi(2043);
46
+ content: "";
47
+ position: relative;
48
+ opacity: .8;
49
+ vertical-align: middle;
50
+ display: inline-block;
51
+ width: variables.$icon-size-default;
52
+ height: variables.$icon-size-default;
53
+ background-size: contain;
54
+ background-repeat: no-repeat;
55
+ background-position: center center;
56
+ transition: variables.$transition-fade;
57
+ }
58
+ }
59
+
60
+ @include bootstrap.media-breakpoint-up(sm) {
61
+ post-ngb-modal-content { // prevents the modal from exceeding the height of the screen
62
+ max-height: calc(100vh - #{2 * variables.$modal-dialog-margin-y-sm-up});
63
+ }
64
+
65
+ // Right and left margins are set to "auto" from the sm breakpoint
66
+ // Paddings below ensure minimal margins on medium screens
67
+ .modal-dialog {
68
+ padding-right: variables.$modal-dialog-margin;
69
+ padding-left: variables.$modal-dialog-margin;
70
+ }
71
+ }
72
+
73
+ @include bootstrap.media-breakpoint-down(xs) {
74
+ post-ngb-modal-content { // make the modal cover the full height available on small screens
75
+ height: calc(100vh - #{2 * variables.$modal-dialog-margin});
76
+ }
77
+
78
+ .modal-body,
79
+ .modal-header {
80
+ padding-right: variables.$modal-header-padding-y;
81
+ padding-left: variables.$modal-header-padding-y;
82
+ }
83
+
84
+ .modal-header .close {
85
+ margin-right: (- variables.$modal-header-padding-y);
86
+ }
87
+ }
@@ -0,0 +1,67 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "../lic/bootstrap-license";
4
+ @use "../themes/bootstrap/pagination" as pg;
5
+ @use "../variables/components/pagination";
6
+ @use "../mixins/icons" as icon-mixin;
7
+ @use "./icons.scss";
8
+
9
+ .pagination {
10
+ .page-item {
11
+ color: pagination.$pagination-color;
12
+ width: pagination.$pagination-width;
13
+
14
+ &.disabled:first-child,
15
+ &.disabled:last-child {
16
+ display: none;
17
+ }
18
+
19
+ .page-link {
20
+ color: inherit;
21
+ text-decoration: none;
22
+ text-align: center;
23
+ height: 100%;
24
+
25
+ &[aria-label="Previous"],
26
+ &[aria-label="Next"] {
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ padding: 0;
31
+ }
32
+
33
+ &[aria-label="Previous"] span,
34
+ &[aria-label="Next"] span {
35
+ display: none;
36
+ }
37
+
38
+ &[aria-label="Previous"] {
39
+ &::before {
40
+ @include icon-mixin.pi(2110, pagination.$pagination-color);
41
+ @extend .pi;
42
+ content: "";
43
+ }
44
+ }
45
+
46
+ &[aria-label="Next"] {
47
+ &::before {
48
+ @include icon-mixin.pi(2111, pagination.$pagination-color);
49
+ @extend .pi;
50
+ content: "";
51
+ }
52
+ }
53
+
54
+ &[aria-disabled] {
55
+ border-bottom: none;
56
+ border-top: none;
57
+ background-color: transparent;
58
+ }
59
+ }
60
+
61
+ &:hover,
62
+ &:focus,
63
+ &.active {
64
+ color: pagination.$pagination-active-color;
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,21 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "../lic/bootstrap-license";
4
+ @use "../themes/bootstrap/overrides" as *;
5
+ @use "../themes/bootstrap/popover" as bl;
6
+
7
+ @use "../variables/type";
8
+
9
+ // Popover
10
+ .popover {
11
+ text-align: left;
12
+ background-clip: border-box;
13
+ border-radius: 0px;
14
+ }
15
+
16
+ // Popover Header
17
+ .popover-header {
18
+ font-weight: type.$font-weight-bold;
19
+ text-align: left;
20
+ border-bottom: none;
21
+ }
@@ -0,0 +1,74 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "sass:map";
4
+
5
+ @use "../lic/bootstrap-license";
6
+ @use "../themes/bootstrap/overrides" as bootstrap;
7
+ @use "../themes/bootstrap/card" as bootstrap-card;
8
+ @use "../variables/color";
9
+ @use "../variables/spacing";
10
+ @use "../variables/commons";
11
+ @use "../variables/breakpoints";
12
+ @use "../variables/components/card";
13
+ @use "../functions/sizing";
14
+ @use "../mixins/size" as size-mixin;
15
+
16
+ .product-navigation {
17
+ display: flex;
18
+ flex-flow: column;
19
+ justify-content: space-between;
20
+ height: 100%;
21
+ }
22
+
23
+ // Set auto height when product cards break
24
+ [data-sync-height-with] {
25
+ @each $breakpoint, $px in breakpoints.$grid-breakpoints {
26
+ [class*="col-#{$breakpoint}-"] > .card > & {
27
+ @media (max-width: #{$px - .2}) {
28
+ height: auto !important;
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ .card-buttons {
35
+ [class*="col-"] {
36
+ display: flex;
37
+ flex-direction: column;
38
+ }
39
+ }
40
+
41
+ .card-button {
42
+ margin: .75rem 0;
43
+ align-self: stretch;
44
+
45
+ [class*="col-"] > & {
46
+ height: 100%;
47
+ }
48
+
49
+ a {
50
+ text-decoration: none;
51
+ color: inherit;
52
+
53
+ > .pi {
54
+ width: 3rem;
55
+ height: 3rem;
56
+ margin-right: 1rem;
57
+ flex-shrink: 0;
58
+ }
59
+ }
60
+
61
+ .card-body {
62
+ @include size-mixin.responsive-size(regular);
63
+ }
64
+
65
+ .post-card-favourit {
66
+ background: transparent;
67
+ border: none;
68
+ border-radius: 0;
69
+ box-shadow: none;
70
+ position: absolute;
71
+ top: .5rem;
72
+ right: .5rem;
73
+ }
74
+ }
@@ -0,0 +1,15 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "../lic/bootstrap-license";
4
+ @use "../themes/bootstrap/overrides" as bootstrap;
5
+ @use "../themes/bootstrap/progress" as bl;
6
+
7
+ @use "../variables/color";
8
+
9
+ @each $color, $value in color.$theme-colors {
10
+ .progress {
11
+ & > .bg-#{$color} {
12
+ color: bootstrap.color-yiq($value);
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,17 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "../lic/bootstrap-license";
4
+ @use "../themes/bootstrap/overrides" as *;
5
+ @use "../themes/bootstrap/reboot";
6
+
7
+ @use "../mixins/type";
8
+ @use "../variables/animation";
9
+
10
+
11
+ body {
12
+ @include type.font-smoothing();
13
+ }
14
+
15
+ a {
16
+ @include transition(all animation.$transition-time-simple animation.$transition-easing-default);
17
+ }
@@ -0,0 +1,10 @@
1
+ @use "../variables/color";
2
+
3
+ :root {
4
+ @each $color-name, $color-value in color.$theme-colors {
5
+ --#{$color-name}: #{$color-value};
6
+ }
7
+
8
+ --text: #{color.$black};
9
+ --focus-color: #{color.$black-alpha-40};
10
+ }
@@ -0,0 +1,90 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "sass:map";
4
+ @use "../themes/bootstrap/overrides" as bootstrap;
5
+ @use "../variables/spacing";
6
+ @use "../variables/breakpoints";
7
+ @use "../mixins/utilities";
8
+
9
+ // Post margins, paddings and sizes
10
+ @each $breakpoint in map-keys(breakpoints.$grid-breakpoints) {
11
+ @include bootstrap.media-breakpoint-up($breakpoint) {
12
+ $infix: if($breakpoint == "xs", "", "-#{$breakpoint}");
13
+
14
+ @each $prop, $abbrev in (margin: m, padding: p, line-height: lh, height: h, max-height: mh, width: w, max-width: mw) {
15
+ @each $size, $length in spacing.$post-sizes {
16
+ @if ($prop == margin or $prop == padding) {
17
+ .#{$abbrev}t#{$infix}-#{$size},
18
+ .#{$abbrev}y#{$infix}-#{$size} {
19
+ #{$prop}-top: $length !important;
20
+ }
21
+
22
+ .#{$abbrev}r#{$infix}-#{$size},
23
+ .#{$abbrev}x#{$infix}-#{$size} {
24
+ #{$prop}-right: $length !important;
25
+ }
26
+
27
+ .#{$abbrev}b#{$infix}-#{$size},
28
+ .#{$abbrev}y#{$infix}-#{$size} {
29
+ #{$prop}-bottom: $length !important;
30
+ }
31
+
32
+ .#{$abbrev}l#{$infix}-#{$size},
33
+ .#{$abbrev}x#{$infix}-#{$size} {
34
+ #{$prop}-left: $length !important;
35
+ }
36
+ }
37
+
38
+ .#{$abbrev}#{$infix}-#{$size} {
39
+ #{$prop}: $length !important;
40
+ }
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ // Generate responsive spacing utility classes, a lot of them
47
+ $cache: ();
48
+
49
+ @each $breakpoint-key, $breakpoint-value in breakpoints.$grid-breakpoints {
50
+ @if ($breakpoint-key == "xs") {
51
+ @each $curve-name, $curve-sizes in spacing.$size-curves {
52
+ $value: map.get($curve-sizes, $breakpoint-key);
53
+
54
+ @each $classname, $property in spacing.$responsive-spacing-properties {
55
+ $cache: map.set($cache, $classname + $curve-name, $value);
56
+ @include utilities.generate-utility-class($classname, $curve-name, $property, $value);
57
+ }
58
+ }
59
+ } @else {
60
+ // Media queries create a scope, upstream variables become read-only and updating the $cache
61
+ // is impossible from within the media query. Therefore we first compile a stack of utility
62
+ // classes to compile, and then compile them. With caching, we're able to skip 370 utility
63
+ // classes from being written (765 vs. 2248 lines of code unminified)
64
+
65
+ $stack: ();
66
+
67
+ @each $curve-name, $curve-sizes in spacing.$size-curves {
68
+ $value: map.get($curve-sizes, $breakpoint-key);
69
+
70
+ @each $classname, $property in spacing.$responsive-spacing-properties {
71
+ @if (map.get($cache, $classname + $curve-name) != $value) {
72
+ $stack: map.set($stack, $classname, $curve-name, $property, $value);
73
+ $cache: map.set($cache, $classname + $curve-name, $value);
74
+ }
75
+ }
76
+ }
77
+
78
+ // Render the stack
79
+ //stylelint-disable-next-line order/order
80
+ @include bootstrap.media-breakpoint-up($breakpoint-key) {
81
+ @each $classname, $class-map in $stack {
82
+ @each $curve-name, $curve-map in $class-map {
83
+ @each $property, $value in $curve-map {
84
+ @include utilities.generate-utility-class($classname, $curve-name, $property, $value);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,58 @@
1
+ @forward "../variables/options";
2
+
3
+ @use "../lic/bootstrap-license";
4
+ @use "../themes/bootstrap/overrides" as *;
5
+ @use "../themes/bootstrap/progress" as bl;
6
+
7
+ @use "../variables/commons";
8
+ @use "../variables/components/spinners";
9
+
10
+
11
+ @keyframes spin {
12
+ 0% {
13
+ transform: rotate(0deg);
14
+ }
15
+
16
+ 100% {
17
+ transform: rotate(360deg);
18
+ }
19
+ }
20
+
21
+ .spinner-bg {
22
+ height: 100%;
23
+ width: 100%;
24
+ z-index: commons.$zindex-spinner;
25
+ position: absolute;
26
+ }
27
+
28
+ .loading-modal {
29
+ z-index: commons.$zindex-spinner;
30
+ position: absolute;
31
+ display: inline-flex;
32
+ top: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ left: 0;
36
+ }
37
+
38
+ .loader {
39
+ border-radius: 50%;
40
+ border: spinners.$spinner-border-width solid spinners.$spinner-color-primary;
41
+ border-right-color: transparent;
42
+ border-bottom-color: spinners.$spinner-color-secondary;
43
+ width: spinners.$spinner-size;
44
+ height: spinners.$spinner-size;
45
+ animation: spin 2s linear infinite;
46
+
47
+ &.loader-sm {
48
+ width: spinners.$spinner-size-sm;
49
+ height: spinners.$spinner-size-sm;
50
+ border-width: spinners.$spinner-border-width-sm;
51
+ }
52
+
53
+ &.loader-xs {
54
+ width: spinners.$spinner-size-xs;
55
+ height: spinners.$spinner-size-xs;
56
+ border-width: spinners.$spinner-border-width-xs;
57
+ }
58
+ }