@penskemediacorp/larva-patterns 1.5.6-alpha.0 → 1.6.1

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 (343) hide show
  1. package/LICENSE +21 -0
  2. package/__tests__/css/css.html +9 -0
  3. package/__tests__/css/css.prototype.js +1 -0
  4. package/__tests__/hub/hub.html +25 -0
  5. package/__tests__/hub/hub.prototype.js +30 -0
  6. package/__tests__/profile/profile.html +29 -0
  7. package/__tests__/profile/profile.prototype.js +17 -0
  8. package/__tests__/profile-index/profile-index.html +9 -0
  9. package/__tests__/profile-index/profile-index.prototype.js +6 -0
  10. package/__tests__/vlanding/vlanding.html +7 -0
  11. package/__tests__/vlanding/vlanding.prototype.js +11 -0
  12. package/_templates/pattern-nav.html +52 -10
  13. package/algorithms/a-carousel-grid/README.md +5 -0
  14. package/algorithms/a-carousel-grid/a-carousel-grid.html +25 -0
  15. package/algorithms/a-carousel-grid/a-carousel-grid.overlay.js +12 -0
  16. package/algorithms/a-carousel-grid/a-carousel-grid.prototype.js +0 -0
  17. package/algorithms/a-icon/a-icon.html +1 -0
  18. package/algorithms/a-icon/a-icon.prototype.js +0 -0
  19. package/base.html +62 -19
  20. package/components/c-button/README.md +3 -0
  21. package/components/c-button/c-button.black.js +7 -0
  22. package/components/c-button/c-button.brand-basic.js +8 -0
  23. package/components/c-button/c-button.ghost.js +10 -0
  24. package/components/c-button/c-button.prototype.js +10 -4
  25. package/components/c-button/c-button.stripped.js +8 -0
  26. package/components/c-button/c-button.twig +13 -7
  27. package/components/c-checkbox-input/c-checkbox-input.prototype.js +6 -0
  28. package/components/c-checkbox-input/c-checkbox-input.twig +4 -0
  29. package/components/c-dek/README.md +3 -0
  30. package/components/c-dek/c-dek.prototype.js +5 -0
  31. package/components/c-dek/c-dek.twig +9 -0
  32. package/components/c-email-field/README.md +0 -0
  33. package/components/c-email-field/c-email-field.ghost.js +10 -0
  34. package/components/c-email-field/c-email-field.prototype.js +8 -0
  35. package/components/c-email-field/c-email-field.twig +4 -0
  36. package/components/c-figcaption/c-figcaption.prototype.js +9 -0
  37. package/components/c-figcaption/c-figcaption.twig +16 -0
  38. package/components/c-heading/README.md +4 -0
  39. package/components/c-heading/c-heading.prototype.js +8 -3
  40. package/components/c-heading/c-heading.twig +11 -2
  41. package/components/c-hidden-field/c-hidden-field.prototype.js +5 -0
  42. package/components/c-hidden-field/c-hidden-field.twig +1 -0
  43. package/components/c-icon/c-icon.full.js +6 -5
  44. package/components/c-icon/c-icon.prototype.js +10 -3
  45. package/components/c-icon/c-icon.twig +22 -2
  46. package/components/c-input/c-input.prototype.js +8 -0
  47. package/components/c-input/c-input.twig +14 -0
  48. package/components/c-label/README.md +12 -0
  49. package/components/c-label/c-label.prototype.js +7 -0
  50. package/components/c-label/c-label.twig +19 -0
  51. package/components/c-lazy-image/README.md +35 -0
  52. package/components/c-lazy-image/c-lazy-image.prototype.js +17 -0
  53. package/components/c-lazy-image/c-lazy-image.twig +31 -0
  54. package/components/c-link/README.md +1 -0
  55. package/components/c-link/c-link.prototype.js +8 -5
  56. package/components/c-link/c-link.twig +11 -1
  57. package/components/c-logo/c-logo.prototype.js +7 -0
  58. package/components/c-logo/c-logo.twig +10 -0
  59. package/components/c-nav-link/c-nav-link.prototype.js +7 -0
  60. package/components/c-nav-link/c-nav-link.twig +10 -0
  61. package/components/c-play-badge/c-play-badge.prototype.js +3 -0
  62. package/components/c-play-badge/c-play-badge.twig +7 -0
  63. package/components/c-select-option/c-select-option.prototype.js +5 -0
  64. package/components/c-select-option/c-select-option.twig +5 -0
  65. package/components/c-span/c-span.prototype.js +6 -7
  66. package/components/c-span/c-span.tag.js +7 -0
  67. package/components/c-svg/c-svg.prototype.js +4 -0
  68. package/components/c-svg/c-svg.twig +3 -0
  69. package/components/c-tagline/README.md +3 -0
  70. package/components/c-tagline/c-tagline.prototype.js +4 -0
  71. package/components/c-tagline/c-tagline.twig +3 -3
  72. package/components/c-timestamp/c-timestamp.prototype.js +5 -4
  73. package/components/c-timestamp/c-timestamp.twig +9 -1
  74. package/components/c-title/README.md +7 -0
  75. package/components/c-title/c-title.prototype.js +7 -3
  76. package/components/c-title/c-title.twig +14 -2
  77. package/css.html +44 -0
  78. package/index.html +7 -25
  79. package/index.js +4 -0
  80. package/modules/age-gate/README.md +3 -0
  81. package/modules/age-gate/age-gate.prototype.js +68 -0
  82. package/modules/age-gate/age-gate.twig +37 -0
  83. package/modules/article-callout/article-callout.prototype.js +5 -0
  84. package/modules/article-callout/article-callout.twig +3 -0
  85. package/modules/article-excerpt/article-excerpt.prototype.js +4 -0
  86. package/modules/article-excerpt/article-excerpt.twig +1 -0
  87. package/modules/article-kicker/article-kicker.prototype.js +6 -0
  88. package/modules/article-kicker/article-kicker.twig +13 -0
  89. package/modules/article-tags/article-tags.prototype.js +9 -10
  90. package/modules/article-tags/article-tags.twig +1 -1
  91. package/modules/article-timestamp/article-timestamp.prototype.js +13 -0
  92. package/modules/article-timestamp/article-timestamp.twig +5 -0
  93. package/modules/article-title/article-title.prototype.js +4 -0
  94. package/modules/article-title/article-title.twig +1 -0
  95. package/modules/author/author.prototype.js +43 -0
  96. package/modules/author/author.twig +38 -0
  97. package/modules/author-details/author-details.prototype.js +70 -0
  98. package/modules/author-details/author-details.twig +25 -0
  99. package/modules/back-to-list/back-to-list.prototype.js +11 -0
  100. package/modules/back-to-list/back-to-list.twig +5 -0
  101. package/modules/badge/badge.prototype.js +10 -6
  102. package/modules/badge/badge.twig +1 -1
  103. package/modules/banner/banner.prototype.js +10 -0
  104. package/modules/banner/banner.twig +10 -0
  105. package/modules/brands-most-popular/brands-most-popular.prototype.js +40 -0
  106. package/modules/brands-most-popular/brands-most-popular.twig +11 -0
  107. package/modules/breadcrumbs/breadcrumbs.prototype.js +4 -5
  108. package/modules/breadcrumbs/breadcrumbs.twig +1 -1
  109. package/modules/breaking-news/breaking-news.prototype.js +29 -0
  110. package/modules/breaking-news/breaking-news.twig +18 -0
  111. package/modules/button/button.prototype.js +9 -0
  112. package/modules/button/button.twig +7 -0
  113. package/modules/buy-now/buy-now.prototype.js +36 -0
  114. package/modules/buy-now/buy-now.twig +23 -0
  115. package/modules/carousel-grid/README.md +7 -0
  116. package/modules/carousel-grid/carousel-grid.overlay.js +26 -0
  117. package/modules/carousel-grid/carousel-grid.prototype.js +50 -0
  118. package/modules/carousel-grid/carousel-grid.twig +17 -0
  119. package/modules/carousel-slider/carousel-slider.prototype.js +56 -0
  120. package/modules/carousel-slider/carousel-slider.twig +11 -0
  121. package/modules/container/README.md +3 -0
  122. package/modules/container/container.prototype.js +7 -0
  123. package/modules/container/container.twig +1 -0
  124. package/modules/content-showcase/content-showcase.prototype.js +29 -0
  125. package/modules/content-showcase/content-showcase.the-moth.js +31 -0
  126. package/modules/content-showcase/content-showcase.twig +7 -0
  127. package/modules/expandable-search/expandable-search.prototype.js +19 -0
  128. package/modules/expandable-search/expandable-search.twig +9 -0
  129. package/modules/featured-stories/featured-stories.prototype.js +27 -0
  130. package/modules/featured-stories/featured-stories.twig +18 -0
  131. package/modules/footer/README.md +15 -0
  132. package/modules/footer/footer.prototype.js +14 -0
  133. package/modules/footer/footer.twig +22 -0
  134. package/modules/footer-button-list/footer-button-list.prototype.js +43 -0
  135. package/modules/footer-button-list/footer-button-list.twig +13 -0
  136. package/modules/footer-magazine-image/footer-magazine-image.prototype.js +15 -0
  137. package/modules/footer-magazine-image/footer-magazine-image.twig +3 -0
  138. package/modules/footer-menus/README.md +3 -0
  139. package/modules/footer-menus/footer-menus.prototype.js +9 -9
  140. package/modules/footer-menus/footer-menus.twig +4 -4
  141. package/modules/footer-newsletter/README.md +5 -0
  142. package/modules/footer-newsletter/footer-newsletter.prototype.js +21 -0
  143. package/modules/footer-newsletter/footer-newsletter.twig +5 -0
  144. package/modules/footer-social/README.md +3 -0
  145. package/modules/footer-social/footer-social.prototype.js +36 -0
  146. package/modules/footer-social/footer-social.twig +5 -0
  147. package/modules/footer-tip/footer-tip.prototype.js +23 -0
  148. package/modules/footer-tip/footer-tip.twig +5 -0
  149. package/modules/header/header.article.js +39 -0
  150. package/modules/header/header.prototype.js +90 -0
  151. package/modules/header/header.twig +74 -0
  152. package/modules/header-menu/header-menu.prototype.js +26 -0
  153. package/modules/header-menu/header-menu.twig +3 -0
  154. package/modules/header-sticky/header-sticky.article.js +43 -0
  155. package/modules/header-sticky/header-sticky.prototype.js +39 -0
  156. package/modules/header-sticky/header-sticky.twig +30 -0
  157. package/modules/heading/heading.h1.js +8 -0
  158. package/modules/heading/heading.h2.js +8 -0
  159. package/modules/heading/heading.h3.js +8 -0
  160. package/modules/heading/heading.h4.js +7 -0
  161. package/modules/heading/heading.h5.js +7 -0
  162. package/modules/heading/heading.h6.js +7 -0
  163. package/modules/heading/heading.prototype.js +9 -0
  164. package/modules/heading/heading.twig +3 -0
  165. package/modules/hero-image-story/hero-image-story.prototype.js +41 -0
  166. package/modules/hero-image-story/hero-image-story.twig +8 -0
  167. package/modules/injected-related-content/injected-related-content.prototype.js +61 -0
  168. package/modules/injected-related-content/injected-related-content.twig +23 -0
  169. package/modules/list/list.ordered.js +7 -0
  170. package/modules/list/list.prototype.js +57 -0
  171. package/modules/list/list.twig +11 -0
  172. package/modules/listicle-item/listicle-item.prototype.js +11 -0
  173. package/modules/listicle-item/listicle-item.twig +3 -0
  174. package/modules/mega-menu/mega-menu.prototype.js +16 -0
  175. package/modules/mega-menu/mega-menu.twig +10 -0
  176. package/modules/mega-menu-content/mega-menu-content.prototype.js +10 -0
  177. package/modules/mega-menu-content/mega-menu-content.twig +5 -0
  178. package/modules/mega-menu-footer/mega-menu-footer.prototype.js +41 -0
  179. package/modules/mega-menu-footer/mega-menu-footer.twig +19 -0
  180. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.prototype.js +20 -0
  181. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.twig +4 -0
  182. package/modules/mega-menu-item/mega-menu-item.prototype.js +23 -0
  183. package/modules/mega-menu-item/mega-menu-item.twig +13 -0
  184. package/modules/more-stories-button/more-stories-button.profile.js +12 -0
  185. package/modules/more-stories-button/more-stories-button.prototype.js +29 -0
  186. package/modules/more-stories-button/more-stories-button.twig +13 -0
  187. package/modules/newsletter/newsletter.prototype.js +46 -0
  188. package/modules/newsletter/newsletter.twig +21 -0
  189. package/modules/newsletter-cta/newsletter-cta.prototype.js +21 -0
  190. package/modules/newsletter-cta/newsletter-cta.twig +22 -0
  191. package/modules/newswire/newswire.prototype.js +46 -0
  192. package/modules/newswire/newswire.twig +16 -0
  193. package/modules/page-404/page-404.prototype.js +44 -0
  194. package/modules/page-404/page-404.twig +32 -0
  195. package/modules/paragraph/paragraph.narrow.js +8 -0
  196. package/modules/paragraph/paragraph.prototype.js +8 -0
  197. package/modules/paragraph/paragraph.twig +3 -0
  198. package/modules/pmc-footer/pmc-footer.prototype.js +26 -24
  199. package/modules/pmc-footer/pmc-footer.twig +11 -9
  200. package/modules/post-content-image/post-content-image.prototype.js +14 -0
  201. package/modules/post-content-image/post-content-image.twig +3 -0
  202. package/modules/production-credits/production-credits.prototype.js +5 -0
  203. package/modules/production-credits/production-credits.twig +4 -0
  204. package/modules/profile-blurb/profile-blurb.card.js +28 -0
  205. package/modules/profile-blurb/profile-blurb.prototype.js +45 -0
  206. package/modules/profile-blurb/profile-blurb.twig +37 -0
  207. package/modules/profile-body/profile-body.prototype.js +20 -0
  208. package/modules/profile-body/profile-body.twig +15 -0
  209. package/modules/profile-browse-by/profile-browse-by.prototype.js +29 -0
  210. package/modules/profile-browse-by/profile-browse-by.twig +6 -0
  211. package/modules/profile-card-list/profile-card-list.prototype.js +25 -0
  212. package/modules/profile-card-list/profile-card-list.twig +7 -0
  213. package/modules/profile-filter/profile-filter.prototype.js +26 -0
  214. package/modules/profile-filter/profile-filter.twig +15 -0
  215. package/modules/profile-gallery/profile-gallery.prototype.js +28 -0
  216. package/modules/profile-gallery/profile-gallery.twig +13 -0
  217. package/modules/profile-header/profile-header.prototype.js +29 -0
  218. package/modules/profile-header/profile-header.twig +27 -0
  219. package/modules/profile-highlights/profile-highlights.prototype.js +22 -0
  220. package/modules/profile-highlights/profile-highlights.twig +17 -0
  221. package/modules/profile-landing-header/profile-landing-header.prototype.js +17 -0
  222. package/modules/profile-landing-header/profile-landing-header.twig +12 -0
  223. package/modules/profile-landing-river/profile-landing-river.prototype.js +21 -0
  224. package/modules/profile-landing-river/profile-landing-river.twig +13 -0
  225. package/modules/profile-related-stories/profile-related-stories.prototype.js +33 -0
  226. package/modules/profile-related-stories/profile-related-stories.twig +9 -0
  227. package/modules/pullquote/pullquote.prototype.js +8 -0
  228. package/modules/pullquote/pullquote.twig +3 -0
  229. package/modules/read-next/read-next.prototype.js +20 -0
  230. package/modules/read-next/read-next.twig +4 -0
  231. package/modules/search-form/search-form.prototype.js +8 -0
  232. package/modules/search-form/search-form.twig +11 -0
  233. package/modules/secondary-stories/secondary-stories.prototype.js +119 -0
  234. package/modules/secondary-stories/secondary-stories.twig +22 -0
  235. package/modules/separator/separator.prototype.js +4 -0
  236. package/modules/separator/separator.thick.js +7 -0
  237. package/modules/separator/separator.twig +1 -0
  238. package/modules/separator/separator.wide-thick.js +7 -0
  239. package/modules/separator/separator.wide.js +7 -0
  240. package/modules/social-share/social-share.prototype.js +43 -0
  241. package/modules/social-share/social-share.twig +30 -0
  242. package/modules/special-coverage/special-coverage.prototype.js +47 -0
  243. package/modules/special-coverage/special-coverage.twig +29 -0
  244. package/modules/story/story.borders.js +8 -0
  245. package/modules/story/story.center-vertical-borders.js +7 -0
  246. package/modules/story/story.center-vertical.js +11 -0
  247. package/modules/story/story.prototype.js +43 -0
  248. package/modules/story/story.right-borders.js +9 -0
  249. package/modules/story/story.right.js +14 -0
  250. package/modules/story/story.story-arc.js +9 -0
  251. package/modules/story/story.twig +88 -0
  252. package/modules/story/story.vertical-borders.js +7 -0
  253. package/modules/story/story.vertical.js +11 -0
  254. package/modules/story-arc-stories/story-arc-stories.prototype.js +21 -0
  255. package/modules/story-arc-stories/story-arc-stories.twig +14 -0
  256. package/modules/story-featured-quote/story-featured-quote.prototype.js +28 -0
  257. package/modules/story-featured-quote/story-featured-quote.twig +27 -0
  258. package/modules/story-grid/story-grid.prototype.js +24 -0
  259. package/modules/story-grid/story-grid.river.js +15 -0
  260. package/modules/story-grid/story-grid.twig +17 -0
  261. package/modules/sub-header/sub-header.prototype.js +8 -0
  262. package/modules/sub-header/sub-header.twig +7 -0
  263. package/modules/top-stories/top-stories.prototype.js +41 -0
  264. package/modules/top-stories/top-stories.twig +12 -0
  265. package/modules/top-stories/top-stories.xl.js +14 -0
  266. package/modules/vlanding-playlist/README.md +1 -0
  267. package/modules/vlanding-playlist/vlanding-playlist.prototype.js +34 -0
  268. package/modules/vlanding-playlist/vlanding-playlist.twig +20 -0
  269. package/modules/vlanding-video-card/README.md +1 -0
  270. package/modules/vlanding-video-card/vlanding-video-card.prototype.js +25 -0
  271. package/modules/vlanding-video-card/vlanding-video-card.twig +56 -0
  272. package/modules/vlanding-video-showcase/README.md +12 -0
  273. package/modules/vlanding-video-showcase/vlanding-video-showcase.prototype.js +68 -0
  274. package/modules/vlanding-video-showcase/vlanding-video-showcase.twig +46 -0
  275. package/objects/o-account-menu/o-account-menu.prototype.js +35 -0
  276. package/objects/o-account-menu/o-account-menu.twig +25 -0
  277. package/objects/o-author/o-author.prototype.js +13 -0
  278. package/objects/o-author/o-author.twig +13 -0
  279. package/objects/o-card/README.md +1 -0
  280. package/objects/o-card/o-card.prototype.js +25 -0
  281. package/objects/o-card/o-card.twig +75 -0
  282. package/objects/o-card-list/README.md +3 -0
  283. package/objects/o-card-list/o-card-list.prototype.js +13 -0
  284. package/objects/o-card-list/o-card-list.twig +7 -0
  285. package/objects/o-checkbox-input-list/o-checkbox-input-list.prototype.js +16 -0
  286. package/objects/o-checkbox-input-list/o-checkbox-input-list.twig +15 -0
  287. package/objects/o-collection-item/o-collection-item.floated.js +8 -0
  288. package/objects/o-collection-item/o-collection-item.prototype.js +11 -0
  289. package/objects/o-collection-item/o-collection-item.twig +5 -0
  290. package/objects/o-email-capture-form/README.md +11 -0
  291. package/objects/o-email-capture-form/o-email-capture-form.minimal.js +15 -0
  292. package/objects/o-email-capture-form/o-email-capture-form.prototype.js +17 -0
  293. package/objects/o-email-capture-form/o-email-capture-form.twig +16 -0
  294. package/objects/o-figure/README.md +17 -0
  295. package/objects/o-figure/o-figure.prototype.js +15 -7
  296. package/objects/o-figure/o-figure.twig +22 -45
  297. package/objects/o-header/o-header.prototype.js +12 -10
  298. package/objects/o-header/o-header.twig +5 -1
  299. package/objects/o-header-buttons/o-header-buttons.column.js +10 -0
  300. package/objects/o-header-buttons/o-header-buttons.prototype.js +41 -0
  301. package/objects/o-header-buttons/o-header-buttons.twig +42 -0
  302. package/objects/o-icon-button/README.md +5 -0
  303. package/objects/o-icon-button/o-icon-button.prototype.js +21 -0
  304. package/objects/o-icon-button/o-icon-button.search.js +9 -0
  305. package/objects/o-icon-button/o-icon-button.twig +21 -0
  306. package/objects/o-indicator/README.md +1 -0
  307. package/objects/o-indicator/o-indicator.photos.js +12 -0
  308. package/objects/o-indicator/o-indicator.prototype.js +8 -0
  309. package/objects/o-indicator/o-indicator.twig +9 -0
  310. package/objects/o-input-group/o-input-group.prototype.js +11 -0
  311. package/objects/o-input-group/o-input-group.twig +5 -0
  312. package/objects/o-nav/README.md +2 -2
  313. package/objects/o-nav/o-nav.horizontal.js +6 -6
  314. package/objects/o-nav/o-nav.prototype.js +17 -13
  315. package/objects/o-nav/o-nav.twig +29 -3
  316. package/objects/o-select-nav/o-select-nav.prototype.js +17 -0
  317. package/objects/o-select-nav/o-select-nav.twig +9 -0
  318. package/objects/o-social-list/o-social-list.prototype.js +23 -0
  319. package/objects/o-social-list/o-social-list.twig +15 -0
  320. package/objects/o-span-group/README.md +1 -0
  321. package/objects/o-span-group/o-span-group.prototype.js +11 -0
  322. package/objects/o-span-group/o-span-group.twig +5 -0
  323. package/objects/o-sponsored-by/o-sponsored-by.prototype.js +9 -10
  324. package/objects/o-sponsored-by/o-sponsored-by.twig +2 -2
  325. package/objects/o-story-arc-item/o-story-arc-item.prototype.js +29 -0
  326. package/objects/o-story-arc-item/o-story-arc-item.twig +9 -0
  327. package/objects/o-sub-header/o-sub-header.prototype.js +39 -0
  328. package/objects/o-sub-header/o-sub-header.twig +9 -0
  329. package/objects/o-tease/o-tease.prototype.js +24 -20
  330. package/objects/o-tease/o-tease.twig +7 -3
  331. package/objects/o-tease-list/o-tease-list.prototype.js +12 -24
  332. package/objects/o-tease-list/o-tease-list.twig +5 -1
  333. package/package.json +6 -9
  334. package/pattern.html +61 -9
  335. package/style-guide/colors.html +33 -0
  336. package/style-guide/fonts.html +22 -0
  337. package/style-guide/index.html +14 -0
  338. package/components/c-button/c-button.scss +0 -33
  339. package/components/c-tagline/c-tagline.json +0 -4
  340. package/components/c-tagline/c-tagline.scss +0 -19
  341. package/objects/o-figure/o-figure.scss +0 -46
  342. package/objects/o-tease/o-tease.scss +0 -30
  343. package/scratch-pad.css +0 -3
@@ -0,0 +1,88 @@
1
+ <div class="story lrv-u-padding-tb-1 lrv-u-padding-tb-2@desktop // {{ story_classes }}">
2
+ <div class="{{ story_grid_classes }}">
3
+
4
+ <div class="{{ story_grid_primary_classes }} // lrv-a-glue-parent u-padding-t-1@mobile-max lrv-u-flex lrv-u-flex-direction-column lrv-u-height-100p lrv-u-justify-content-start">
5
+ <div class="lrv-a-glue-parent">
6
+ {% if c_lazy_image %}
7
+ {% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
8
+ {% endif %}
9
+
10
+ {% if o_indicator %}
11
+ {% include "@larva/objects/o-indicator/o-indicator.twig" with o_indicator %}
12
+ {% endif %}
13
+ </div>
14
+ </div>
15
+
16
+ <div class="{{ story_grid_secondary_classes }} // lrv-u-flex lrv-u-flex-direction-column lrv-u-height-100p lrv-u-justify-content-center">
17
+ {% if c_title %}
18
+ {% include "@larva/components/c-title/c-title.twig" with c_title %}
19
+ {% endif %}
20
+
21
+ {% if c_dek %}
22
+ {% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
23
+ {% endif %}
24
+
25
+ <ul class="lrv-u-flex lrv-u-order-n1 lrv-a-unstyle-list lrv-a-space-children-horizontal lrv-a-space-children--050 lrv-u-margin-b-050 u-letter-spacing-012 // {{ story_links_classes }}">
26
+
27
+ {% if c_link_top %}
28
+ <li>
29
+ {% include "@larva/components/c-link/c-link.twig" with c_link_top %}
30
+ </li>
31
+ {% endif %}
32
+
33
+ {% if c_span %}
34
+ <li>
35
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
36
+ </li>
37
+ {% endif %}
38
+
39
+ {% if article_kicker %}
40
+ <li>
41
+ {% include "@larva/modules/article-kicker/article-kicker.twig" with article_kicker %}
42
+ </li>
43
+ {% endif %}
44
+ </ul>
45
+
46
+ <ul class="lrv-a-unstyle-list // {{ story_nav_classes }} {{ story_nav_layout_classes }}">
47
+ {% if c_button %}
48
+ <li class="lrv-u-flex">
49
+ {% include "@larva/components/c-button/c-button.twig" with c_button %}
50
+ </li>
51
+ {% endif %}
52
+
53
+ {% if c_tagline_author %}
54
+ <li class="lrv-u-flex // {{ c_tagline_author_wrapper_classes }}">
55
+ By {% include "@larva/components/c-tagline/c-tagline.twig" with c_tagline_author %}
56
+ </li>
57
+ {% endif %}
58
+
59
+ {% if c_timestamp %}
60
+ <li>
61
+ {% include "@larva/components/c-timestamp/c-timestamp.twig" with c_timestamp %}
62
+ </li>
63
+ {% endif %}
64
+ </ul>
65
+
66
+ {% if c_link_bottom %}
67
+ <div class="lrv-u-flex lrv-u-order-100 lrv-u-margin-t-050 // {{ c_link_bottom_wrapper_classes }}">
68
+ {% if c_link_bottom %}
69
+ {% include "@larva/components/c-link/c-link.twig" with c_link_bottom %}
70
+ {% endif %}
71
+ </div>
72
+ {% endif %}
73
+
74
+ </div>
75
+
76
+ </div>
77
+
78
+ {% if story_arc_stories %}
79
+ <div class="lrv-u-margin-t-1 lrv-u-margin-t-2@desktop">
80
+ {% include "@larva/modules/story-arc-stories/story-arc-stories.twig" with story_arc_stories %}
81
+ </div>
82
+ {% endif %}
83
+
84
+ </div>
85
+
86
+ {% if is_river_story %}
87
+ {{ story_after_wp_action }}
88
+ {% endif %}
@@ -0,0 +1,7 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const story_vertical_borders = clonedeep( require( './story.vertical' ) );
4
+
5
+ story_vertical_borders.story_grid_classes += ' lrv-u-border-a-1';
6
+
7
+ module.exports = story_vertical_borders;
@@ -0,0 +1,11 @@
1
+ const { __experimentalCloneWithFallback } = require( '@penskemediacorp/larva' );
2
+
3
+ const story_vertical = __experimentalCloneWithFallback( 'modules/story/story.prototype' );
4
+
5
+ story_vertical.story_grid_classes = '';
6
+
7
+ story_vertical.story_grid_primary_classes = 'lrv-u-margin-r-00';
8
+
9
+ story_vertical.story_grid_secondary_classes += ' lrv-u-padding-lr-1 lrv-u-padding-lr-2@desktop-xl lrv-u-padding-tb-075 lrv-u-padding-tb-150@desktop-xl';
10
+
11
+ module.exports = story_vertical;
@@ -0,0 +1,21 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_span = clonedeep( require( '../../components/c-span/c-span.prototype' ) );
4
+ const c_button = clonedeep( require( '../../components/c-button/c-button.prototype' ) );
5
+ const o_story_arc_item = clonedeep( require( '../../objects/o-story-arc-item/o-story-arc-item.prototype' ) );
6
+
7
+ c_span.c_span_text = 'Event Coverage:';
8
+ c_span.c_span_classes += ' lrv-u-font-weight-bold';
9
+
10
+ c_button.c_button_text = 'Art Basel Hong Kong';
11
+ c_button.c_button_url = '#';
12
+
13
+ module.exports = {
14
+ c_span: c_span,
15
+ c_button: c_button,
16
+ story_arc_stories: [
17
+ o_story_arc_item,
18
+ o_story_arc_item,
19
+ o_story_arc_item,
20
+ ]
21
+ };
@@ -0,0 +1,14 @@
1
+ <section class="story-arc-stories {{ story_arc_stories_classes }}">
2
+ <div class="lrv-u-font-family-primary lrv-u-margin-b-050">
3
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
4
+ {% include "@larva/components/c-button/c-button.twig" with c_button %}
5
+ </div>
6
+
7
+ <div class="lrv-u-overflow-hidden lrv-u-max-width-100vw lrv-u-padding-b-1">
8
+ <div class="lrv-u-width-100p lrv-u-max-width-100p a-scrollable-grid@desktop-max lrv-a-grid lrv-a-cols3@desktop">
9
+ {% for item in story_arc_stories %}
10
+ {% include "@larva/objects/o-story-arc-item/o-story-arc-item.twig" with item %}
11
+ {% endfor %}
12
+ </div>
13
+ </div>
14
+ </section>
@@ -0,0 +1,28 @@
1
+ const { __experimentalCloneWithFallback } = require( '@penskemediacorp/larva' );
2
+ const clonedeep = require( 'lodash.clonedeep' );
3
+
4
+
5
+ const c_title = __experimentalCloneWithFallback( 'components/c-title/c-title.prototype' );
6
+ const c_tagline = __experimentalCloneWithFallback( 'components/c-tagline/c-tagline.prototype' );
7
+ const c_tagline_author = clonedeep( c_tagline );
8
+
9
+ c_title.c_title_text = '‘A Momentous Weekend’: LACMA’s High-Stakes Collectors Committee Event Raises $2.4 M.';
10
+ c_title.c_title_classes = 'lrv-u-font-size-14 lrv-u-font-family-primary lrv-u-display-block lrv-u-font-weight-normal lrv-u-line-height-small';
11
+ c_title.c_title_link_classes = 'lrv-a-unstyle-link lrv-u-color-brand-primary:hover';
12
+
13
+
14
+ c_tagline_author.c_tagline_classes = 'lrv-u-margin-l-050';
15
+ c_tagline_author.c_tagline_markup = "<a href='#'>Staff Writer</a>";
16
+ c_tagline_author.c_tagline_text = false;
17
+
18
+ module.exports = {
19
+ story_featured_quote_classes: 'lrv-u-text-align-center',
20
+ story_quote_markup: 'Lorem ipsum <i>dolor</i> sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.',
21
+ story_quote_markup_classes: 'lrv-a-font-primary-l',
22
+ story_nav_classes: 'lrv-u-font-size-12 lrv-u-font-family-primary lrv-u-text-transform-uppercase lrv-u-font-weight-bold lrv-u-color-black ',
23
+ story_nav_layout_classes: 'lrv-u-flex lrv-u-align-items-center lrv-a-space-children-horizontal lrv-a-space-children--2 lrv-a-hidden@mobile-max lrv-u-margin-t-050 lrv-u-justify-content-center',
24
+ c_title: c_title,
25
+ c_dek_url:'#',
26
+ c_dek_url_classes:'lrv-u-color-black lrv-a-unstyle-link',
27
+ c_tagline_author,
28
+ };
@@ -0,0 +1,27 @@
1
+ <div class="story lrv-u-padding-tb-1 lrv-u-padding-tb-2@desktop // {{ story_featured_quote_classes }}">
2
+ <div class="{{ story_featured_quote_primary_classes }} // lrv-u-flex lrv-u-flex-direction-column lrv-u-height-100p lrv-u-justify-content-center">
3
+ {% if c_dek_url %}
4
+ <a href="{{ c_dek_url }}" class="c-dek__link ">
5
+ {% endif %}
6
+ {% if story_quote_markup %}
7
+ <p class="story-quote-markup {{ story_quote_markup_classes }}">
8
+ {{ story_quote_markup|raw }}
9
+ </p>
10
+ {% endif %}
11
+ {% if c_dek_url %}
12
+ </a>
13
+ {% endif %}
14
+
15
+ <ul class="lrv-a-unstyle-list // {{ story_nav_classes }} {{ story_nav_layout_classes }}">
16
+ {% if c_title %}
17
+ {% include "@larva/components/c-title/c-title.twig" with c_title %}
18
+ {% endif %}
19
+
20
+ {% if c_tagline_author %}
21
+ <li class="lrv-u-flex // {{ c_tagline_author_wrapper_classes }}">
22
+ By {% include "@larva/components/c-tagline/c-tagline.twig" with c_tagline_author %}
23
+ </li>
24
+ {% endif %}
25
+ </ul>
26
+ </div>
27
+ </div>
@@ -0,0 +1,24 @@
1
+ const { __experimentalCloneWithFallback } = require( '@penskemediacorp/larva' );
2
+
3
+ const story_card = __experimentalCloneWithFallback( 'modules/story/story.vertical' );
4
+
5
+ story_card.c_dek.c_dek_classes = 'lrv-a-font-body-s lrv-a-hidden@mobile-max lrv-u-margin-a-00';
6
+ story_card.c_title.c_title_classes = 'lrv-a-font-primary-xxs lrv-u-display-block lrv-u-margin-b-050';
7
+ story_card.story_grid_secondary_classes = 'lrv-a-span2';
8
+ story_card.story_links_classes += ' lrv-u-margin-t-050';
9
+ story_card.story_nav_classes = 'lrv-a-font-secondary-m';
10
+
11
+ module.exports = {
12
+ story_grid_classes: '',
13
+ story_grid_grid_classes: 'lrv-a-grid lrv-a-cols2 lrv-a-cols4@desktop',
14
+ story_grid_story_cards: [
15
+ story_card,
16
+ story_card,
17
+ story_card,
18
+ story_card,
19
+ story_card,
20
+ story_card,
21
+ story_card,
22
+ story_card,
23
+ ],
24
+ };
@@ -0,0 +1,15 @@
1
+ const { __experimentalCloneWithFallback } = require( '@penskemediacorp/larva' );
2
+ const clonedeep = require( 'lodash.clonedeep' );
3
+
4
+ const story_grid = __experimentalCloneWithFallback( 'modules/story-grid/story-grid.prototype' );
5
+ const story_prototype = __experimentalCloneWithFallback( 'modules/story/story.prototype' );
6
+ const c_span = __experimentalCloneWithFallback( 'components/c-span/c-span.prototype' );
7
+
8
+ story_grid.story_grid_story_cards = story_grid.story_grid_story_cards.map( () => clonedeep( story_prototype ) );
9
+
10
+ story_grid.story_grid_grid_classes = '';
11
+
12
+ c_span.c_span_text = 'Read more';
13
+ story_grid.c_span = c_span;
14
+
15
+ module.exports = story_grid;
@@ -0,0 +1,17 @@
1
+ <div class="story-grid lrv-u-padding-tb-1 lrv-u-padding-tb-2@desktop // {{ story_grid_classes }}">
2
+
3
+ {% if o_header %}
4
+ {% include "@larva/objects/o-header/o-header.twig" with o_header %}
5
+ {% endif %}
6
+
7
+ <ul class="{{ story_grid_grid_classes }} // lrv-a-unstyle-list lrv-u-margin-b-050">
8
+ {% for item in story_grid_story_cards %}
9
+ <li class="{{ story_grid_grid_item_classes }}">
10
+ {% include "@larva/modules/story/story.twig" with item %}
11
+ </li>
12
+ {% endfor %}
13
+ </ul>
14
+ {% if c_span %}
15
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
16
+ {% endif %}
17
+ </div>
@@ -0,0 +1,8 @@
1
+ const { __experimentalCloneWithFallback } = require( '@penskemediacorp/larva' );
2
+
3
+ const o_sub_header = __experimentalCloneWithFallback( 'objects/o-sub-header/o-sub-header.prototype' );
4
+
5
+ module.exports = {
6
+ sub_header_classes: '',
7
+ o_sub_header: o_sub_header,
8
+ };
@@ -0,0 +1,7 @@
1
+ {% if o_sub_header %}
2
+ <div class="sub-header // {{ sub_header_classes }} lrv-u-padding-t-1 lrv-u-padding-t-2@desktop-xl lrv-u-padding-b-1@mobile-max">
3
+ <div class="lrv-a-wrapper">
4
+ {% include "@larva/objects/o-sub-header/o-sub-header.twig" with o_sub_header %}
5
+ </div>
6
+ </div>
7
+ {% endif %}
@@ -0,0 +1,41 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const o_story_featured = clonedeep( require( '@penskemediacorp/larva-patterns/modules/story/story.center-vertical' ) );
4
+ const o_story = clonedeep( require( '@penskemediacorp/larva-patterns/modules/story/story.vertical' ) );
5
+
6
+ o_story_featured.c_timestamp = false;
7
+ o_story_featured.story_grid_secondary_classes = 'lrv-u-flex lrv-u-flex-direction-column lrv-u-height-100p lrv-u-justify-content-center@tablet lrv-u-text-align-center@tablet';
8
+ o_story_featured.c_title.c_title_classes = 'lrv-a-font-primary-l c-title lrv-u-display-block lrv-u-margin-b-050';
9
+ o_story_featured.c_span.c_span_classes = 'lrv-u-display-inline-block lrv-u-padding-a-050 lrv-u-background-color-white lrv-u-text-transform-uppercase lrv-a-font-basic-l lrv-u-display-inline-block';
10
+ o_story_featured.c_span.c_span_link_classes = 'lrv-u-color-white lrv-u-background-color-brand-primary lrv-u-line-height-normal lrv-u-padding-a-025 lrv-u-padding-lr-050 lrv-u-display-inline-block';
11
+ o_story_featured.c_span.c_span_url = '#';
12
+ o_story_featured.c_dek.c_dek_classes = 'lrv-a-font-secondary-xs lrv-u-margin-tb-050 lrv-u-letter-spacing-0006@tablet lrv-u-width-70p lrv-u-width-100p@mobile-max lrv-u-margin-lr-auto';
13
+ o_story_featured.story_nav_classes = 'lrv-a-font-body-m lrv-u-color-black lrv-u-text-transform-uppercase lrv-u-color-black lrv-u-justify-content-center@tablet';
14
+ o_story_featured.c_tagline_author.c_tagline_classes = 'lrv-u-color-black lrv-u-margin-l-050';
15
+ o_story_featured.story_links_classes = 'lrv-u-justify-content-center@tablet lrv-u-transform-translateY-n50p u-z-index-middle-bottom lrv-u-position-relative lrv-u-margin-b-00@mobile-max';
16
+ o_story_featured.story_nav_layout_classes = 'lrv-u-flex lrv-u-align-items-center lrv-a-space-children-horizontal lrv-a-space-children--2 lrv-u-margin-t-050';
17
+
18
+ o_story.story_grid_secondary_classes = '';
19
+ o_story.c_timestamp = false;
20
+ o_story.c_dek = false;
21
+ o_story.story_classes = '';
22
+ o_story.c_span.c_span_classes = 'lrv-a-font-basic-xs lrv-u-border-b-1 lrv-u-text-transform-uppercase lrv-u-padding-b-050';
23
+ o_story.c_lazy_image.c_lazy_image_classes = 'lrv-u-margin-b-125';
24
+ o_story.c_title.c_title_classes = 'lrv-a-font-primary-m lrv-u-margin-b-050 lrv-u-font-size-26@mobile-max lrv-u-margin-t-050';
25
+ o_story.story_nav_classes = 'lrv-a-font-body-xxs lrv-u-color-black lrv-u-text-transform-uppercase lrv-u-color-black ';
26
+ o_story.c_tagline_author.c_tagline_classes = 'lrv-a-font-body-xxs lrv-u-color-black lrv-u-margin-l-050 lrv-u-letter-spacing-0106@tablet lrv-u-letter-spacing-0140@mobile-max';
27
+ o_story.story_nav_layout_classes = 'lrv-u-flex lrv-u-align-items-center lrv-a-space-children-horizontal lrv-a-space-children--2 lrv-u-margin-t-050';
28
+
29
+ const stories = [
30
+ o_story,
31
+ o_story,
32
+ ];
33
+
34
+ module.exports = {
35
+ o_story_featured,
36
+ top_stories_classes: 'lrv-u-flex lrv-u-flex-wrap-wrap lrv-u-margin-b-075',
37
+ featured_story_classes: 'lrv-u-width-100p@mobile-max lrv-u-width-70p lrv-u-padding-r-125 lrv-u-padding-r-150@desktop lrv-u-padding-r-00@mobile-max lrv-u-padding-b-2@mobile-max lrv-u-margin-b-2@mobile-max u-border-b-1@mobile-max',
38
+ story_items_classes: 'lrv-u-width-30p lrv-u-width-100p@mobile-max lrv-a-children-border-vertical lrv-a-space-children lrv-a-space-children--2 lrv-a-space-children-vertical lrv-u-padding-l-125 lrv-u-padding-l-150@desktop lrv-u-padding-l-00@mobile-max',
39
+ story_item_classes: '',
40
+ stories,
41
+ };
@@ -0,0 +1,12 @@
1
+ <div class="top-stories // {{ top_stories_classes }}">
2
+ <div class="featured-story-item {{ featured_story_classes }}">
3
+ {% include "@larva/modules/story/story.twig" with o_story_featured %}
4
+ </div>
5
+ <div class="story-items {{ story_items_classes }}">
6
+ {% for item in stories %}
7
+ <div class="story-item {{ story_item_classes }}">
8
+ {% include "@larva/modules/story/story.twig" with item %}
9
+ </div>
10
+ {% endfor %}
11
+ </div>
12
+ </div>
@@ -0,0 +1,14 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const top_stories = clonedeep( require( './top-stories.prototype' ) );
4
+
5
+ top_stories.o_story_featured.c_title.c_title_classes = 'lrv-a-font-primary-xl c-title lrv-u-display-block lrv-u-margin-b-050';
6
+ top_stories.o_story_featured.c_link_bottom = false;
7
+
8
+ top_stories.stories.map( ( o_story ) => {
9
+ o_story.c_span = false;
10
+ o_story.c_link_bottom = false;
11
+ });
12
+
13
+
14
+ module.exports = top_stories;
@@ -0,0 +1 @@
1
+ There is nothing fancy about this module - it is as it appears: a large card on the left and a few smaller ones on the right, along with a header that supports a link to "view more" or similar. It is intended to be used with carousels to display curated playlists below the vlanding-video-showcase.
@@ -0,0 +1,34 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const o_header = clonedeep( require( '../../objects/o-header/o-header.prototype' ) );
4
+ const o_card = clonedeep( require( '../../objects/o-card/o-card.prototype' ) );
5
+
6
+ o_header.o_heading_classes = 'lrv-u-flex lrv-u-align-items-center lrv-u-border-b-1 lrv-u-border-color-grey-light lrv-u-margin-b-1';
7
+ o_header.c_heading.c_heading_text = 'Behind the Lens';
8
+ o_header.c_heading.c_heading_classes = 'lrv-u-font-size-32';
9
+
10
+ o_header.c_button.c_button_classes += ' lrv-u-font-weight-bold';
11
+
12
+ o_card.c_span = false;
13
+ o_card.c_timestamp = false;
14
+ o_card.o_card_link_url = '#';
15
+ o_card.o_card_link_classes = 'lrv-a-unstyle-link';
16
+ o_card.c_lazy_image.c_lazy_image_classes = 'lrv-u-margin-b-050';
17
+ o_card.c_lazy_image.c_lazy_image_crop_class = 'lrv-a-crop-4x3';
18
+ o_card.c_title.c_title_url = false;
19
+
20
+ const o_card_large = clonedeep( o_card );
21
+
22
+ o_card.c_title.c_title_classes = 'lrv-u-font-size-12';
23
+ o_card_large.c_title.c_title_classes = 'lrv-u-font-size-20@desktop lrv-u-font-size-12';
24
+
25
+ module.exports = {
26
+ o_header: o_header,
27
+ vlanding_playlist_large_card: o_card_large,
28
+ vlanding_playlist_small_cards: [
29
+ o_card,
30
+ o_card,
31
+ o_card,
32
+ o_card
33
+ ]
34
+ };
@@ -0,0 +1,20 @@
1
+ <section class="vlanding-playlist // lrv-u-padding-tb-2 lrv-u-padding-tb-1@mobile-max">
2
+ {% if o_header %}
3
+ <div class="lrv-a-wrapper">
4
+ {% include "@larva/objects/o-header/o-header.twig" with o_header %}
5
+ </div>
6
+ {% endif %}
7
+
8
+ <div class="lrv-a-wrapper lrv-a-scrollable-grid@desktop-max lrv-a-grid lrv-a-cols2@desktop">
9
+ {% if vlanding_playlist_large_card %}
10
+ {% include "@larva/objects/o-card/o-card.twig" with vlanding_playlist_large_card %}
11
+ {% endif %}
12
+ <div class="lrv-a-scrollable-grid__nested@desktop-max lrv-a-grid lrv-a-cols2@desktop">
13
+ {% for item in vlanding_playlist_small_cards %}
14
+ {% include "@larva/objects/o-card/o-card.twig" with item %}
15
+ {% endfor %}
16
+ </div>
17
+ </div>
18
+ </section>
19
+
20
+
@@ -0,0 +1 @@
1
+ This pattern is included in `vlanding-video-showcase`, and is intended to be used there only.
@@ -0,0 +1,25 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_lazy_image = clonedeep( require( './../../components/c-lazy-image/c-lazy-image.prototype' ) );
4
+ const c_title = clonedeep( require( './../../components/c-title/c-title.prototype' ) );
5
+ const c_span = clonedeep( require( './../../components/c-span/c-span.prototype' ) );
6
+
7
+ module.exports = {
8
+ vlanding_video_card_permalink_url: '#',
9
+ vlanding_video_card_use_button: true,
10
+ vlanding_video_card_link_aria_controls_attr: '',
11
+ vlanding_video_card_link_classes: 'lrv-a-unstyle-link',
12
+ vlanding_video_card_link_showcase_trigger_data_attr: 'x3HbbzHK5Mc',
13
+ vlanding_video_card_link_showcase_type_data_attr: 'youtube',
14
+ vlanding_video_card_link_showcase_dek_data_attr: 'text for the dek, update this',
15
+ vlanding_video_card_link_showcase_title_data_attr: 'title that should be the same as the card',
16
+ vlanding_video_card_link_showcase_permalink_data_url: '#',
17
+ vlanding_video_card_active_txt_attr: 'Now Playing',
18
+ vlanding_video_card_classes: '',
19
+ vlanding_video_card_crop_class: '',
20
+ c_lazy_image: c_lazy_image,
21
+ vlanding_video_card_is_player: '',
22
+ c_title: c_title,
23
+ c_span: c_span,
24
+ vlanding_video_card_social_share_markup: '',
25
+ };
@@ -0,0 +1,56 @@
1
+ {% if vlanding_video_card_permalink_url %}
2
+ {% if vlanding_video_card_use_button %}
3
+ <button class="vlanding-video-card__link lrv-a-unstyle-button lrv-u-width-100p {{ vlanding_video_card_link_classes }}"
4
+ data-video-showcase-trigger="{{ vlanding_video_card_link_showcase_trigger_data_attr }}"
5
+ data-video-showcase-type="{{ vlanding_video_card_link_showcase_type_data_attr }}"
6
+ data-video-showcase-dek="{{ vlanding_video_card_link_showcase_dek_data_attr }}"
7
+ data-video-showcase-title="{{ vlanding_video_card_link_showcase_title_data_attr }}"
8
+ data-video-showcase-permalink="{{ vlanding_video_card_link_showcase_permalink_data_url }}"
9
+ {% if vlanding_video_card_link_aria_controls_attr %}
10
+ aria-controls="{{ vlanding_video_card_link_aria_controls_attr }}"
11
+ {% endif %}
12
+ >
13
+ {% else %}
14
+ <a href="{{ vlanding_video_card_permalink_url }}" class="vlanding-video-card__link {{ vlanding_video_card_link_classes }}" data-video-showcase-trigger="{{ vlanding_video_card_link_showcase_trigger_data_attr }}" data-video-showcase-type="{{ vlanding_video_card_link_showcase_type_data_attr }}" data-video-showcase-dek="{{ vlanding_video_card_link_showcase_dek_data_attr }}" data-video-showcase-title="{{ vlanding_video_card_link_showcase_title_data_attr }}" data-video-showcase-permalink="{{ vlanding_video_card_link_showcase_permalink_data_url }}">
15
+ {% endif %}
16
+ {% endif %}
17
+
18
+ <div class="vlanding-video-card {{ vlanding_video_card_classes }}" data-video-showcase-player>
19
+
20
+ <div class="{{ vlanding_video_card_crop_class }}" data-video-showcase-active-text="{{ vlanding_video_card_active_txt_attr }}">
21
+
22
+ {% if c_lazy_image %}
23
+ {% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
24
+ {% endif %}
25
+
26
+ {% if vlanding_video_card_is_player %}
27
+ <iframe hidden id="youtubePlayerContainer" frameborder="0" data-video-showcase-iframe></iframe>
28
+ <div hidden id="jwplayerContainer" data-video-showcase-jwplayer></div>
29
+ {% endif %}
30
+
31
+ </div>
32
+
33
+ {% if c_span %}
34
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
35
+ {% endif %}
36
+
37
+ {% if c_title %}
38
+ {% include "@larva/components/c-title/c-title.twig" with c_title %}
39
+ {% endif %}
40
+
41
+ </div>
42
+
43
+ {% if vlanding_video_card_permalink_url %}
44
+ {% if vlanding_video_card_use_button %}
45
+ </button>
46
+ {% else %}
47
+ </a>
48
+ {% endif %}
49
+ {% endif %}
50
+
51
+ {% if vlanding_video_card_social_share_markup %}
52
+ <div class="lrv-a-hidden" data-video-showcase-trigger-social-share>
53
+ {{ vlanding_video_card_social_share_markup }}
54
+ </div>
55
+ {% endif %}
56
+
@@ -0,0 +1,12 @@
1
+ This Video Showcase supports YouTube and JWPlayer videos and an option listing of video thumbnails below the large player. Clicking one of the thumbnails will load its video and associated content in the large player.
2
+
3
+ Options:
4
+ - Set social_share to false, to exclude the share bar in the large video
5
+ - Set vlanding_video_showcase_video_cards to false to exclude the 'Latest Videos'
6
+ - Show a Sponsored badge for the video. Note that this requires a server-side class to hide/show the badge, but retain the DOM markup for future elements. Example logic:
7
+ ```
8
+ // Add a-hidden if not sponsored.
9
+ if ( ! \Deadline\Inc\Article::is_sponsored( $vlanding_video_card['post_id'] ) ) {
10
+ $vlanding_video_showcase['c_span']['c_span_classes'] .= ' lrv-a-hidden';
11
+ }
12
+ ```
@@ -0,0 +1,68 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const vlanding_video_card = clonedeep( require( '../../modules/vlanding-video-card/vlanding-video-card.prototype' ) );
4
+ const social_share = clonedeep( require( '../../modules/social-share/social-share.prototype' ) );
5
+ const c_span = clonedeep( require( '../../components/c-span/c-span.prototype' ) );
6
+ const c_title = clonedeep( require( '../../components/c-title/c-title.prototype' ) );
7
+ const c_dek = clonedeep( require( '../../components/c-dek/c-dek.prototype' ) );
8
+ const c_heading = clonedeep( require( '../../components/c-heading/c-heading.prototype' ) );
9
+
10
+ const vlanding_video_card_player = clonedeep( vlanding_video_card );
11
+ const vlanding_video_showcase_card = clonedeep( vlanding_video_card );
12
+
13
+ const demoVideos = [
14
+ 'TxC_UpC0iyk',
15
+ '_JFOdYRfqBQ',
16
+ 'UmjBAjsLMms',
17
+ 'bgs2PgWE',
18
+ 'getvYflDK98'
19
+ ];
20
+
21
+ const vlanding_video_showcase_video_cards = [];
22
+
23
+ vlanding_video_showcase_card.c_title.c_title_url = false;
24
+ vlanding_video_showcase_card.c_title.c_title_classes = 'lrv-u-font-size-14 lrv-u-font-weight-normal lrv-u-padding-t-050';
25
+
26
+ vlanding_video_showcase_card.c_span.c_span_classes += ' lrv-u-display-block lrv-u-padding-b-00 lrv-u-padding-t-050 lrv-u-font-size-12 lrv-u-font-weight-normal';
27
+
28
+ vlanding_video_card_player.c_title = false;
29
+ vlanding_video_card_player.c_span = false;
30
+
31
+ // Move the crop class to the card so the iframe will position relative to that
32
+ // instead of c-lazy-image
33
+ vlanding_video_card_player.vlanding_video_card_is_player = true;
34
+ vlanding_video_card_player.c_lazy_image.c_lazy_image_crop_class = '';
35
+ vlanding_video_card_player.vlanding_video_card_crop_class = 'lrv-a-crop-16x9';
36
+
37
+ c_title.c_title_classes = 'lrv-u-font-size-24 lrv-u-font-size-32@desktop lrv-u-padding-b-1 js-VideoShowcase-title';
38
+ c_title.c_title_link_classes = 'lrv-a-unstyle-link';
39
+ c_title.c_title_text = 'Roseanne is Cancelled and I\'m So Sad About It';
40
+
41
+ c_dek.c_dek_classes = 'lrv-u-font-size-18 lrv-u-margin-t-00 lrv-a-hidden@mobile-max js-VideoShowcase-dek';
42
+
43
+ c_heading.c_heading_text = 'The Latest Videos';
44
+ c_heading.c_heading_classes = 'lrv-u-font-size-18 lrv-u-font-size-24@desktop lrv-u-font-size-28@desktop-xl lrv-u-border-b-1 lrv-u-border-color-grey-light lrv-u-padding-b-050 lrv-u-margin-tb-1';
45
+
46
+ vlanding_video_showcase_card.vlanding_video_card_link_showcase_trigger_data_attr = '_JFOdYRfqBQ';
47
+ vlanding_video_showcase_card.vlanding_video_card_link_showcase_type_data_attr = 'youtube';
48
+ vlanding_video_showcase_card.c_span = false;
49
+
50
+ demoVideos.map( ( videoId ) => {
51
+ let newVideo = clonedeep( vlanding_video_showcase_card );
52
+
53
+ newVideo.vlanding_video_card_link_showcase_trigger_data_attr = videoId;
54
+ vlanding_video_showcase_video_cards.push( newVideo );
55
+ });
56
+
57
+ module.exports = {
58
+ vlanding_video_showcase_classes: '',
59
+ vlanding_video_card_player: vlanding_video_card_player,
60
+ c_span: c_span,
61
+ c_title: c_title,
62
+ c_dek: c_dek,
63
+ social_share: social_share,
64
+ c_heading: c_heading,
65
+ vlanding_video_showcase_video_cards_classes: 'js-Flickity js-Flickity--fifths js-Flickity--isContained',
66
+ vlanding_video_showcase_video_cards_item_classes: 'js-Flickity-cell lrv-u-margin-r-1',
67
+ vlanding_video_showcase_video_cards: vlanding_video_showcase_video_cards
68
+ };
@@ -0,0 +1,46 @@
1
+ <section class="vlanding-video-showcase // {{ vlanding_video_showcase_classes }}" data-video-showcase="">
2
+ <div class="lrv-a-wrapper lrv-a-grid lrv-a-cols3@tablet">
3
+ <div class="lrv-a-grid-item lrv-a-span2@tablet">
4
+ {% if vlanding_video_card_player %}
5
+ {% include "@larva/modules/vlanding-video-card/vlanding-video-card.twig" with vlanding_video_card_player %}
6
+ {% endif %}
7
+ </div>
8
+ <div class="lrv-a-grid-item lrv-u-margin-tb-auto lrv-u-margin-tb-auto">
9
+ {% if c_span %}
10
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
11
+ {% endif %}
12
+
13
+ {% if c_title %}
14
+ {% include "@larva/components/c-title/c-title.twig" with c_title %}
15
+ {% endif %}
16
+
17
+ {% if c_dek %}
18
+ {% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
19
+ {% endif %}
20
+
21
+ {% if social_share %}
22
+ {% include "@larva/modules/social-share/social-share.twig" with social_share %}
23
+ {% endif %}
24
+ </div>
25
+ </div>
26
+
27
+ {% if vlanding_video_showcase_video_cards %}
28
+
29
+ <div class="lrv-a-wrapper lrv-u-padding-t-1">
30
+ {% if c_heading %}
31
+ {% include "@larva/components/c-heading/c-heading.twig" with c_heading %}
32
+ {% endif %}
33
+
34
+ <div class="vlanding-video-showcase__video-cards // lrv-u-overflow-hidden lrv-a-glue-parent">
35
+ <ul class="lrv-a-unstyle-list lrv-a-scrollable-grid@desktop-max {{ vlanding_video_showcase_video_cards_classes }}">
36
+ {% for item in vlanding_video_showcase_video_cards %}
37
+ <li class="{{ vlanding_video_showcase_video_cards_item_classes }}">
38
+ {% include "@larva/modules/vlanding-video-card/vlanding-video-card.twig" with item %}
39
+ </li>
40
+ {% endfor %}
41
+ </ul>
42
+ </div>
43
+ </div>
44
+
45
+ {% endif %}
46
+ </section>