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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. package/.github/pull_request_template.md +47 -0
  2. package/.github/workflows/node.js.yml +1 -1
  3. package/.nvmrc +1 -0
  4. package/CHANGELOG.md +65 -10
  5. package/kibble.json +4 -4
  6. package/package.json +1 -2
  7. package/scripts/translate.mjs +30 -22
  8. package/site/ar_LB.all.json +99 -23
  9. package/site/ca_ES.all.json +91 -23
  10. package/site/da_DK.all.json +90 -22
  11. package/site/de_DE.all.json +90 -22
  12. package/site/el_EL.all.json +90 -22
  13. package/site/en_AU.all.json +87 -19
  14. package/site/es_ES.all.json +92 -24
  15. package/site/es_MX.all.json +89 -21
  16. package/site/{ee_EE.all.json → et_ET.all.json} +90 -22
  17. package/site/fi_FI.all.json +93 -25
  18. package/site/fr_FR.all.json +91 -23
  19. package/site/hr_HR.all.json +93 -23
  20. package/site/hu_HU.all.json +91 -23
  21. package/site/it_IT.all.json +91 -23
  22. package/site/ja_JP.all.json +88 -22
  23. package/site/lt_LT.all.json +94 -22
  24. package/site/nl_BE.all.json +90 -22
  25. package/site/no_NO.all.json +91 -23
  26. package/site/pl_PL.all.json +95 -23
  27. package/site/plans.html.jet +17 -17
  28. package/site/pt_BR.all.json +91 -23
  29. package/site/pt_PT.all.json +91 -23
  30. package/site/ru_RU.all.json +103 -31
  31. package/site/sr_SR.all.json +95 -25
  32. package/site/static/fonts/fa-s72.woff +0 -0
  33. package/site/static/js/main.js +2 -1
  34. package/site/static/scripts/main.js.map +1 -1
  35. package/site/styles/_availability-tags.scss +63 -31
  36. package/site/styles/_awards.scss +4 -3
  37. package/site/styles/_buttons.scss +46 -29
  38. package/site/styles/_can-be-watched-button.scss +0 -20
  39. package/site/styles/_carousel.scss +126 -311
  40. package/site/styles/_collections.scss +6 -11
  41. package/site/styles/_cta-buttons.scss +262 -0
  42. package/site/styles/_forms.scss +6 -2
  43. package/site/styles/_icons.scss +182 -9
  44. package/site/styles/_legacy.scss +1 -50
  45. package/site/styles/_meta-detail.scss +80 -229
  46. package/site/styles/_meta-item-tagline.scss +33 -0
  47. package/site/styles/_meta-item.scss +0 -4
  48. package/site/styles/_meta-sub-item.scss +116 -0
  49. package/site/styles/_mixins.scss +45 -0
  50. package/site/styles/_nav.scss +6 -5
  51. package/site/styles/_pages.scss +4 -13
  52. package/site/styles/_plans.scss +24 -17
  53. package/site/styles/_poster.scss +3 -9
  54. package/site/styles/_share-modal.scss +86 -0
  55. package/site/styles/_shift72.scss +11 -0
  56. package/site/styles/_shopping.scss +0 -1
  57. package/site/styles/_skip-link.scss +1 -1
  58. package/site/styles/_tooltips.scss +7 -0
  59. package/site/styles/_variables.scss +11 -12
  60. package/site/styles/_wishlist.scss +2 -2
  61. package/site/styles/main.scss +5 -3
  62. package/site/subscriptions.html.jet +11 -0
  63. package/site/templates/application/application.jet +2 -2
  64. package/site/templates/application/google.jet +8 -13
  65. package/site/templates/application/nav/user_logged_in.jet +7 -2
  66. package/site/templates/bundle/item.jet +2 -4
  67. package/site/templates/collection/carousel/carousel.jet +27 -0
  68. package/site/templates/collection/carousel/item/image.jet +5 -0
  69. package/site/templates/collection/carousel/item/synopsis.jet +5 -0
  70. package/site/templates/collection/carousel/item/tagline.jet +7 -0
  71. package/site/templates/collection/carousel/item/title.jet +3 -0
  72. package/site/templates/collection/carousel/item.jet +41 -0
  73. package/site/templates/collection/carousel/pagination.jet +9 -0
  74. package/site/templates/collection/page_collection.jet +2 -2
  75. package/site/templates/common/cta_buttons.jet +70 -0
  76. package/site/templates/common/social-media-buttons.jet +2 -38
  77. package/site/templates/common/sponsor-image.jet +18 -0
  78. package/site/templates/film/item.jet +98 -102
  79. package/site/templates/items/sub_item.jet +22 -0
  80. package/site/templates/items/tagline.jet +2 -2
  81. package/site/templates/page/homepage.jet +2 -3
  82. package/site/templates/tv/detail.jet +39 -38
  83. package/site/tr_TR.all.json +90 -22
  84. package/site/uk_UA.all.json +95 -23
  85. package/site/zh_TW.all.json +88 -22
  86. package/site/static/fonts/FontAwesome.otf +0 -0
  87. package/site/static/fonts/fontawesome-webfont.eot +0 -0
  88. package/site/static/fonts/fontawesome-webfont.svg +0 -565
  89. package/site/static/fonts/fontawesome-webfont.ttf +0 -0
  90. package/site/static/fonts/fontawesome-webfont.woff +0 -0
  91. package/site/static/fonts/fontawesome-webfont.woff2 +0 -0
  92. package/site/styles/_homepage.scss +0 -3
  93. package/site/styles/_social-media-buttons.scss +0 -159
  94. package/site/templates/bundle/buttons.jet +0 -6
  95. package/site/templates/bundle/extras.jet +0 -13
  96. package/site/templates/collection/carousel.jet +0 -27
  97. package/site/templates/collection/carousel_item.jet +0 -66
  98. package/site/templates/items/bonus_item.jet +0 -23
  99. package/site/templates/items/featured_item.jet +0 -61
  100. package/site/templates/tv/episode.jet +0 -21
@@ -1,3 +0,0 @@
1
- .other-sliders {
2
- padding-top: 20px;
3
- }
@@ -1,159 +0,0 @@
1
- .social-media-buttons {
2
- @extend .d-flex;
3
- flex-direction: row;
4
- padding-bottom: 3px;
5
- padding-top: 2px;
6
- }
7
-
8
- .social-media-buttons-title {
9
- align-self: center;
10
- display: flex;
11
- padding-right: 10px;
12
-
13
- h2,
14
- h5 {
15
- align-self: center;
16
- color: var(--body-color);
17
- font-family: $font-family-base;
18
- font-size: 12px;
19
- font-weight: $font-weight-bold;
20
- margin: 0;
21
- }
22
- }
23
-
24
- .btn-social {
25
- background: #fff;
26
- border: 2px solid #fff;
27
- border-radius: 50%;
28
- //all arbituary values
29
- color: #000;
30
- height: 32px;
31
- line-height: 1;
32
- padding: 0;
33
- position: relative;
34
- width: 32px;
35
-
36
- .fa {
37
- color: #fff;
38
- font-size: 14px;
39
- left: 50%;
40
- position: absolute;
41
- top: 50%;
42
- transform: translateX(-50%) translateY(-50%);
43
- }
44
-
45
- &.btn-social-facebook {
46
- background: $facebook-color;
47
- border-color: $facebook-color;
48
-
49
- .fa {
50
- color: var(--body-bg);
51
- }
52
- }
53
-
54
- &.btn-social-instagram {
55
- background-color: $instagram-color;
56
- border-color: $instagram-color;
57
-
58
- .fa {
59
- color: var(--body-bg);
60
- }
61
- }
62
-
63
- &.btn-social-twitter {
64
- background-color: $twitter-color;
65
- border-color: $twitter-color;
66
-
67
- .fa {
68
- color: var(--body-bg);
69
- }
70
- }
71
-
72
- &.btn-social-linkedin {
73
- background-color: $linkedin-color;
74
- border-color: $linkedin-color;
75
-
76
- .fa {
77
- color: var(--body-bg);
78
- }
79
- }
80
-
81
- &.btn-social-youtube {
82
- background-color: $youtube-color;
83
- border-color: $youtube-color;
84
-
85
- .fa {
86
- color: var(--body-bg);
87
- }
88
- }
89
-
90
- &.btn-social-letterboxd {
91
- background-color: $letterboxd-color;
92
- border-color: $letterboxd-color;
93
-
94
- path {
95
- fill: var(--body-bg);
96
- stroke: var(--body-bg);
97
- stroke-width: 1;
98
- }
99
- }
100
-
101
- &:hover,
102
- &:active,
103
- &:focus {
104
- &.btn-social-facebook {
105
- background-color: var(--primary);
106
- border-color: var(--primary);
107
-
108
- .fa {
109
- color: $facebook-color;
110
- }
111
- }
112
-
113
- &.btn-social-instagram {
114
- background-color: var(--primary);
115
- border-color: var(--primary);
116
-
117
- .fa {
118
- color: $instagram-color;
119
- }
120
- }
121
-
122
- &.btn-social-twitter {
123
- background-color: var(--primary);
124
- border-color: var(--primary);
125
-
126
- .fa {
127
- color: $twitter-color;
128
- }
129
- }
130
-
131
- &.btn-social-linkedin {
132
- background-color: var(--primary);
133
- border-color: var(--primary);
134
-
135
- .fa {
136
- color: $linkedin-color;
137
- }
138
- }
139
-
140
- &.btn-social-youtube {
141
- background-color: var(--primary);
142
- border-color: var(--primary);
143
-
144
- .fa {
145
- color: $youtube-color;
146
- }
147
- }
148
-
149
- &.btn-social-letterboxd {
150
- background-color: var(--primary);
151
- border-color: var(--primary);
152
-
153
- path {
154
- fill: $letterboxd-color;
155
- stroke: $letterboxd-color;
156
- }
157
- }
158
- }
159
- }
@@ -1,6 +0,0 @@
1
- {{block bundleButtons(class, slug, title, promoURL)}}
2
- <div class="{{class}}">
3
- <s72-pricing-buttons data-slug="{{slug}}" data-title="{{title}}"></s72-pricing-buttons>
4
- {{yield bundleExtras(class="meta-detail-extras", slug=slug, promoURL=promoURL)}}
5
- </div>
6
- {{end}}
@@ -1,13 +0,0 @@
1
- {{import "../common/social-media-buttons.jet"}}
2
-
3
- {{block bundleExtras(class, promoURL, slug)}}
4
- <div class="{{class}}">
5
- {{if len(promoURL) > 0}}
6
- <s72-modal-player src="{{promoURL}}" class="s72-btn-trailer" data-slug="{{slug}}" data-label="{{i18n("play_trailer")}}" autoplay="querystring"></s72-modal-player>
7
- {{end}}
8
-
9
- <s72-userwishlist-button data-slug="{{slug}}" class="btn-wishlist"></s72-userwishlist-button>
10
-
11
- {{yield socialMediaButtons(path=currentUrlPath)}}
12
- </div>
13
- {{end}}
@@ -1,27 +0,0 @@
1
- {{import "./carousel_item.jet"}}
2
-
3
- {{block pageCollectionCarousel()}}
4
-
5
- {{if len(.Items) > 0}}
6
- <s72-carousel>
7
- <section class="page-collection page-collection-carousel" aria-label="{{i18n("wcag_aria_label_carousel")}}">
8
- <h2 class="sr-only">{{i18n("wcag_carousel_h2")}}</h2>
9
- <div class="s72-carousel-slides">
10
- {{range item := .Items}}
11
- {{yield carouselItem(item=item)}}
12
- {{end}}
13
- </div>
14
-
15
- <div class="s72-carousel-pagination">
16
- {{range index, item := .Items}}
17
- <div class="s72-carousel-page" data-page-index="{{index}}" data-slug="{{item.Slug}}"><span class="fa fa-circle"></span></div>
18
- {{end}}
19
- </div>
20
-
21
- <!-- Controls -->
22
- <a class="left s72-carousel-control"><span class="fa fa-angle-left"></span></a>
23
- <a class="right s72-carousel-control"><span class="fa fa-angle-right"></span></a>
24
- </section>
25
- </s72-carousel>
26
- {{end}}
27
- {{end}}
@@ -1,66 +0,0 @@
1
- {{import "../items/tagline.jet"}}
2
- {{import "../common/awards/carousel.jet"}}
3
-
4
- {{block carouselItem(item)}}
5
- {{ trailer := "" }}
6
-
7
- {{ if isset(item.InnerItem["Trailers"]) && len(item.InnerItem.Trailers) > 0}}
8
- {{ trailer = item.InnerItem.Trailers[0].URL }}
9
- {{ else if(item.InnerItem["PromoURL"] && len(item.InnerItem.PromoURL) > 0) }}
10
- {{ trailer = item.InnerItem.PromoURL }}
11
- {{ end }}
12
-
13
- <div class="s72-carousel-item" data-slug="{{item.Slug}}">
14
- <a href="{{routeToSlug(item.Slug)}}" class="carousel-item-link" aria-label="{{item.Title}}">
15
-
16
- {{if isset(item.Images["Carousel"])}}
17
- <s72-image src="{{item.Images.Carousel}}" alt="{{item.Title}}" class="carousel-item-image"></s72-image>
18
- {{end}}
19
-
20
- {{if !isset(item["PageType"]) || item.PageType != "external"}}
21
- <div class="carousel-item-caption">
22
- <div class="meta-item-content">
23
- <h3>{{item.GetTitle(i18n)}}
24
- {{if isset(item.InnerItem["ReleaseDate"]) && item.InnerItem.ReleaseDate.Year() > 1}}
25
- <small>({{item.InnerItem.ReleaseDate.Year()}})</small>
26
- {{end}}
27
- </h3>
28
- <div class="meta-item-tagline-and-classification">
29
- {{yield metaItemTagline() item.InnerItem}}
30
- </div>
31
-
32
- <div class="meta-item-buttons">
33
- <s72-play-button data-slug="{{item.Slug}}"></s72-play-button>
34
- <s72-pricing-buttons data-slug="{{item.Slug}}"></s72-pricing-buttons>
35
- {{ if item.ItemType == "film" }}
36
- <can-be-watched-button data-slug="{{item.InnerItem.Slug}}" data-url="{{ item.InnerItem.CustomFields.GetString("can_be_watched_button_link", "") }}" data-label="{{ item.InnerItem.CustomFields.GetString("can_be_watched_button_text", "can_be_watched_button_text") }}"></can-be-watched-button>
37
- {{ end }}
38
- <div class="meta-item-extras">
39
- {{if len(trailer) > 0 }}
40
- <div class="s72-btn-trailer btn-trailer" data-url="{{routeToSlug(item.Slug)}}?autoplay">
41
- <button class="s72-btn s72-btn-play btn-sm s72-btn-trailer">
42
- <span class="s72-btn-play-icon"><s72-play-icon></s72-play-icon></span>
43
- <span class="verb s72-btn-play-label">{{i18n("play_trailer")}}</span>
44
- </button>
45
- </div>
46
- {{end}}
47
- <s72-userwishlist-button data-slug="{{item.Slug}}" class="btn-wishlist"></s72-userwishlist-button>
48
- <s72-share-buttons item="::item.meta" class="hidden-sm hidden-xs pull-right"></s72-share-buttons>
49
- </div>
50
- </div>
51
-
52
- <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
53
-
54
- <div class="meta-item-synopsis">
55
- <p>{{item.InnerItem.Tagline | stripHTML}}</p>
56
- </div>
57
- {{yield awardsCarousel() item.InnerItem}}
58
- </div>
59
- </div>
60
- {{end}}
61
- <div class="left-gradient"></div>
62
- <div class="right-gradient"></div>
63
- <div class="bottom-gradient"></div>
64
- </a>
65
- </div>
66
- {{end}}
@@ -1,23 +0,0 @@
1
- {{ block bonusItem(item) }}
2
- <div class="bonus">
3
- <div class="poster">
4
- <s72-availability-status slug="{{item.Slug}}"></s72-availability-status>
5
- <s72-image src="{{item.Images.Landscape}}" alt="" class="poster-image poster-image-landscape"></s72-image>
6
- <s72-play-button data-slug="{{item.Slug}}" title="{{item.Title}}"></s72-play-button>
7
- </div>
8
- <div class="caption">
9
- <div class="bonus-item-title">
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
- </div>
20
- <div class="synopsis">{{item.Overview | raw}}</div>
21
- </div>
22
- </div>
23
- {{ end }}
@@ -1,61 +0,0 @@
1
- {{import "../items/tagline.jet"}}
2
-
3
- {{block featuredItem(item, image="Landscape")}}
4
- <div class="meta-item featured-meta-item meta-item-{{item.ItemType|lower}}">
5
- <a href="{{routeToSlug(item.Slug)}}" aria-label="{{item.Title}}">
6
- {{if isset(item.Images[image])}}
7
- <s72-image src="{{item.Images[image]}}" alt="{{item.Title}}" class="meta-item-img featured-meta-item-img"></s72-image>
8
- {{end}}
9
-
10
- <!-- <s72-availability-status data-slug="{{item.Slug}}"></s72-availability-status> -->
11
- <s72-availability-label data-slug="{{item.Slug}}"></s72-availability-label>
12
-
13
- {{if !isset(item["PageType"]) || item.PageType != "external"}}
14
-
15
- <s72-userwishlist-button data-slug="{{item.Slug}}" class="btn-wishlist" data-layout="quick-button"></s72-userwishlist-button>
16
-
17
- <div class="meta-item-body featured-meta-item-body">
18
- <div class="meta-item-title">{{item.Title}}</div>
19
-
20
- <div class="meta-item-text">
21
- {{yield metaItemTagline() item.InnerItem}}
22
- </div>
23
-
24
- {{if isset(item.InnerItem["Tagline"])}}
25
- <div class="meta-item-synopsis hidden-md">
26
- <p>{{item.InnerItem.Tagline | stripHTML}}</p>
27
- </div>
28
- {{end}}
29
-
30
- <div class="meta-item-buttons">
31
- <s72-play-button data-slug="{{item.Slug}}"></s72-play-button>
32
- <s72-pricing-buttons data-slug="{{item.Slug}}"></s72-pricing-buttons>
33
- {{if isset(item.InnerItem["Trailers"]) && len(item.InnerItem.Trailers) > 0}}
34
- <s72-modal-player src="{{item.InnerItem.Trailers[0].URL}}" class="btn-sm" data-slug="{{item.Slug}}" data-label="{{i18n("play_trailer")}}"></s72-modal-player>
35
- {{end}}
36
- </div>
37
-
38
-
39
- <!--div class="content">
40
- <h3>{{item.Title}} {{if isset(item["season"])}}<span class="small">{{item.season}}</span>{{end}}</h3>
41
-
42
- {*<p class="tagline">{{item.ReleaseDate}}</p>*}
43
-
44
- {*<p class="synopsis visible-sm">{{item.Tagline}}</p>*}
45
-
46
- <div class="buttons">
47
- <watch-button data-slug="item.Slug"></watch-button>
48
- <pricing-buttons data-slug="item.Slug"></pricing-buttons>
49
- </div>
50
-
51
- {*<p class="synopsis visible-md visible-lg">{{item.Tagline}}</p>*}
52
-
53
- <share-buttons item="::item.meta" class="hidden-sm hidden-xs pull-right"></share-buttons>
54
- <trailer-button item="::item.meta" button-class="btn-sm" class="hidden-sm hidden-xs"></trailer-button>
55
-
56
- </div -->
57
- </div>
58
- {{end}}
59
- </a>
60
- </div>
61
- {{end}}
@@ -1,21 +0,0 @@
1
- {{block episodeCollectionItem(item)}}
2
- <div class="episode">
3
- <div class="poster">
4
- <s72-availability-status data-slug="{{item.Slug}}"></s72-availability-status>
5
- <s72-image src="{{item.Images.Landscape}}" alt="{{item.Title}}" class="poster-image poster-image-landscape" border="0"></s72-image>
6
- <s72-play-button data-slug="{{item.Slug}}" data-title="{{item.Title}}" data-label="false"></s72-play-button>
7
- </div>
8
- <div class="caption">
9
- {{if item.Runtime > 0 }}
10
- <span class="runtime pull-right">
11
- {{if item.Runtime.Hours() > 0}}
12
- {{item.Runtime.Hours()}}{{i18n("runtime_hours")}}
13
- {{end}}
14
- {{item.Runtime.Minutes()}}{{i18n("runtime_minutes")}}
15
- </span>
16
- {{end}}
17
- <h3>{{item.Title}}</h3>
18
- <div class="synopsis">{{item.Overview | raw}}</div>
19
- </div>
20
- </div>
21
- {{end}}