@shift72/core-template 0.6.0-alpha.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/.github/pull_request_template.md +47 -0
  2. package/.github/workflows/node.js.yml +1 -1
  3. package/CHANGELOG.md +35 -1
  4. package/kibble.json +2 -2
  5. package/package.json +1 -1
  6. package/site/ar_LB.all.json +41 -19
  7. package/site/ca_ES.all.json +33 -19
  8. package/site/da_DK.all.json +33 -19
  9. package/site/de_DE.all.json +33 -19
  10. package/site/el_EL.all.json +33 -19
  11. package/site/en_AU.all.json +17 -3
  12. package/site/es_ES.all.json +33 -19
  13. package/site/es_MX.all.json +30 -16
  14. package/site/et_ET.all.json +33 -19
  15. package/site/fi_FI.all.json +33 -19
  16. package/site/fr_FR.all.json +33 -19
  17. package/site/hr_HR.all.json +35 -19
  18. package/site/hu_HU.all.json +33 -19
  19. package/site/it_IT.all.json +33 -19
  20. package/site/ja_JP.all.json +31 -19
  21. package/site/lt_LT.all.json +37 -19
  22. package/site/nl_BE.all.json +32 -18
  23. package/site/no_NO.all.json +33 -19
  24. package/site/pl_PL.all.json +37 -19
  25. package/site/pt_BR.all.json +33 -19
  26. package/site/pt_PT.all.json +33 -19
  27. package/site/ru_RU.all.json +43 -25
  28. package/site/sr_SR.all.json +35 -19
  29. package/site/static/js/main.js +1 -1
  30. package/site/static/scripts/main.js.map +1 -1
  31. package/site/styles/_buttons.scss +32 -27
  32. package/site/styles/_can-be-watched-button.scss +0 -20
  33. package/site/styles/_carousel.scss +125 -307
  34. package/site/styles/_collections.scss +6 -11
  35. package/site/styles/_cta-buttons.scss +262 -0
  36. package/site/styles/_forms.scss +1 -2
  37. package/site/styles/_icons.scss +3 -1
  38. package/site/styles/_legacy.scss +1 -43
  39. package/site/styles/_meta-detail.scss +20 -194
  40. package/site/styles/_meta-item-tagline.scss +33 -0
  41. package/site/styles/_meta-item.scss +0 -4
  42. package/site/styles/_meta-sub-item.scss +116 -0
  43. package/site/styles/_mixins.scss +45 -0
  44. package/site/styles/_nav.scss +1 -1
  45. package/site/styles/_pages.scss +4 -13
  46. package/site/styles/_plans.scss +14 -0
  47. package/site/styles/_shift72.scss +4 -0
  48. package/site/styles/_variables.scss +2 -4
  49. package/site/styles/main.scss +2 -1
  50. package/site/templates/bundle/item.jet +2 -4
  51. package/site/templates/collection/carousel/carousel.jet +27 -0
  52. package/site/templates/collection/carousel/item/image.jet +5 -0
  53. package/site/templates/collection/carousel/item/synopsis.jet +5 -0
  54. package/site/templates/collection/carousel/item/tagline.jet +7 -0
  55. package/site/templates/collection/carousel/item/title.jet +3 -0
  56. package/site/templates/collection/carousel/item.jet +41 -0
  57. package/site/templates/collection/carousel/pagination.jet +9 -0
  58. package/site/templates/collection/page_collection.jet +2 -2
  59. package/site/templates/common/cta_buttons.jet +70 -0
  60. package/site/templates/common/social-media-buttons.jet +2 -2
  61. package/site/templates/film/item.jet +6 -16
  62. package/site/templates/items/sub_item.jet +22 -0
  63. package/site/templates/items/tagline.jet +2 -2
  64. package/site/templates/page/homepage.jet +2 -3
  65. package/site/templates/tv/detail.jet +10 -18
  66. package/site/tr_TR.all.json +33 -19
  67. package/site/uk_UA.all.json +37 -19
  68. package/site/zh_TW.all.json +31 -19
  69. package/site/styles/_homepage.scss +0 -3
  70. package/site/templates/bundle/buttons.jet +0 -6
  71. package/site/templates/bundle/extras.jet +0 -13
  72. package/site/templates/collection/carousel.jet +0 -27
  73. package/site/templates/collection/carousel_item.jet +0 -68
  74. package/site/templates/items/bonus_item.jet +0 -23
  75. package/site/templates/items/featured_item.jet +0 -61
  76. package/site/templates/tv/episode.jet +0 -21
@@ -0,0 +1,116 @@
1
+ .sub-item {
2
+ display: grid;
3
+ grid-gap: 15px;
4
+ grid-template-columns: 112px minmax(100px, 1fr);
5
+ grid-template-rows: auto minmax(0, 1fr);
6
+ margin-bottom: 15px;
7
+ padding-bottom: 15px;
8
+
9
+ @include media-breakpoint-up(sm) {
10
+ grid-template-columns: 175px minmax(100px, 1fr);
11
+ grid-template-rows: auto auto minmax(0, 1fr);
12
+ }
13
+
14
+ h3 {
15
+ color: var(--body-color);
16
+ font-size: 16px;
17
+ font-weight: $font-weight-normal;
18
+ letter-spacing: 0.4px;
19
+ margin-bottom: 15px;
20
+
21
+ @include media-breakpoint-up(sm) {
22
+ margin-bottom: 0;
23
+ }
24
+ }
25
+
26
+ &:not(:last-of-type) {
27
+ border-bottom: 1px solid $list-group-border-color;
28
+ }
29
+
30
+ s72-image {
31
+ display: initial; //override relish
32
+ }
33
+
34
+ .poster-container {
35
+ grid-row: 1 / 3;
36
+
37
+ @include media-breakpoint-up(sm) {
38
+ grid-row: 1 / 4;
39
+ }
40
+ }
41
+
42
+ .synopsis {
43
+ font-size: 16px;
44
+ font-weight: $font-weight-light;
45
+ grid-column: 1 / 3;
46
+ letter-spacing: 0.6px;
47
+ line-height: 1.25;
48
+ margin-top: 5px;
49
+
50
+ @include media-breakpoint-up(sm) {
51
+ grid-column: auto;
52
+ grid-row: 2;
53
+ margin-bottom: 10px;
54
+ }
55
+
56
+ p {
57
+ margin-bottom: 0;
58
+ }
59
+ }
60
+
61
+ .runtime {
62
+ font-size: 14px;
63
+ line-height: 14px;
64
+ }
65
+
66
+ .poster {
67
+ border-radius: $poster-border-radius;
68
+
69
+ img {
70
+ width: 100%;
71
+ }
72
+
73
+ .s72-btn-play {
74
+ background-color: unset;
75
+ border: 0;
76
+ border-radius: 999px;
77
+ box-shadow: none;
78
+ left: 50%;
79
+ padding-left: 3px;
80
+ padding-right: 3px;
81
+ position: absolute;
82
+ top: 50%;
83
+ transform: translateX(-50%) translateY(-50%);
84
+ z-index: 2;
85
+
86
+ /* stylelint-disable selector-max-compound-selectors */
87
+ circle {
88
+ fill: rgba(0, 0, 0, 0.8) !important;
89
+ stroke: unset;
90
+ }
91
+
92
+ path {
93
+ fill: #fff !important;
94
+ stroke: #fff !important;
95
+ }
96
+
97
+ .verb {
98
+ display: none;
99
+ }
100
+ /* stylelint-enable selector-max-compound-selectors */
101
+ }
102
+ }
103
+ }
104
+
105
+ .s72-playback-progress,
106
+ .s72-playback-progress-bar {
107
+ height: 6px;
108
+ }
109
+
110
+ .s72-playback-progress {
111
+ background-color: rgba(var(--body-bg-rgb), 0.5);
112
+ }
113
+
114
+ .s72-playback-progress-bar {
115
+ background-color: var(--secondary);
116
+ }
@@ -24,6 +24,51 @@
24
24
  z-index: 8;
25
25
  }
26
26
 
27
+ // Easing gradients created using this tool: https://larsenwork.com/easing-gradients/#editor
28
+ .carousel-bottom-gradient {
29
+ background: linear-gradient(
30
+ to bottom,
31
+ rgba(var(--body-bg-rgb), 0) 0%,
32
+ rgba(var(--body-bg-rgb), 0.013) 8.1%,
33
+ rgba(var(--body-bg-rgb), 0.049) 15.5%,
34
+ rgba(var(--body-bg-rgb), 0.104) 22.5%,
35
+ rgba(var(--body-bg-rgb), 0.175) 29%,
36
+ rgba(var(--body-bg-rgb), 0.259) 35.3%,
37
+ rgba(var(--body-bg-rgb), 0.352) 41.2%,
38
+ rgba(var(--body-bg-rgb), 0.45) 47.1%,
39
+ rgba(var(--body-bg-rgb), 0.55) 52.9%,
40
+ rgba(var(--body-bg-rgb), 0.648) 58.8%,
41
+ rgba(var(--body-bg-rgb), 0.741) 64.7%,
42
+ rgba(var(--body-bg-rgb), 0.825) 71%,
43
+ rgba(var(--body-bg-rgb), 0.896) 77.5%,
44
+ rgba(var(--body-bg-rgb), 0.951) 84.5%,
45
+ rgba(var(--body-bg-rgb), 0.987) 91.9%,
46
+ rgba(var(--body-bg-rgb)) 100%
47
+ );
48
+ }
49
+
50
+ .navigation-gradient {
51
+ background: linear-gradient(
52
+ to bottom,
53
+ rgba(var(--body-bg-rgb)) 0%,
54
+ rgba(var(--body-bg-rgb), 0.987) 1.1%,
55
+ rgba(var(--body-bg-rgb), 0.951) 4.2%,
56
+ rgba(var(--body-bg-rgb), 0.896) 9%,
57
+ rgba(var(--body-bg-rgb), 0.825) 15.2%,
58
+ rgba(var(--body-bg-rgb), 0.741) 22.6%,
59
+ rgba(var(--body-bg-rgb), 0.648) 30.9%,
60
+ rgba(var(--body-bg-rgb), 0.55) 39.8%,
61
+ rgba(var(--body-bg-rgb), 0.45) 49%,
62
+ rgba(var(--body-bg-rgb), 0.352) 58.3%,
63
+ rgba(var(--body-bg-rgb), 0.259) 67.4%,
64
+ rgba(var(--body-bg-rgb), 0.175) 76%,
65
+ rgba(var(--body-bg-rgb), 0.104) 83.8%,
66
+ rgba(var(--body-bg-rgb), 0.049) 90.6%,
67
+ rgba(var(--body-bg-rgb), 0.013) 96.1%,
68
+ rgba(var(--body-bg-rgb), 0) 100%
69
+ );
70
+ }
71
+
27
72
  @mixin a {
28
73
  background-color: transparent;
29
74
  color: var(--link-color);
@@ -1,5 +1,5 @@
1
1
  .navigation {
2
- @extend .top-gradient-bg;
2
+ @extend .navigation-gradient;
3
3
  background-color: transparent;
4
4
  display: flex;
5
5
  flex-direction: column;
@@ -8,7 +8,6 @@
8
8
  .form-page {
9
9
  @include media-breakpoint-up(md) {
10
10
  padding-bottom: $grid-gutter-width * 4;
11
- padding-top: $grid-gutter-width * 4;
12
11
  }
13
12
  }
14
13
 
@@ -83,7 +82,6 @@
83
82
  @include media-breakpoint-up(xl) {
84
83
  padding: var(--page-padding-top-lg) 0 0 0;
85
84
  }
86
-
87
85
  .page-header {
88
86
  h1,
89
87
  p {
@@ -144,17 +142,6 @@
144
142
  }
145
143
  }
146
144
 
147
- .curated-page,
148
- .collection-page {
149
- padding: var(--page-padding-top) 0 0 0;
150
- @include media-breakpoint-up(md) {
151
- padding: var(--page-padding-top-md) 0 0 0;
152
- }
153
- @include media-breakpoint-up(lg) {
154
- padding: var(--page-padding-top-lg) 0 0 0;
155
- }
156
- }
157
-
158
145
  .collection-page {
159
146
  .page-collections {
160
147
  @extend .d-flex;
@@ -189,6 +176,10 @@
189
176
  padding: 0 5px 10px;
190
177
  }
191
178
  }
179
+
180
+ .s72-subscribe-trial-label {
181
+ display: none;
182
+ }
192
183
  }
193
184
 
194
185
  .wishlist-page,
@@ -83,3 +83,17 @@ s72-plan-label {
83
83
  display: inline !important;
84
84
  }
85
85
  }
86
+
87
+ .s72-subscribe-trial-label {
88
+ display: none;
89
+ flex-grow: 1;
90
+ font-size: 12px;
91
+ text-align: center;
92
+ white-space: nowrap;
93
+ width: 1px;
94
+
95
+ @include media-breakpoint-up(md) {
96
+ display: block;
97
+ margin: 4px 0 0 18px;
98
+ }
99
+ }
@@ -30,6 +30,10 @@
30
30
  @extend .btn-primary-override;
31
31
  }
32
32
 
33
+ .s72-btn-subscribe {
34
+ @extend .btn-primary-override;
35
+ }
36
+
33
37
  .s72-btn-close {
34
38
  @extend .close;
35
39
  }
@@ -31,10 +31,8 @@
31
31
 
32
32
  --carousel-height: 560px;
33
33
  --carousel-height-sm: 560px;
34
- --carousel-height-md: 620px;
35
- --carousel-caption-top: 125px;
36
- --carousel-caption-top-xs: 150px;
37
- --carousel-caption-top-md: 175px;
34
+ --carousel-height-lg: 620px;
35
+ --carousel-bottom-gradient-height: 220px; // Increase this to 800px for light theme.
38
36
 
39
37
  --page-padding-top: 120px;
40
38
  --page-padding-top-md: 120px;
@@ -7,6 +7,7 @@
7
7
 
8
8
  @import '_icons';
9
9
  @import '_buttons';
10
+ @import '_cta-buttons';
10
11
  @import '_pages';
11
12
  @import '_forms';
12
13
  @import '_card';
@@ -17,6 +18,7 @@
17
18
  @import '_swiper';
18
19
 
19
20
  @import '_meta-item';
21
+ @import '_meta-sub-item';
20
22
  @import '_meta-item-tagline';
21
23
  @import '_availability-tags';
22
24
 
@@ -25,7 +27,6 @@
25
27
  @import '_carousel';
26
28
  @import '_poster';
27
29
 
28
- @import '_homepage';
29
30
  @import '_meta-detail';
30
31
  @import '_footer';
31
32
 
@@ -4,9 +4,8 @@
4
4
  {{import "./title.jet"}}
5
5
  {{import "./tagline.jet"}}
6
6
  {{import "./synopsis.jet"}}
7
- {{import "./buttons.jet"}}
8
- {{import "./extras.jet"}}
9
7
  {{import "./list.jet"}}
8
+ {{import "../common/cta_buttons.jet"}}
10
9
 
11
10
  {{block head()}}
12
11
  {{yield seo() bundle}}
@@ -28,10 +27,9 @@
28
27
 
29
28
  {{yield bundleTagline(class="meta-detail-tagline") bundle}}
30
29
 
31
- {{yield bundleButtons(class="meta-detail-buttons", slug=bundle.Slug, title=bundle.Title, promoURL=bundle.PromoURL)}}
30
+ {{yield ctaButtons(itemType="bundle") bundle}}
32
31
 
33
32
  {{yield bundleSynopsis(class="meta-detail-synopsis", synopsis=bundle.Description)}}
34
-
35
33
  </div>
36
34
 
37
35
  {{yield bundleList(items=bundle.Items)}}
@@ -0,0 +1,27 @@
1
+ {{import "./item.jet"}}
2
+ {{import "./pagination.jet"}}
3
+
4
+ {{block carousel()}}
5
+ {{maxSlides := configInt("carousel_max_slides", 7)}}
6
+ {{if len(.Items) < maxSlides}}
7
+ {{maxSlides = len(.Items)}}
8
+ {{end}}
9
+ {{items := .Items[0:maxSlides]}}
10
+
11
+ {{if len(items) > 0}}
12
+ <s72-carousel>
13
+ <section class="page-collection page-collection-carousel" aria-label="{{i18n("wcag_aria_label_carousel")}}">
14
+ <h2 class="sr-only">{{i18n("wcag_carousel_h2")}}</h2>
15
+
16
+ <div class="s72-carousel-slides">
17
+ {{range index, item := items}}
18
+ {{yield carouselItem(item=item)}}
19
+ {{end}}
20
+ </div>
21
+
22
+ {{yield carouselPagination(items=items)}}
23
+
24
+ </section>
25
+ </s72-carousel>
26
+ {{end}}
27
+ {{end}}
@@ -0,0 +1,5 @@
1
+ {{block carouselItemImage()}}
2
+ {{if isset(.Images["Carousel"])}}
3
+ <s72-image src="{{.Images.Carousel}}" alt="{{.Title}}" class="carousel-item-image"></s72-image>
4
+ {{end}}
5
+ {{end}}
@@ -0,0 +1,5 @@
1
+ {{block carouselItemSynopsis(synopsis)}}
2
+ <div class="meta-item-synopsis">
3
+ <p>{{synopsis | stripHTML}}</p>
4
+ </div>
5
+ {{end}}
@@ -0,0 +1,7 @@
1
+ {{import "../../../items/tagline.jet"}}
2
+
3
+ {{block carouselItemTagline()}}
4
+ <div class="meta-item-tagline-and-classification">
5
+ {{yield metaItemTagline(genresLimit=1) .}}
6
+ </div>
7
+ {{end}}
@@ -0,0 +1,3 @@
1
+ {{block carouselItemTitle(title)}}
2
+ <h3>{{title}}</h3>
3
+ {{end}}
@@ -0,0 +1,41 @@
1
+ {{import "../../common/awards/carousel.jet"}}
2
+ {{import "./item/title.jet"}}
3
+ {{import "./item/tagline.jet"}}
4
+ {{import "./item/image.jet"}}
5
+ {{import "./item/synopsis.jet"}}
6
+ {{import "../../common/sponsor-image.jet"}}
7
+ {{import "../../common/cta_buttons.jet"}}
8
+
9
+ {{block carouselItem(item)}}
10
+ {{showItemContent := !isset(item["PageType"]) || item.PageType != "external"}}
11
+
12
+ <div class="s72-carousel-item" data-slug="{{item.Slug}}">
13
+ <a href="{{routeToSlug(item.Slug)}}" class="carousel-item-link" aria-label="{{item.Title}}">
14
+
15
+ {{yield carouselItemImage() item}}
16
+
17
+ {{if showItemContent}}
18
+ <div class="carousel-item-caption">
19
+ {{if item.ItemType == "film"}}
20
+ {{yield sponsor(hideLink="true") item.InnerItem}}
21
+ {{end}}
22
+ <div class="meta-item-content">
23
+ {{yield carouselItemTitle(title=item.GetTitle(i18n))}}
24
+
25
+ {{yield carouselItemTagline() item.InnerItem}}
26
+
27
+ {{if isset(item.InnerItem["Tagline"])}}
28
+ {{yield carouselItemSynopsis(synopsis=item.InnerItem.Tagline)}}
29
+ {{end}}
30
+
31
+ {{yield ctaButtons(itemType=item.ItemType, trailerRedirect=true) item.InnerItem}}
32
+
33
+ <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
34
+
35
+ {{yield awardsCarousel() item.InnerItem}}
36
+ </div>
37
+ </div>
38
+ {{end}}
39
+ </a>
40
+ </div>
41
+ {{end}}
@@ -0,0 +1,9 @@
1
+ {{block carouselPagination(items)}}
2
+ <div class="s72-carousel-pagination">
3
+ {{range index, item := items}}
4
+ <button class="s72-carousel-page" data-page-index="{{index}}" data-slug="{{item.Slug}}" aria-label="{{i18n("wcag_aria_label_carousel_pagination")}} {{item.Title}}">
5
+ <div class="s72-carousel-line"></div>
6
+ </button>
7
+ {{end}}
8
+ </div>
9
+ {{end}}
@@ -1,10 +1,10 @@
1
- {{import "./carousel.jet"}}
1
+ {{import "./carousel/carousel.jet"}}
2
2
  {{import "./slider.jet"}}
3
3
  {{import "./list.jet"}}
4
4
 
5
5
  {{block pageCollection(showTitle=true)}}
6
6
  {{if .Layout == "carousel"}}
7
- {{yield pageCollectionCarousel()}}
7
+ {{yield carousel()}}
8
8
  {{else if .Layout == "slider"}}
9
9
  {{yield pageCollectionSlider()}}
10
10
  {{else}}
@@ -0,0 +1,70 @@
1
+ {{import "./social-media-buttons.jet"}}
2
+
3
+ {{block ctaButtons(itemType, trailerRedirect=false)}}
4
+ {{isFilm := itemType == "film"}}
5
+ {{isSeason := itemType == "tvseason"}}
6
+ {{isEpisode := itemType == "tvepisode"}}
7
+ {{isBundle := itemType == "bundle"}}
8
+
9
+ {{slug := .Slug}}
10
+ {{trailerURL := isBundle ? .PromoURL : (isFilm || isSeason) && len(.Trailers) > 0 ? .Trailers[0].URL : ""}}
11
+
12
+ {{showPricingButtons := isFilm || isSeason || isBundle}}
13
+ {{showPlayButton := isFilm || isSeason || isEpisode}}
14
+ {{showCanBeWatchedButton := isFilm}}
15
+ {{showTrailerButton := trailerURL != ""}}
16
+ {{showWishlistButton := isFilm || isSeason || isEpisode}}
17
+ {{showShareButton := isFilm || isSeason || isEpisode || isBundle}}
18
+
19
+ {{showCtaButtons := showPricingButtons || showPlayButton || showCanBeWatchedButton || showTrailerButton || showWishlistButton || showShareButton}}
20
+ {{showExtraButtons := showTrailerButton || showWishlistButton || showShareButton}}
21
+
22
+ {{if showCtaButtons}}
23
+ <div class="cta-buttons">
24
+
25
+ {{if showPricingButtons}}
26
+ <s72-pricing-buttons data-slug="{{slug}}"></s72-pricing-buttons>
27
+ {{end}}
28
+
29
+ {{if showPlayButton}}
30
+ <s72-play-button data-slug="{{slug}}"></s72-play-button>
31
+ {{end}}
32
+
33
+ {{if showCanBeWatchedButton}}
34
+ {{dataURL := .CustomFields.GetString("can_be_watched_button_link", "")}}
35
+ {{dataLabel := .CustomFields.GetString("can_be_watched_button_text", "")}}
36
+ <can-be-watched-button data-slug="{{slug}}" data-url="{{dataURL}}" data-label="{{dataLabel}}"></can-be-watched-button>
37
+ {{end}}
38
+
39
+ {{if showExtraButtons}}
40
+ <div class="extra-buttons">
41
+
42
+ {{if showTrailerButton}}
43
+ {{if trailerRedirect}}
44
+ <div class="s72-btn-trailer" data-url="{{routeToSlug(slug)}}?autoplay">
45
+ <button class="s72-btn s72-btn-play">
46
+ <span class="s72-btn-play-icon"><s72-play-icon></s72-play-icon></span>
47
+ </button>
48
+ </div>
49
+ {{else}}
50
+ {{dataLabel := i18n("play_trailer")}}
51
+ <s72-modal-player src="{{trailerURL}}" class="s72-btn-trailer" data-slug="{{slug}}" data-label="{{dataLabel}}" autoplay="querystring"></s72-modal-player>
52
+ {{end}}
53
+ {{end}}
54
+
55
+ {{if showWishlistButton}}
56
+ <s72-userwishlist-button data-slug="{{slug}}" class="btn-wishlist"></s72-userwishlist-button>
57
+ {{end}}
58
+
59
+ {{if showShareButton}}
60
+ {{letterboxdID := isFilm ? .Refs.LetterboxdID : ""}}
61
+ {{shareURL := site.SiteConfig.SiteURL + routeToSlug(slug)}}
62
+ {{yield socialMediaButtons(url=shareURL, letterboxdID=letterboxdID)}}
63
+ {{end}}
64
+
65
+ </div>
66
+ {{end}}
67
+
68
+ </div>
69
+ {{end}}
70
+ {{end}}
@@ -1,11 +1,11 @@
1
- {{block socialMediaButtons(path="", title="", letterboxdID="")}}
1
+ {{block socialMediaButtons(url="", title="", letterboxdID="")}}
2
2
  {{show_facebook_share := config("show_facebook_share", "true") == "true"}}
3
3
  {{show_twitter_share := config("show_twitter_share", "true") == "true"}}
4
4
  {{show_linkedin_share := config("show_linkedin_share", "true") == "true"}}
5
5
 
6
6
  {{if show_facebook_share || show_twitter_share || show_linkedin_share || letterboxdID}}
7
7
  <div class="social-media-buttons">
8
- <s72-share-modal {{letterboxdID ? "letterboxd=" + letterboxdID : ""}}></s72-share-modal>
8
+ <s72-share-modal {{letterboxdID ? "letterboxd=" + letterboxdID : ""}} url="{{url}}"></s72-share-modal>
9
9
  </div>
10
10
  {{end}}
11
11
  {{end}}
@@ -1,13 +1,13 @@
1
1
  {{extends "../application/application.jet"}}
2
2
  {{import "../common/slider.jet"}}
3
3
  {{import "../items/tagline.jet"}}
4
- {{import "../items/bonus_item.jet"}}
4
+ {{import "../items/sub_item.jet"}}
5
5
  {{import "../collection/page_collection_item.jet"}}
6
6
  {{import "../collection/slider.jet"}}
7
7
  {{import "../common/list.jet"}}
8
- {{import "../common/social-media-buttons.jet"}}
9
8
  {{import "../common/awards/item.jet"}}
10
9
  {{import "../common/sponsor-image.jet"}}
10
+ {{import "../common/cta_buttons.jet"}}
11
11
 
12
12
  {{block head()}}
13
13
  {{yield seo() film}}
@@ -48,18 +48,8 @@
48
48
  <!-- {{film.CustomFields|json}} -->
49
49
  <s72-availability-label data-slug="{{film.Slug}}"></s72-availability-label>
50
50
 
51
- <div class="meta-detail-buttons">
52
- <s72-play-button data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-play-button>
53
- <s72-pricing-buttons data-slug="{{film.Slug}}" data-title="{{film.Title}}"></s72-pricing-buttons>
54
- <can-be-watched-button data-slug="{{film.Slug}}" data-url="{{ film.CustomFields.GetString("can_be_watched_button_link", "") }}" data-label="{{ film.CustomFields.GetString("can_be_watched_button_text", "can_be_watched_button_text") }}"></can-be-watched-button>
55
- <div class="meta-detail-extras">
56
- {{if len(film.Trailers) > 0 }}
57
- <s72-modal-player src="{{film.Trailers[0].URL}}" class="s72-btn-trailer" data-slug="{{film.Slug}}" data-label="{{i18n("play_trailer")}}" autoplay="querystring"></s72-modal-player>
58
- {{end}}
59
- <s72-userwishlist-button data-slug="{{film.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
60
- {{yield socialMediaButtons(path=currentUrlPath, letterboxdID=film.Refs.LetterboxdID)}}
61
- </div>
62
- </div>
51
+ {{yield ctaButtons(itemType="film") film}}
52
+
63
53
  {{if config("default_image_type") != "portrait"}}
64
54
  <s72-availability-status data-slug="{{film.Slug}}"></s72-availability-status>
65
55
  <br>
@@ -160,8 +150,8 @@
160
150
  <h2>{{i18n("meta_detail_bonus_title")}}</h2>
161
151
  {{yield list(itemsPerRow=4, itemLayout="landscape") content}}
162
152
  {{range bonus := film.Bonuses}}
163
- <div class="bonus-item">
164
- {{yield bonusItem(item=bonus)}}
153
+ <div class="sub-item">
154
+ {{yield subItem(item=bonus)}}
165
155
  </div>
166
156
  {{end}}
167
157
  {{end}}
@@ -0,0 +1,22 @@
1
+ {{ block subItem(item) }}
2
+ <div class="poster-container">
3
+ <div class="poster">
4
+ <s72-availability-status slug="{{item.Slug}}"></s72-availability-status>
5
+ <s72-image src="{{item.Images.Landscape}}" alt="{{item.Title}}" class="poster-image poster-image-landscape"></s72-image>
6
+ <s72-play-button data-slug="{{item.Slug}}" title="{{item.Title}}"></s72-play-button>
7
+ <s72-playback-progress slug="{{item.Slug}}"></s72-playback-progress>
8
+ </div>
9
+ </div>
10
+ <h3>{{item.Title}}</h3>
11
+ {{if item.Runtime > 0 }}
12
+ <span class="runtime">
13
+ {{if item.Runtime.Hours() > 0}}
14
+ {{item.Runtime.Hours()}}{{i18n("runtime_hours")}}
15
+ {{end}}
16
+ {{item.Runtime.Minutes()}}{{i18n("runtime_minutes")}}
17
+ </span>
18
+ {{end}}
19
+ {{if item.Overview}}
20
+ <div class="synopsis">{{item.Overview | raw}}</div>
21
+ {{end}}
22
+ {{ end }}
@@ -28,7 +28,7 @@
28
28
  {{end}}
29
29
  {*{ There should be one less dividers than tagline items. }*}
30
30
  {{dividers = dividers - 1}}
31
-
31
+
32
32
  {{if classification}}
33
33
  <s72-classification-label data-slug="{{.Slug}}" data-layout="tooltip"></s72-classification-label>
34
34
  {{end}}
@@ -47,7 +47,7 @@
47
47
 
48
48
  {{if isset(.Items)}}
49
49
  {{yield taglineItem() content}}
50
- {{i18n("bundle_items_all_films", len(.Items))}}
50
+ {{i18n("bundle_items_generic", len(.Items))}}
51
51
  {{end}}
52
52
  {{yield taglineDivider(dividers=dividers)}}
53
53
  {{dividers = dividers - 1}}
@@ -1,7 +1,6 @@
1
1
  {{extends "templates/application/application.jet"}}
2
2
  {{import "templates/collection/page_collection.jet"}}
3
- {{import "templates/items/featured_item.jet"}}
4
- {{import "../collection/carousel.jet"}}
3
+ {{import "../collection/carousel/carousel.jet"}}
5
4
  {{import "templates/collection/wishlist.jet"}}
6
5
 
7
6
  {{block head()}}
@@ -19,7 +18,7 @@
19
18
  <h1 class="sr-only">{{i18n("wcag_homepage_h1")}}</h1>
20
19
 
21
20
  <main id="main" class="page page-{{page.PageType|lower}} carousel-len-{{len(page.PageCollections[0].Items)}}">
22
- {{yield pageCollectionCarousel() page.PageCollections[0]}}
21
+ {{yield carousel() page.PageCollections[0]}}
23
22
 
24
23
  <div class="other-sliders">
25
24
  <h2 class="sr-only">{{i18n("wcag_collections_h2")}}</h2>