@shift72/core-template 0.6.0-alpha.0 → 1.0.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 (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>