ghost 4.27.0 → 4.29.0

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 (39) hide show
  1. package/content/themes/casper/assets/built/screen.css +1 -1
  2. package/content/themes/casper/assets/built/screen.css.map +1 -1
  3. package/content/themes/casper/assets/css/screen.css +1 -17
  4. package/content/themes/casper/package.json +1 -1
  5. package/content/themes/casper/partials/post-card.hbs +1 -1
  6. package/core/built/assets/{ghost-dark-ae67fe157509b6e82c607ba560fc52e9.css → ghost-dark-b93e2e2dcc4c0e1efa981314f45f8cda.css} +1 -1
  7. package/core/built/assets/{ghost.min-b1e58e098721e467388682a85a7c187d.css → ghost.min-578a1b7e68d1f7ae0003ebe421b7c182.css} +1 -1
  8. package/core/built/assets/{ghost.min-2d534cce15c43c646814b26f4beefb78.js → ghost.min-ba8ef5d16b8a6f9072564a368154df72.js} +79 -79
  9. package/core/built/assets/icons/audio-file.svg +5 -0
  10. package/core/built/assets/icons/file-download.svg +1 -0
  11. package/core/built/assets/icons/file-upload.svg +1 -0
  12. package/core/built/assets/icons/film-camera.svg +4 -0
  13. package/core/built/assets/icons/mute.svg +3 -0
  14. package/core/built/assets/icons/pause.svg +4 -0
  15. package/core/built/assets/icons/play.svg +3 -0
  16. package/core/built/assets/icons/unmute.svg +3 -0
  17. package/core/built/assets/{vendor.min-e433aa7d5620e7837f30e170cd43f84e.js → vendor.min-c450359ad46217cd48c00b277ae54a09.js} +227 -128
  18. package/core/frontend/apps/amp/lib/views/amp.hbs +94 -2
  19. package/core/frontend/helpers/ghost_head.js +1 -1
  20. package/core/frontend/src/cards/css/audio.css +92 -29
  21. package/core/frontend/src/cards/css/before-after.css +47 -0
  22. package/core/frontend/src/cards/css/bookmark.css +3 -3
  23. package/core/frontend/src/cards/css/button.css +4 -4
  24. package/core/frontend/src/cards/css/file.css +73 -0
  25. package/core/frontend/src/cards/css/nft.css +8 -6
  26. package/core/frontend/src/cards/css/product.css +77 -49
  27. package/core/frontend/src/cards/css/video.css +281 -0
  28. package/core/frontend/src/cards/js/audio.js +127 -128
  29. package/core/frontend/src/cards/js/before-after.js +41 -0
  30. package/core/frontend/src/cards/js/gallery.js +10 -8
  31. package/core/frontend/src/cards/js/toggle.js +16 -14
  32. package/core/frontend/src/cards/js/video.js +164 -0
  33. package/core/server/services/mega/post-email-serializer.js +3 -1
  34. package/core/server/services/mega/template.js +15 -11
  35. package/core/server/web/admin/views/default-prod.html +4 -4
  36. package/core/server/web/admin/views/default.html +4 -4
  37. package/core/shared/labs.js +7 -6
  38. package/package.json +14 -10
  39. package/yarn.lock +2526 -1942
@@ -1,36 +1,30 @@
1
- .kg-product-card-container {
1
+ .kg-product-card {
2
2
  display: flex;
3
- background: transparent;
4
- box-shadow: inset 0 0 0 1px rgb(124 139 154 / 25%);
5
- border-radius: 5px;
3
+ align-items: center;
6
4
  flex-direction: column;
7
- text-decoration: none;
8
- max-width: 550px;
9
- padding: 20px;
10
5
  width: 100%;
11
6
  }
12
7
 
13
- .kg-product-card {
8
+ .kg-product-card-container {
9
+ display: grid;
10
+ grid-template-columns: auto min-content;
14
11
  align-items: center;
15
- display: flex;
16
- flex-direction: column;
12
+ grid-row-gap: 16px;
13
+ background: transparent;
14
+ max-width: 550px;
15
+ padding: 20px;
17
16
  width: 100%;
17
+ border-radius: 5px;
18
+ box-shadow: inset 0 0 0 1px rgb(124 139 154 / 25%);
18
19
  }
19
20
 
20
21
  .kg-product-card-image {
21
- margin-bottom: 1.6rem;
22
- }
23
-
24
- .kg-product-card-header {
25
- display: flex;
26
- align-items: flex-start;
27
- gap: 8px;
28
- flex-wrap: wrap;
29
- justify-content: space-between;
22
+ grid-column: 1 / 3;
23
+ justify-self: center;
30
24
  }
31
25
 
32
26
  .kg-product-card-title-container {
33
- flex: 2 1 250px;
27
+ grid-column: 1 / 2;
34
28
  }
35
29
 
36
30
  .kg-product-card-title {
@@ -39,63 +33,97 @@
39
33
  font-size: 1.4em;
40
34
  margin-top: 0;
41
35
  margin-bottom: 0;
42
- line-height: 1.4em;
36
+ line-height: 1.25em;
43
37
  }
44
38
 
45
39
  .kg-product-card-description {
40
+ grid-column: 1 / 3;
46
41
  font-size: 1em;
47
- line-height: 1.6em;
42
+ line-height: 1.4em;
48
43
  opacity: .7;
49
- margin-top: 8px;
50
44
  }
51
45
 
52
- .kg-product-card-button {
53
- width: 100%;
54
- margin-top: 16px;
46
+ .kg-product-card-description p:not(:first-of-type) {
47
+ margin-top: 0.8em;
48
+ margin-bottom: 0;
55
49
  }
56
50
 
57
- .kg-product-card-rating {
58
- display: flex;
59
- align-items: center;
60
- flex: 0 0 100px;
51
+ .kg-product-card-description p:first-of-type {
52
+ margin-top: -4px;
61
53
  }
62
54
 
63
- .kg-product-card-rating-star {
64
- display: flex;
65
- align-items: center;
66
- justify-content: center;
67
- height: 32px;
68
- width: 20px;
55
+ .kg-product-card-description p:last-of-type {
56
+ margin-bottom: 6px;
69
57
  }
70
58
 
71
- .kg-product-card-rating-star svg {
72
- width: 16px;
73
- height: 16px;
74
- fill: #fff;
59
+ .kg-product-card-description ul {
60
+ margin-top: 1rem;
61
+ }
62
+
63
+ .kg-product-card-description li {
64
+ line-height: 1.4em;
75
65
  }
76
66
 
77
- .kg-product-card-rating-edit .kg-product-card-rating-star:hover {
78
- opacity: 0.7;
67
+ .kg-product-card-description li+li {
68
+ margin-top: 0.2em;
79
69
  }
80
70
 
81
- .kg-product-card-rating-edit {
82
- background: none;
71
+ .kg-product-card-rating {
83
72
  display: flex;
84
73
  align-items: center;
74
+ grid-column: 2 / 3;
75
+ align-self: start;
76
+ justify-self: end;
77
+ padding-left: 16px;
85
78
  }
86
79
 
87
- .kg-product-card-rating-preview {
88
- display: flex;
80
+ @media (max-width: 400px) {
81
+ .kg-product-card-title-container {
82
+ grid-column: 1 / 3;
83
+ }
84
+
85
+ .kg-product-card-rating {
86
+ grid-column: 1 / 3;
87
+ justify-self: start;
88
+ margin-top: -15px;
89
+ padding-left: 0;
90
+ }
91
+ }
92
+
93
+ .kg-product-card-rating-star {
94
+ height: 28px;
95
+ width: 20px;
89
96
  }
90
97
 
91
98
  .kg-product-card-rating-star svg {
92
- fill: #ebeef0;
99
+ width: 16px;
100
+ height: 16px;
101
+ fill: currentColor;
102
+ opacity: 0.15;
93
103
  }
94
104
 
95
105
  .kg-product-card-rating-active.kg-product-card-rating-star svg {
96
- fill: #394047;
106
+ opacity: 1;
97
107
  }
98
108
 
99
109
  .kg-product-card-button {
100
110
  justify-content: center;
101
- }
111
+ grid-column: 1 / 3;
112
+ width: 100%;
113
+ display: flex;
114
+ position: static;
115
+ align-items: center;
116
+ padding: 0 1.2em;
117
+ height: 2.4em;
118
+ line-height: 1em;
119
+ font-size: 0.95em;
120
+ font-weight: 600;
121
+ text-decoration: none;
122
+ border-radius: 5px;
123
+ transition: opacity 0.2s ease-in-out;
124
+ }
125
+
126
+ .kg-product-card-btn-accent {
127
+ background-color: var(--ghost-accent-color);
128
+ color: #fff;
129
+ }
@@ -0,0 +1,281 @@
1
+ .kg-video-card video {
2
+ max-width: 100%;
3
+ height: auto;
4
+ }
5
+
6
+ .kg-video-thumbnail {
7
+ display: flex;
8
+ justify-content: center;
9
+ align-items: center;
10
+ width: 80px;
11
+ min-width: 80px;
12
+ margin: 8px;
13
+ background: var(--ghost-accent-color);
14
+ object-fit: cover;
15
+ aspect-ratio: 1/1;
16
+ border-radius: 3px;
17
+ }
18
+
19
+ .kg-video-thumbnail svg {
20
+ width: 24px;
21
+ height: 24px;
22
+ fill: white;
23
+ }
24
+
25
+ .kg-video-card {
26
+ position: relative;
27
+ --seek-before-width: 0%;
28
+ --volume-before-width: 100%;
29
+ --buffered-width: 0%;
30
+ }
31
+
32
+ .kg-video-title {
33
+ width: 100%;
34
+ margin: 8px 0 0 0;
35
+ padding: 8px 12px 0;
36
+ border: none;
37
+ font-family: inherit;
38
+ font-size: 1em;
39
+ font-weight: 700;
40
+ background: transparent;
41
+ }
42
+
43
+ .kg-video-player {
44
+ display: flex;
45
+ flex-grow: 1;
46
+ align-items: center;
47
+ padding: 8px 12px;
48
+ }
49
+
50
+ .kg-video-current-time {
51
+ min-width: 38px;
52
+ padding: 0 4px;
53
+ font-family: inherit;
54
+ font-size: .85em;
55
+ font-weight: 500;
56
+ line-height: 1.4em;
57
+ white-space: nowrap;
58
+ }
59
+
60
+ .kg-video-time {
61
+ color: #ababab;
62
+ font-family: inherit;
63
+ font-size: .85em;
64
+ font-weight: 500;
65
+ line-height: 1.4em;
66
+ white-space: nowrap;
67
+ }
68
+
69
+ .kg-video-duration {
70
+ padding: 0 4px;
71
+ }
72
+
73
+ .kg-video-play-icon,
74
+ .kg-video-pause-icon {
75
+ position: relative;
76
+ bottom: 1px;
77
+ padding: 0px 4px 0 0;
78
+ font-size: 0;
79
+ background: transparent;
80
+ }
81
+
82
+ .kg-video-hide {
83
+ display: none !important;
84
+ }
85
+
86
+ .kg-video-play-icon svg,
87
+ .kg-video-pause-icon svg {
88
+ width: 14px;
89
+ height: 14px;
90
+ fill: currentColor;
91
+ }
92
+
93
+ .kg-video-seek-slider {
94
+ flex-grow: 1;
95
+ margin: 0 4px;
96
+ }
97
+
98
+ .kg-video-playback-rate {
99
+ min-width: 37px;
100
+ padding: 0 4px;
101
+ font-family: inherit;
102
+ font-size: .85em;
103
+ font-weight: 600;
104
+ line-height: 1.4em;
105
+ text-align: left;
106
+ background: transparent;
107
+ white-space: nowrap;
108
+ }
109
+
110
+ .kg-video-mute-icon,
111
+ .kg-video-unmute-icon {
112
+ position: relative;
113
+ bottom: 1px;
114
+ padding: 0 4px;
115
+ font-size: 0;
116
+ background: transparent;
117
+ }
118
+
119
+ .kg-video-mute-icon svg,
120
+ .kg-video-unmute-icon svg {
121
+ width: 16px;
122
+ height: 16px;
123
+ fill: currentColor;
124
+ }
125
+
126
+ .kg-video-volume-slider {
127
+ width: 80px;
128
+ }
129
+
130
+ .kg-video-seek-slider::before {
131
+ content: "";
132
+ position: absolute;
133
+ left: 0;
134
+ width: var(--seek-before-width) !important;
135
+ height: 4px;
136
+ cursor: pointer;
137
+ background-color: currentColor;
138
+ border-radius: 2px;
139
+ }
140
+
141
+ .kg-video-volume-slider::before {
142
+ content: "";
143
+ position: absolute;
144
+ left: 0;
145
+ width: var(--volume-before-width) !important;
146
+ height: 4px;
147
+ cursor: pointer;
148
+ background-color: currentColor;
149
+ border-radius: 2px;
150
+ }
151
+
152
+ /* Resetting browser styles
153
+ /* --------------------------------------------------------------- */
154
+
155
+ .kg-video-card input[type=range] {
156
+ position: relative;
157
+ -webkit-appearance: none;
158
+ background: transparent;
159
+ }
160
+
161
+ .kg-video-card input[type=range]:focus {
162
+ outline: none;
163
+ }
164
+
165
+ .kg-video-card input[type=range]::-webkit-slider-thumb {
166
+ -webkit-appearance: none;
167
+ }
168
+
169
+ .kg-video-card input[type=range]::-ms-track {
170
+ cursor: pointer;
171
+ border-color: transparent;
172
+ color: transparent;
173
+ background: transparent;
174
+ }
175
+
176
+ .kg-video-card button {
177
+ display: flex;
178
+ align-items: center;
179
+ border: 0;
180
+ }
181
+
182
+ .kg-video-card input[type="range"] {
183
+ height: auto;
184
+ padding: 0;
185
+ border: 0;
186
+ }
187
+
188
+ /* Chrome & Safari styles
189
+ /* --------------------------------------------------------------- */
190
+
191
+ .kg-video-card input[type="range"]::-webkit-slider-runnable-track {
192
+ width: 100%;
193
+ height: 4px;
194
+ cursor: pointer;
195
+ background: rgba(124, 139, 154, 0.25);
196
+ border-radius: 2px;
197
+ }
198
+
199
+ .kg-video-card input[type="range"]::-webkit-slider-thumb {
200
+ position: relative;
201
+ box-sizing: content-box;
202
+ width: 12px;
203
+ height: 12px;
204
+ margin: -5px 0 0 0;
205
+ border: 0;
206
+ cursor: pointer;
207
+ background: #fff;
208
+ border-radius: 50%;
209
+ box-shadow: 0 0 0 1px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,0.24);
210
+ }
211
+
212
+ .kg-video-card input[type="range"]:active::-webkit-slider-thumb {
213
+ transform: scale(1.2);
214
+ }
215
+
216
+ /* Firefox styles
217
+ /* --------------------------------------------------------------- */
218
+
219
+ .kg-video-card input[type="range"]::-moz-range-track {
220
+ width: 100%;
221
+ height: 4px;
222
+ cursor: pointer;
223
+ background: rgba(124, 139, 154, 0.25);
224
+ border-radius: 2px;
225
+ }
226
+
227
+ .kg-video-card input[type="range"]::-moz-range-progress {
228
+ background: currentColor;
229
+ border-radius: 2px;
230
+ }
231
+
232
+ .kg-video-card input[type="range"]::-moz-range-thumb {
233
+ box-sizing: content-box;
234
+ width: 12px;
235
+ height: 12px;
236
+ border: 0;
237
+ cursor: pointer;
238
+ background: #fff;
239
+ border-radius: 50%;
240
+ box-shadow: 0 0 0 1px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,0.24);
241
+ }
242
+
243
+ .kg-video-card input[type="range"]:active::-moz-range-thumb {
244
+ transform: scale(1.2);
245
+ }
246
+
247
+ /* Edge & IE styles
248
+ /* --------------------------------------------------------------- */
249
+
250
+ .kg-video-card input[type="range"]::-ms-track {
251
+ width: 100%;
252
+ height: 3px;
253
+ border: solid transparent;
254
+ color: transparent;
255
+ cursor: pointer;
256
+ background: transparent;
257
+ }
258
+
259
+ .kg-video-card input[type="range"]::-ms-fill-lower {
260
+ background: #fff;
261
+ }
262
+
263
+ .kg-video-card input[type="range"]::-ms-fill-upper {
264
+ background: currentColor;
265
+ }
266
+
267
+ .kg-video-card input[type="range"]::-ms-thumb {
268
+ box-sizing: content-box;
269
+ width: 12px;
270
+ height: 12px;
271
+ border: 0;
272
+ cursor: pointer;
273
+ background: #fff;
274
+ border-radius: 50%;
275
+ box-shadow: 0 0 0 1px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,0.24);
276
+ }
277
+
278
+ .kg-video-card input[type="range"]:active::-ms-thumb {
279
+ transform: scale(1.2);
280
+ }
281
+