ode-bootstrap 1.3.8-develop.202408201058 → 1.3.8-develop.202410171649

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.
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- ode-bootstrap 20/08/2024 10:58:21
1
+ ode-bootstrap 17/10/2024 16:49:31
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ode-bootstrap",
3
- "version": "1.3.8-develop.202408201058",
3
+ "version": "1.3.8-develop.202410171649",
4
4
  "description": "Open Digital Education CSS framework based on bootstrap",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,84 +1,205 @@
1
+ @use "sass:map";
2
+
1
3
  // Array Widget Flash Colors
4
+ // Global colors are wrong according to figma palette, so I redeclare them here....
2
5
  $widget-flash-colors: (
3
- "red": $red,
4
- "orange": $orange,
5
- "green": $green,
6
- "blue": $blue,
7
- "grey-dark": $gray-700,
6
+ "red": (
7
+ "background": #FFECEE,
8
+ "shadow": #FFADB9,
9
+ "badge": #FF3A55
10
+ ),
11
+ "orange": (
12
+ "background": #FFEFE3,
13
+ "shadow": #FFCBA0,
14
+ "badge": #FF8D2E
15
+ ),
16
+ "green": (
17
+ "background": #E6F9F8,
18
+ "shadow": #B6EDE5,
19
+ "badge": #46BFAF
20
+ ),
21
+ "blue": (
22
+ "background": #E5F5FF,
23
+ "shadow": #B9E3F8,
24
+ "badge": #2A9CC8
25
+ ),
26
+ "grey-dark": (
27
+ "background": $gray-300,
28
+ "shadow": $gray-400,
29
+ "badge": $gray-600
30
+ ),
8
31
  );
9
32
 
10
33
  .widget-flash {
11
- position: relative;
12
- padding: $widget-padding-x;
13
- overflow: hidden;
14
- color: $white;
15
34
  background: $secondary;
35
+
36
+ padding: 36px 24px 24px;
37
+ position: relative;
38
+ border-radius: 8px 8px 8px 6px;
39
+ margin: 32px 4px 36px 0;
40
+ left: 4px;
41
+ bottom: 4px;
16
42
 
43
+ display: grid;
44
+ grid-template-columns: 1fr auto;
45
+ grid-column-gap: 12px;
46
+ grid-row-gap: 12px;
47
+
48
+ &:last-child {
49
+ margin-bottom: 28px;
50
+ }
51
+
17
52
  @each $key, $value in $widget-flash-colors {
18
53
  &.#{$key} {
19
- --custom-message-color: #{$value};
20
- background-color: $value;
54
+ --custom-message-color: #{map.get($value, "background")};
55
+ background-color: map.get($value, "background");
56
+ box-shadow: map.get($value, "shadow") -4px 0px,
57
+ map.get($value, "shadow") 0px 4px,
58
+ map.get($value, "shadow") -2px 2px 0 2px;
59
+
60
+ &::before {
61
+ background-color: map.get($value, "badge");
62
+ border-color: map.get($value, "shadow");
63
+ box-shadow: 0 0 0 4px map.get($value, "background");
64
+ }
65
+ }
66
+ }
67
+
68
+ &::before {
69
+ content: '';
70
+ position: absolute;
71
+ display: block;
72
+ top: 4px-52px+24px + 8px;
73
+ left: 4px+24px;
74
+ width: 36px;
75
+ height: 36px;
76
+ border-radius: 100%;
77
+ border-width: 4px;
78
+ border-style: solid;
79
+ box-sizing: content-box;
80
+ }
81
+
82
+ .flash-icon {
83
+ position: absolute;
84
+ display: block;
85
+ top: 4px-52px+24px + 8px + 10px;
86
+ left: 4px+24px + 10px;
87
+ width: 24px;
88
+ height: 24px;
89
+ color: $white;
90
+ }
91
+ &.red .flash-icon{
92
+ // 'alert-triangle' icon seems vertically misaligned.
93
+ transform: translateY(-1px);
94
+ }
95
+
96
+ .flash-content-footer {
97
+ display: flex;
98
+ flex-direction: row;
99
+ justify-content: space-between;
100
+ align-items: flex-end;
101
+ margin-top: 12px;
102
+
103
+ &:not(:has(*)) {
104
+ display: none;
21
105
  }
22
106
  }
23
107
 
24
108
  .btn {
25
109
  &-close {
26
110
  position: absolute;
27
- top: 10px;
28
- right: 10px;
29
- color: var(--ode-dark);
30
- text-shadow: none;
111
+ top: 0;
112
+ right: 0;
113
+ width: 20px + 16px;
114
+ height: 20px + 16px;
115
+ padding: 8px;
116
+ box-sizing: border-box;
117
+ border-radius: 8px;
118
+ color: $text-color;
119
+ background-color: initial;
120
+ background-image: initial;
121
+ opacity: initial;
122
+
123
+ &:hover {
124
+ background-color: $gray-300;
125
+ }
126
+
127
+ &:active {
128
+ background-color: $gray-400;
129
+ color: $black;
130
+ }
131
+
132
+ &:focus {
133
+ background-color: $gray-300;
134
+ border: solid 1px $gray-400;
135
+ }
31
136
  }
32
137
 
33
138
  &-expand {
139
+ padding-left: 8px;
140
+ padding-right: 8px;
141
+
34
142
  cursor: pointer;
143
+ flex-shrink: 0;
144
+ margin-left: auto;
145
+
146
+ grid-area: 2 / 2 / 3 / 3;
147
+ align-self: flex-end;
35
148
 
36
149
  &-inner {
37
- position: absolute;
38
- z-index: 2;
39
- bottom: 0;
40
- left: 0;
41
150
  display: block;
42
- width: 100%;
43
- padding: 5px;
44
- font-size: 0.8em;
45
- color: $white;
46
151
  text-align: center;
47
- background: rgba(#000, 0.1);
48
-
49
- @include background-color-to(rgba(#000, 0.2));
152
+ font-weight: bold;
50
153
  }
51
154
  }
52
155
  }
53
156
 
54
157
  .flash-content {
55
158
  padding-right: 1rem;
159
+ grid-area: 1 / 1 / 2 / 3;
160
+
161
+ a {
162
+ color: inherit;
163
+ text-decoration: underline;
164
+ font-weight: bold;
165
+
166
+ &:hover {
167
+ color: $black;
168
+ }
169
+
170
+ &:active {
171
+ color: #550070;
172
+ }
173
+ }
56
174
 
57
- p {
58
- > br:first-child {
59
- display: none;
175
+ // This block merges empty lines and trim empty lines of the content.
176
+ p[flash-message-content]>div {
177
+ & > p {
178
+ margin-block-start: 1em;
179
+ }
180
+ & > p:not(:last-child) {
181
+ margin-block-end: 1em;
182
+ }
183
+ &::before {
184
+ content:'';
185
+ display:block;
186
+ margin-block-end: 1em;
187
+ }
188
+ margin-block-start: -1em;
189
+ &::after {
190
+ content: '';
191
+ display: block;
192
+ margin-block-start: 1em;
60
193
  }
194
+
195
+ margin-block-end: -1em;
61
196
  }
62
197
 
63
198
  &.can-be-truncated {
64
199
  &:not(.flash-content-is-expandable) {
65
- p {
66
- @include has-text-truncated(4);
67
- }
68
-
69
- &::after {
70
- content: "";
71
- position: absolute;
72
- z-index: 1;
73
- bottom: 2em;
74
- right: 0;
75
- left: 0;
76
- height: 4em;
77
- background: linear-gradient(
78
- to bottom,
79
- rgba(255, 255, 255, 0),
80
- var(--custom-message-color)
81
- );
200
+ & > p {
201
+ @include has-text-truncated(2);
202
+ padding-bottom: 0;
82
203
  }
83
204
 
84
205
  @media not all and (min-resolution: 0.001dpcm) {
@@ -86,14 +207,6 @@ $widget-flash-colors: (
86
207
  display: none;
87
208
  }
88
209
  }
89
-
90
- .flash-content-signature {
91
- display: none;
92
- }
93
- }
94
-
95
- .flash-content-signature {
96
- padding-bottom: 1rem;
97
210
  }
98
211
  }
99
212
 
@@ -101,4 +214,11 @@ $widget-flash-colors: (
101
214
  margin-bottom: 0;
102
215
  }
103
216
  }
217
+
218
+ .flash-content-signature {
219
+ grid-area: 2 / 1 / 3 / 2;
220
+ font-weight: bold;
221
+ margin-right: 2em !important;
222
+ color: $gray-700;
223
+ }
104
224
  }
@@ -13,6 +13,7 @@
13
13
  overflow: hidden;
14
14
  -webkit-line-clamp: $lines;
15
15
  -webkit-box-orient: vertical;
16
+ text-overflow: ellipsis;
16
17
  }
17
18
 
18
19
  // Hack for multiline ellipsis