@penskemediacorp/larva-patterns 1.9.0-alpha.0 → 1.9.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 (354) 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 -12
  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 +12 -10
  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 +2 -1
  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-blurb/author-blurb.prototype.js +56 -0
  98. package/modules/author-blurb/author-blurb.twig +27 -0
  99. package/modules/author-details/author-details.prototype.js +70 -0
  100. package/modules/author-details/author-details.twig +25 -0
  101. package/modules/back-to-list/back-to-list.prototype.js +11 -0
  102. package/modules/back-to-list/back-to-list.twig +5 -0
  103. package/modules/badge/badge.prototype.js +10 -6
  104. package/modules/badge/badge.twig +1 -1
  105. package/modules/banner/banner.prototype.js +10 -0
  106. package/modules/banner/banner.twig +10 -0
  107. package/modules/brands-most-popular/brands-most-popular.prototype.js +40 -0
  108. package/modules/brands-most-popular/brands-most-popular.twig +11 -0
  109. package/modules/breadcrumbs/breadcrumbs.prototype.js +4 -5
  110. package/modules/breadcrumbs/breadcrumbs.twig +1 -1
  111. package/modules/breaking-news/breaking-news.prototype.js +29 -0
  112. package/modules/breaking-news/breaking-news.twig +18 -0
  113. package/modules/button/button.prototype.js +9 -0
  114. package/modules/button/button.twig +7 -0
  115. package/modules/buy-now/buy-now.prototype.js +36 -0
  116. package/modules/buy-now/buy-now.twig +23 -0
  117. package/modules/carousel-grid/README.md +7 -0
  118. package/modules/carousel-grid/carousel-grid.overlay.js +26 -0
  119. package/modules/carousel-grid/carousel-grid.prototype.js +50 -0
  120. package/modules/carousel-grid/carousel-grid.twig +17 -0
  121. package/modules/carousel-slider/carousel-slider.prototype.js +56 -0
  122. package/modules/carousel-slider/carousel-slider.twig +11 -0
  123. package/modules/container/README.md +3 -0
  124. package/modules/container/container.prototype.js +7 -0
  125. package/modules/container/container.twig +1 -0
  126. package/modules/content-showcase/content-showcase.prototype.js +30 -0
  127. package/modules/content-showcase/content-showcase.the-moth.js +33 -0
  128. package/modules/content-showcase/content-showcase.twig +7 -0
  129. package/modules/expandable-search/expandable-search.prototype.js +19 -0
  130. package/modules/expandable-search/expandable-search.twig +9 -0
  131. package/modules/featured-stories/featured-stories.prototype.js +27 -0
  132. package/modules/featured-stories/featured-stories.twig +18 -0
  133. package/modules/featured-video/featured-video.prototype.js +33 -0
  134. package/modules/featured-video/featured-video.twig +8 -0
  135. package/modules/featured-video/featured-video.video-post.js +10 -0
  136. package/modules/footer/README.md +15 -0
  137. package/modules/footer/footer.prototype.js +14 -0
  138. package/modules/footer/footer.twig +22 -0
  139. package/modules/footer-button-list/footer-button-list.prototype.js +43 -0
  140. package/modules/footer-button-list/footer-button-list.twig +13 -0
  141. package/modules/footer-magazine-image/footer-magazine-image.prototype.js +15 -0
  142. package/modules/footer-magazine-image/footer-magazine-image.twig +3 -0
  143. package/modules/footer-menus/README.md +3 -0
  144. package/modules/footer-menus/footer-menus.prototype.js +9 -9
  145. package/modules/footer-menus/footer-menus.twig +2 -2
  146. package/modules/footer-newsletter/README.md +5 -0
  147. package/modules/footer-newsletter/footer-newsletter.prototype.js +21 -0
  148. package/modules/footer-newsletter/footer-newsletter.twig +5 -0
  149. package/modules/footer-social/README.md +3 -0
  150. package/modules/footer-social/footer-social.prototype.js +27 -20
  151. package/modules/footer-social/footer-social.twig +2 -2
  152. package/modules/footer-tip/footer-tip.prototype.js +21 -13
  153. package/modules/footer-tip/footer-tip.twig +2 -2
  154. package/modules/header/header.article.js +39 -0
  155. package/modules/header/header.prototype.js +90 -0
  156. package/modules/header/header.twig +74 -0
  157. package/modules/header-menu/header-menu.prototype.js +26 -0
  158. package/modules/header-menu/header-menu.twig +3 -0
  159. package/modules/header-sticky/header-sticky.article.js +43 -0
  160. package/modules/header-sticky/header-sticky.prototype.js +39 -0
  161. package/modules/header-sticky/header-sticky.twig +30 -0
  162. package/modules/heading/heading.h1.js +8 -0
  163. package/modules/heading/heading.h2.js +8 -0
  164. package/modules/heading/heading.h3.js +8 -0
  165. package/modules/heading/heading.h4.js +7 -0
  166. package/modules/heading/heading.h5.js +7 -0
  167. package/modules/heading/heading.h6.js +7 -0
  168. package/modules/heading/heading.prototype.js +9 -0
  169. package/modules/heading/heading.twig +3 -0
  170. package/modules/hero-image-story/hero-image-story.prototype.js +41 -0
  171. package/modules/hero-image-story/hero-image-story.twig +8 -0
  172. package/modules/injected-related-content/injected-related-content.prototype.js +61 -0
  173. package/modules/injected-related-content/injected-related-content.twig +23 -0
  174. package/modules/linked-gallery/linked-gallery.prototype.js +56 -0
  175. package/modules/linked-gallery/linked-gallery.twig +21 -0
  176. package/modules/list/list.ordered.js +7 -0
  177. package/modules/list/list.prototype.js +57 -0
  178. package/modules/list/list.twig +11 -0
  179. package/modules/listicle-item/listicle-item.prototype.js +11 -0
  180. package/modules/listicle-item/listicle-item.twig +3 -0
  181. package/modules/mega-menu/mega-menu.prototype.js +16 -0
  182. package/modules/mega-menu/mega-menu.twig +10 -0
  183. package/modules/mega-menu-content/mega-menu-content.prototype.js +10 -0
  184. package/modules/mega-menu-content/mega-menu-content.twig +5 -0
  185. package/modules/mega-menu-footer/mega-menu-footer.prototype.js +41 -0
  186. package/modules/mega-menu-footer/mega-menu-footer.twig +19 -0
  187. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.prototype.js +20 -0
  188. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.twig +4 -0
  189. package/modules/mega-menu-item/mega-menu-item.prototype.js +23 -0
  190. package/modules/mega-menu-item/mega-menu-item.twig +13 -0
  191. package/modules/more-stories-button/more-stories-button.profile.js +12 -0
  192. package/modules/more-stories-button/more-stories-button.prototype.js +29 -0
  193. package/modules/more-stories-button/more-stories-button.twig +13 -0
  194. package/modules/newsletter/newsletter.prototype.js +46 -0
  195. package/modules/newsletter/newsletter.twig +21 -0
  196. package/modules/newsletter-cta/newsletter-cta.prototype.js +21 -0
  197. package/modules/newsletter-cta/newsletter-cta.twig +22 -0
  198. package/modules/newswire/newswire.prototype.js +46 -0
  199. package/modules/newswire/newswire.twig +16 -0
  200. package/modules/page-404/page-404.prototype.js +44 -0
  201. package/modules/page-404/page-404.twig +32 -0
  202. package/modules/paragraph/paragraph.narrow.js +8 -0
  203. package/modules/paragraph/paragraph.prototype.js +8 -0
  204. package/modules/paragraph/paragraph.twig +3 -0
  205. package/modules/pmc-footer/pmc-footer.prototype.js +26 -24
  206. package/modules/pmc-footer/pmc-footer.twig +11 -9
  207. package/modules/post-content-image/post-content-image.prototype.js +14 -0
  208. package/modules/post-content-image/post-content-image.twig +3 -0
  209. package/modules/production-credits/production-credits.prototype.js +5 -0
  210. package/modules/production-credits/production-credits.twig +4 -0
  211. package/modules/profile-blurb/profile-blurb.card.js +28 -0
  212. package/modules/profile-blurb/profile-blurb.prototype.js +45 -0
  213. package/modules/profile-blurb/profile-blurb.twig +37 -0
  214. package/modules/profile-body/profile-body.prototype.js +20 -0
  215. package/modules/profile-body/profile-body.twig +15 -0
  216. package/modules/profile-browse-by/profile-browse-by.prototype.js +29 -0
  217. package/modules/profile-browse-by/profile-browse-by.twig +6 -0
  218. package/modules/profile-card-list/profile-card-list.prototype.js +25 -0
  219. package/modules/profile-card-list/profile-card-list.twig +7 -0
  220. package/modules/profile-filter/profile-filter.prototype.js +26 -0
  221. package/modules/profile-filter/profile-filter.twig +15 -0
  222. package/modules/profile-gallery/profile-gallery.prototype.js +28 -0
  223. package/modules/profile-gallery/profile-gallery.twig +13 -0
  224. package/modules/profile-header/profile-header.prototype.js +29 -0
  225. package/modules/profile-header/profile-header.twig +27 -0
  226. package/modules/profile-highlights/profile-highlights.prototype.js +22 -0
  227. package/modules/profile-highlights/profile-highlights.twig +17 -0
  228. package/modules/profile-landing-header/profile-landing-header.prototype.js +17 -0
  229. package/modules/profile-landing-header/profile-landing-header.twig +12 -0
  230. package/modules/profile-landing-river/profile-landing-river.prototype.js +21 -0
  231. package/modules/profile-landing-river/profile-landing-river.twig +13 -0
  232. package/modules/profile-related-stories/profile-related-stories.prototype.js +33 -0
  233. package/modules/profile-related-stories/profile-related-stories.twig +9 -0
  234. package/modules/pullquote/pullquote.prototype.js +8 -0
  235. package/modules/pullquote/pullquote.twig +3 -0
  236. package/modules/read-next/read-next.prototype.js +20 -0
  237. package/modules/read-next/read-next.twig +4 -0
  238. package/modules/search-form/search-form.prototype.js +8 -0
  239. package/modules/search-form/search-form.twig +11 -0
  240. package/modules/secondary-stories/secondary-stories.prototype.js +119 -0
  241. package/modules/secondary-stories/secondary-stories.twig +22 -0
  242. package/modules/separator/separator.prototype.js +4 -0
  243. package/modules/separator/separator.thick.js +7 -0
  244. package/modules/separator/separator.twig +1 -0
  245. package/modules/separator/separator.wide-thick.js +7 -0
  246. package/modules/separator/separator.wide.js +7 -0
  247. package/modules/social-share/social-share.prototype.js +43 -0
  248. package/modules/social-share/social-share.twig +30 -0
  249. package/modules/special-coverage/special-coverage.prototype.js +47 -0
  250. package/modules/special-coverage/special-coverage.twig +29 -0
  251. package/modules/story/story.borders.js +8 -0
  252. package/modules/story/story.center-vertical-borders.js +7 -0
  253. package/modules/story/story.center-vertical.js +11 -0
  254. package/modules/story/story.prototype.js +43 -0
  255. package/modules/story/story.right-borders.js +9 -0
  256. package/modules/story/story.right.js +14 -0
  257. package/modules/story/story.story-arc.js +9 -0
  258. package/modules/story/story.twig +88 -0
  259. package/modules/story/story.vertical-borders.js +7 -0
  260. package/modules/story/story.vertical.js +11 -0
  261. package/modules/story-arc-stories/story-arc-stories.prototype.js +21 -0
  262. package/modules/story-arc-stories/story-arc-stories.twig +14 -0
  263. package/modules/story-featured-quote/story-featured-quote.prototype.js +28 -0
  264. package/modules/story-featured-quote/story-featured-quote.twig +27 -0
  265. package/modules/story-grid/story-grid.prototype.js +24 -0
  266. package/modules/story-grid/story-grid.river.js +15 -0
  267. package/modules/story-grid/story-grid.twig +17 -0
  268. package/modules/sub-header/sub-header.prototype.js +8 -0
  269. package/modules/sub-header/sub-header.twig +7 -0
  270. package/modules/top-stories/top-stories.prototype.js +41 -0
  271. package/modules/top-stories/top-stories.twig +12 -0
  272. package/modules/top-stories/top-stories.xl.js +14 -0
  273. package/modules/vlanding-playlist/README.md +1 -0
  274. package/modules/vlanding-playlist/vlanding-playlist.prototype.js +34 -0
  275. package/modules/vlanding-playlist/vlanding-playlist.twig +20 -0
  276. package/modules/vlanding-video-card/README.md +1 -0
  277. package/modules/vlanding-video-card/vlanding-video-card.prototype.js +25 -0
  278. package/modules/vlanding-video-card/vlanding-video-card.twig +56 -0
  279. package/modules/vlanding-video-showcase/README.md +12 -0
  280. package/modules/vlanding-video-showcase/vlanding-video-showcase.prototype.js +68 -0
  281. package/modules/vlanding-video-showcase/vlanding-video-showcase.twig +46 -0
  282. package/objects/o-account-menu/o-account-menu.prototype.js +35 -0
  283. package/objects/o-account-menu/o-account-menu.twig +25 -0
  284. package/objects/o-author/o-author.prototype.js +13 -0
  285. package/objects/o-author/o-author.twig +13 -0
  286. package/objects/o-card/README.md +1 -0
  287. package/objects/o-card/o-card.prototype.js +25 -0
  288. package/objects/o-card/o-card.twig +75 -0
  289. package/objects/o-card-list/README.md +3 -0
  290. package/objects/o-card-list/o-card-list.prototype.js +13 -0
  291. package/objects/o-card-list/o-card-list.twig +7 -0
  292. package/objects/o-category-link/o-category-link.prototype.js +6 -0
  293. package/objects/o-category-link/o-category-link.twig +5 -0
  294. package/objects/o-checkbox-input-list/o-checkbox-input-list.prototype.js +16 -0
  295. package/objects/o-checkbox-input-list/o-checkbox-input-list.twig +15 -0
  296. package/objects/o-collection-item/o-collection-item.floated.js +8 -0
  297. package/objects/o-collection-item/o-collection-item.prototype.js +11 -0
  298. package/objects/o-collection-item/o-collection-item.twig +5 -0
  299. package/objects/o-email-capture-form/README.md +11 -0
  300. package/objects/o-email-capture-form/o-email-capture-form.minimal.js +15 -0
  301. package/objects/o-email-capture-form/o-email-capture-form.prototype.js +17 -0
  302. package/objects/o-email-capture-form/o-email-capture-form.twig +16 -0
  303. package/objects/o-figure/README.md +17 -0
  304. package/objects/o-figure/o-figure.prototype.js +15 -7
  305. package/objects/o-figure/o-figure.twig +22 -45
  306. package/objects/o-header/o-header.prototype.js +12 -10
  307. package/objects/o-header/o-header.twig +5 -1
  308. package/objects/o-header-buttons/o-header-buttons.column.js +10 -0
  309. package/objects/o-header-buttons/o-header-buttons.prototype.js +41 -0
  310. package/objects/o-header-buttons/o-header-buttons.twig +42 -0
  311. package/objects/o-icon-button/README.md +5 -0
  312. package/objects/o-icon-button/o-icon-button.prototype.js +21 -0
  313. package/objects/o-icon-button/o-icon-button.search.js +9 -0
  314. package/objects/o-icon-button/o-icon-button.twig +29 -0
  315. package/objects/o-indicator/README.md +1 -0
  316. package/objects/o-indicator/o-indicator.photos.js +12 -0
  317. package/objects/o-indicator/o-indicator.prototype.js +8 -0
  318. package/objects/o-indicator/o-indicator.twig +9 -0
  319. package/objects/o-input-group/o-input-group.prototype.js +11 -0
  320. package/objects/o-input-group/o-input-group.twig +5 -0
  321. package/objects/o-nav/README.md +2 -2
  322. package/objects/o-nav/o-nav.horizontal.js +6 -6
  323. package/objects/o-nav/o-nav.prototype.js +17 -13
  324. package/objects/o-nav/o-nav.twig +29 -3
  325. package/objects/o-select-nav/o-select-nav.prototype.js +17 -0
  326. package/objects/o-select-nav/o-select-nav.twig +9 -0
  327. package/objects/o-social-list/o-social-list.prototype.js +21 -31
  328. package/objects/o-social-list/o-social-list.twig +10 -2
  329. package/objects/o-span-group/README.md +1 -0
  330. package/objects/o-span-group/o-span-group.prototype.js +11 -0
  331. package/objects/o-span-group/o-span-group.twig +5 -0
  332. package/objects/o-sponsored-by/o-sponsored-by.prototype.js +9 -10
  333. package/objects/o-sponsored-by/o-sponsored-by.twig +2 -2
  334. package/objects/o-story-arc-item/o-story-arc-item.prototype.js +29 -0
  335. package/objects/o-story-arc-item/o-story-arc-item.twig +9 -0
  336. package/objects/o-sub-header/o-sub-header.prototype.js +39 -0
  337. package/objects/o-sub-header/o-sub-header.twig +9 -0
  338. package/objects/o-tease/o-tease.prototype.js +24 -20
  339. package/objects/o-tease/o-tease.twig +7 -3
  340. package/objects/o-tease-list/o-tease-list.prototype.js +12 -24
  341. package/objects/o-tease-list/o-tease-list.twig +5 -1
  342. package/objects/o-video-card/o-video-card.prototype.js +45 -0
  343. package/objects/o-video-card/o-video-card.twig +67 -0
  344. package/package.json +6 -9
  345. package/pattern.html +61 -9
  346. package/style-guide/colors.html +33 -0
  347. package/style-guide/fonts.html +22 -0
  348. package/style-guide/index.html +14 -0
  349. package/components/c-button/c-button.scss +0 -33
  350. package/components/c-tagline/c-tagline.json +0 -4
  351. package/components/c-tagline/c-tagline.scss +0 -19
  352. package/objects/o-figure/o-figure.scss +0 -46
  353. package/objects/o-tease/o-tease.scss +0 -30
  354. package/scratch-pad.css +0 -3
@@ -1,57 +1,34 @@
1
- {% if o_figure_permalink_url %}
2
- <a href="{{ o_figure_permalink_url }}" class="o-figure__link {{ o_figure_link_classes }}">
3
- {% endif %}
4
-
5
- {% if o_figure_screen_reader_text %}
6
- <span class="a-screen-reader-only">{{ o_figure_screen_reader_text }}</span>
7
- {% endif %}
8
-
9
- {% if has_toaster %}
10
- <figure class="o-figure {{ modifier_class }} {{ o_figure_classes }}" data-toaster-activate-trigger>
11
- {% else %}
12
- <figure class="o-figure {{ modifier_class }} {{ o_figure_classes }}" style="{{ o_figure_width_attr }}">
1
+ {% if o_figure_link_url %}
2
+ <a href="{{ o_figure_link_url }}" class="o-figure__link {{ o_figure_link_classes }}"
3
+ {% if o_figure_link_target_attr %}
4
+ target="{{ o_figure_link_target_attr }}"
5
+ {% endif %}
6
+ {% if o_figure_link_tabindex_attr %}
7
+ tabindex="{{ o_figure_link_tabindex_attr }}"
8
+ {% endif %}
9
+ >
13
10
  {% endif %}
14
11
 
15
- {% if o_figure_crop_class %}
16
- <div class="{{ o_figure_crop_class }}">
17
- {% endif %}
12
+ <figure class="o-figure {{ modifier_class }} {{ o_figure_classes }} lrv-u-max-width-100p" style="{{ o_figure_width_attr }}">
18
13
 
19
- {% if o_figure_image_markup %}
20
- {{ o_figure_image_markup }}
21
- {% else %}
22
- <img class="o-figure__image {{ o_figure_image_classes }}" src="{{ o_figure_placeholder_image_url }}" data-lazy-src="{{ o_figure_image_url }}" alt="{{ o_figure_alt_attr }}">
23
- {% endif %}
14
+ {% if c_lazy_image %}
15
+ {% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
16
+ {% endif %}
24
17
 
25
- {% if c_button %}
26
- {% include "@larva/components/c-button/c-button.twig" with c_button %}
27
- {% endif %}
28
-
29
- {% if o_figure_crop_class %}
30
- </div>
31
- {% endif %}
18
+ {% if c_figcaption %}
19
+ {% if o_figure_figcaption_outer %}
20
+ <div class="o-figure__figcaption-outer {{ o_figure_figcaption_outer_classes }}">
21
+ {% endif %}
32
22
 
33
- {# Backwards Compatibility #}
34
- {% if o_figure_caption_text %}
35
- <figcaption class="o-figure__caption {{ o_figure_caption_classes }}">{{ o_figure_caption_text }}</figcaption>
36
- {% endif %}
23
+ {% include "@larva/components/c-figcaption/c-figcaption.twig" with c_figcaption %}
37
24
 
38
- {% if o_figure_show_figcaption %}
39
- <figcaption class="o-figure__caption {{ o_figure_figcaption_classes }}">
40
- {% if o_figure_caption_markup %}
41
- <span class="{{ o_figure_caption_classes }}">{{ o_figure_caption_markup }}</span>
25
+ {% if o_figure_figcaption_outer %}
26
+ </div>
42
27
  {% endif %}
43
- {% if o_figure_credit_text %}
44
- <span class="{{ o_figure_credit_classes }}">{{ o_figure_credit_text }}</span>
45
- {% endif %}
46
- </figcaption>
47
- {% endif %}
48
-
49
- {% if c_play_badge %}
50
- {% include "@larva/components/c-play-badge/c-play-badge.twig" with c_play_badge %}
51
- {% endif %}
28
+ {% endif %}
52
29
 
53
30
  </figure>
54
31
 
55
- {% if o_figure_permalink_url %}
32
+ {% if o_figure_link_url %}
56
33
  </a>
57
34
  {% endif %}
@@ -1,12 +1,14 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_heading = clonedeep( require( '../../components/c-heading/c-heading.prototype' ) );
4
+ const c_button = clonedeep( require( '../../components/c-button/c-button.prototype' ) );
5
+
6
+ c_button.c_button_classes = 'lrv-u-font-size-12 lrv-u-text-transform-uppercase lrv-a-icon-after lrv-a-icon-arrow-right lrv-u-margin-l-auto';
7
+ c_button.c_button_text = 'Link';
8
+ c_button.c_button_url = '#';
9
+
1
10
  module.exports = {
2
- "o_heading_classes": "u-flex u-align-items-center pmc-u-background-black pmc-u-padding-a-1",
3
- "c_heading": {
4
- "c_heading_classes": "pmc-u-color-white",
5
- "c_heading_text": "Section Heading"
6
- },
7
- "c_button": {
8
- "modifier_class": "c-button--plain pmc-u-font-size-12 pmc-u-color-white pmc-u-text-transform-uppercase a-icon-after a-icon-arrow-right u-margin-l-auto",
9
- "c_button_url": "#",
10
- "c_button_text": "Link"
11
- }
11
+ o_heading_classes: 'lrv-u-flex lrv-u-align-items-center lrv-u-padding-a-1',
12
+ c_heading: c_heading,
13
+ c_button: c_button
12
14
  };
@@ -1,4 +1,4 @@
1
- <header class="o-heading {{ modifier_class }} {{ o_heading_classes }}">
1
+ <header class="o-header {{ modifier_class }} {{ o_heading_classes }}">
2
2
  {% if c_heading %}
3
3
  {% include "@larva/components/c-heading/c-heading.twig" with c_heading %}
4
4
  {% endif %}
@@ -11,6 +11,10 @@
11
11
  {% include "@larva/components/c-button/c-button.twig" with c_button %}
12
12
  {% endif %}
13
13
 
14
+ {% if c_svg %}
15
+ {% include "@larva/components/c-svg/c-svg.twig" with c_svg %}
16
+ {% endif %}
17
+
14
18
  {% if o_sponsored_by %}
15
19
  {% include "@larva/objects/o-sponsored-by/o-sponsored-by.twig" with o_sponsored_by %}
16
20
  {% endif %}
@@ -0,0 +1,10 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const header_buttons_prototype = require( './o-header-buttons.prototype' );
4
+ const header_buttons = clonedeep( header_buttons_prototype );
5
+
6
+ header_buttons.button_wrap = true;
7
+ header_buttons.c_subscribe_link.c_link_classes = 'lrv-a-unstyle-link lrv-u-text-transform-uppercase lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-u-color-brand-primary:hover lrv-u-border-b-1 lrv-u-border-color-white lrv-u-border-color-brand-primary:hover lrv-u-border-b-1 lrv-u-border-color-currentColor lrv-u-margin-b-025';
8
+ header_buttons.c_got_a_tip.c_link_classes = 'lrv-a-unstyle-link lrv-u-text-transform-uppercase lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-u-color-brand-primary:hover lrv-u-border-b-1 lrv-u-border-color-white lrv-u-border-color-brand-primary:hover lrv-u-margin-tb-025';
9
+ header_buttons.o_header_button_classes = 'lrv-u-align-items-stretch lrv-a-space-children-horizontal lrv-a-space-children--1';
10
+ module.exports = header_buttons;
@@ -0,0 +1,41 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_link_prototype = require( '../../components/c-link/c-link.prototype' );
4
+ const o_account_menu_prototype = require( '../../objects/o-account-menu/o-account-menu.prototype');
5
+
6
+ const c_login_link = clonedeep( c_link_prototype );
7
+ c_login_link.c_link_text = 'Log In';
8
+ c_login_link.c_link_classes = ' lrv-a-unstyle-link lrv-u-text-transform-uppercase lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-u-color-brand-primary:hover lrv-u-border-b-1 lrv-u-border-color-white lrv-u-border-color-brand-primary:hover';
9
+
10
+ const c_subscribe_link = clonedeep( c_link_prototype );
11
+ c_subscribe_link.c_link_text = 'Subscribe';
12
+ c_subscribe_link.c_link_classes = 'lrv-a-unstyle-button lrv-a-unstyle-link lrv-u-text-transform-uppercase lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-u-color-brand-primary:hover lrv-u-border-b-1 lrv-u-border-color-white lrv-u-border-color-brand-primary:hover';
13
+
14
+ const c_account_link = clonedeep( c_link_prototype );
15
+ c_account_link.c_link_text = 'Account';
16
+ c_account_link.c_link_classes = 'lrv-u-text-transform-uppercase lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-u-color-brand-primary:hover lrv-u-border-color-white lrv-u-border-color-brand-primary:hover';
17
+
18
+ const c_got_a_tip = clonedeep( c_link_prototype );
19
+ c_got_a_tip.c_link_text = 'Got A Tip?';
20
+ c_got_a_tip.c_link_classes = 'lrv-a-unstyle-link lrv-u-text-transform-uppercase lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-u-color-brand-primary:hover lrv-u-border-b-1 lrv-u-border-color-white lrv-u-border-color-brand-primary:hover';
21
+
22
+ const o_account_menu = clonedeep( o_account_menu_prototype );
23
+
24
+ o_account_menu.c_account_link.c_link_classes = ' lrv-a-unstyle-link lrv-u-text-transform-uppercase lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-u-color-brand-primary:hover lrv-u-border-b-1 lrv-u-border-color-white lrv-u-border-color-brand-primary:hover lrv-u-margin-tb-025';
25
+
26
+ module.exports = {
27
+ c_login_link,
28
+ c_subscribe_link,
29
+ o_account_menu,
30
+ c_got_a_tip,
31
+ c_account_link,
32
+ button_wrap: false,
33
+ show_flyout: true,
34
+ o_header_button_classes: 'lrv-a-space-children-horizontal lrv-a-space-children--1',
35
+ got_tip_wrapper_classes: 'lrv-u-border-l-00@mobile-max lrv-u-border-l-1 lrv-u-padding-l-1 lrv-u-padding-tb-025 lrv-u-flex lrv-u-align-items-center lrv-u-margin-tb-025',
36
+ account_menu_classes: 'lrv-u-flex lrv-u-align-items-center lrv-u-border-l-00@mobile-max lrv-u-border-l-1 lrv-u-padding-l-1 lrv-u-padding-tb-025 lrv-u-margin-tb-025',
37
+ hide_flyout_classes: ' ',
38
+ subscribe_wrapper_classes: 'subscribe-link cx-dynamic-link lrv-u-border-l-00@mobile-max lrv-u-border-l-1 lrv-u-padding-l-1 lrv-u-padding-tb-025 lrv-u-margin-tb-025',
39
+ login_wrapper_classes: 'subscriber-login-link lrv-u-border-l-00@mobile-max lrv-u-border-l-1 lrv-u-padding-l-1 lrv-u-padding-tb-025 lrv-u-margin-tb-025',
40
+ button_wrap_classes: 'lrv-u-flex lrv-u-flex-direction-column lrv-u-align-items-center lrv-u-border-l-00@mobile-max lrv-u-border-l-1 lrv-u-padding-l-1 lrv-u-margin-tb-025',
41
+ };
@@ -0,0 +1,42 @@
1
+ <div class="lrv-u-flex {{o_header_button_classes}}">
2
+ <div class="item-wrap // {{ got_tip_wrapper_classes }}">
3
+ {% include "@larva/components/c-link/c-link.twig" with c_got_a_tip %}
4
+ </div>
5
+
6
+ {% if show_flyout %}
7
+
8
+ <div class="item-wrap // {{ account_menu_classes }} ">
9
+ {% include "@larva/objects/o-account-menu/o-account-menu.twig" with o_account_menu %}
10
+ </div>
11
+
12
+ {% else %}
13
+
14
+ <div class="item-wrap // {{ account_menu_classes }} {{ hide_flyout_classes}}">
15
+ {% include "@larva/components/c-link/c-link.twig" with c_account_link %}
16
+ </div>
17
+
18
+ {% endif %}
19
+
20
+ {% if button_wrap %}
21
+
22
+ <div class="items-wrap // {{ button_wrap_classes }}">
23
+ {% if c_subscribe_link %}
24
+ {% include "@larva/components/c-link/c-link.twig" with c_subscribe_link %}
25
+ {% endif %}
26
+
27
+ {% include "@larva/components/c-link/c-link.twig" with c_login_link %}
28
+ </div>
29
+
30
+ {% else %}
31
+
32
+ <div class="item-wrap // {{ subscribe_wrapper_classes }}">
33
+ {% if c_subscribe_link %}
34
+ {% include "@larva/components/c-link/c-link.twig" with c_subscribe_link %}
35
+ {% endif %}
36
+ </div>
37
+ <div class="item-wrap // {{ login_wrapper_classes }} ">
38
+ {% include "@larva/components/c-link/c-link.twig" with c_login_link %}
39
+ </div>
40
+
41
+ {% endif %}
42
+ </div>
@@ -0,0 +1,5 @@
1
+ The Icon button is comprised of c_icon and c_span. While c_icon and c_span both support URLs, any URL for o-icon-button should be passed using o_icon_button_url. In this case, it will render an anchor tag instead of a button tag.
2
+
3
+ ## Available configurations:
4
+
5
+ * `o-icon-button.search` – Contains search icon from `c-icon` and no text.
@@ -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_icon = clonedeep( require( '../../components/c-icon/c-icon.prototype' ) );
5
+
6
+ c_icon.c_icon_name = 'hamburger';
7
+ c_icon.c_icon_url = false;
8
+
9
+ c_span.c_span_text = 'Menu';
10
+ c_span.c_span_classes = 'lrv-u-margin-l-050';
11
+ c_span.c_span_url = false;
12
+
13
+ module.exports = {
14
+ o_icon_button_classes: 'lrv-a-unstyle-button lrv-a-unstyle-link lrv-u-cursor-pointer lrv-u-flex',
15
+ o_icon_button_ga_tracking: {}, // by default we do not want to enable any ga tracking
16
+ o_icon_button_rel_attr: '',
17
+ o_icon_button_screen_reader_text: '',
18
+ o_icon_button_target_attr: '',
19
+ c_icon: c_icon,
20
+ c_span: c_span,
21
+ };
@@ -0,0 +1,9 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const o_icon_button_search = clonedeep( require( './o-icon-button.prototype' ) );
4
+
5
+ o_icon_button_search.c_icon.c_icon_name = 'search';
6
+ o_icon_button_search.o_icon_button_screen_reader_text = 'Click to Expand Search Input';
7
+ o_icon_button_search.c_span = false;
8
+
9
+ module.exports = o_icon_button_search;
@@ -0,0 +1,29 @@
1
+ {% if o_icon_button_url %}
2
+ <a href="{{ o_button_url }}" class="{{ o_icon_button_classes }}" target="{{ o_icon_button_target_attr }}" rel="{{ o_icon_button_rel_attr }}" data-pmc-sp-product="{{ o_icon_button_guid_attr }}" data-category-name="{{ o_icon_button_category_attr }}" {{ wp_action( 'pmc_do_render_custom_ga_tracking_attr', o_icon_button_ga_tracking ) }}>
3
+ {% else %}
4
+ {% if o_icon_use_span %}
5
+ <span class="o-icon-button {{ o_icon_button_classes }}">
6
+ {% else %}
7
+ <button class="o-icon-button {{ o_icon_button_classes }}">
8
+ {% endif %}
9
+ {% endif %}
10
+
11
+ {% include "@larva/components/c-icon/c-icon.twig" with c_icon %}
12
+
13
+ {% if o_icon_button_screen_reader_text %}
14
+ <span class="lrv-a-screen-reader-only">{{ o_icon_button_screen_reader_text }}</span>
15
+ {% endif %}
16
+
17
+ {% if c_span %}
18
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
19
+ {% endif %}
20
+
21
+ {% if o_icon_button_url %}
22
+ </a>
23
+ {% else %}
24
+ {% if o_icon_use_span %}
25
+ </span>
26
+ {% else %}
27
+ </button>
28
+ {% endif %}
29
+ {% endif %}
@@ -0,0 +1 @@
1
+ The indicator object supports `c-span` and/or `c-icon`. It is useful for arbitrary icons or text that visually support other elements, for example, the "Photos" or "Video" indication stuck to the image in a `story` excerpt. Works nicely with `a-glue`.
@@ -0,0 +1,12 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const o_indicator = clonedeep( require( './o-indicator.prototype' ) );
4
+ const c_icon = clonedeep( require( '../../components/c-icon/c-icon.prototype' ) );
5
+
6
+ o_indicator.c_icon = clonedeep( c_icon );
7
+ o_indicator.c_icon.c_icon_name = 'gallery';
8
+ o_indicator.c_span.c_span_text = 'Photos';
9
+ o_indicator.c_span.c_span_classes += ' lrv-u-margin-l-050 lrv-u-text-transform-uppercase lrv-a-font-secondary-s';
10
+ o_indicator.o_indicator_classes += ' lrv-u-flex lrv-u-background-color-black lrv-u-color-white lrv-u-padding-a-050 lrv-u-border-radius-5 lrv-u-margin-a-050';
11
+
12
+ module.exports = o_indicator;
@@ -0,0 +1,8 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_span = clonedeep( require( '../../components/c-span/c-span.prototype.js' ) );
4
+
5
+ module.exports = {
6
+ o_indicator_classes: 'lrv-a-glue lrv-a-glue--b-0 lrv-a-glue--r-0 u-pointer-events-none',
7
+ c_span: c_span
8
+ };
@@ -0,0 +1,9 @@
1
+ <span class="o-indicator {{ o_indicator_classes }}">
2
+ {% if c_icon %}
3
+ {% include "@larva/components/c-icon/c-icon.twig" with c_icon %}
4
+ {% endif %}
5
+
6
+ {% if c_span %}
7
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
8
+ {% endif %}
9
+ </span>
@@ -0,0 +1,11 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+ const c_input = clonedeep(require('@penskemediacorp/larva-patterns/components/c-input/c-input.prototype'));
3
+
4
+ module.exports = {
5
+ o_input_group_class: '',
6
+ o_input_group_items: [
7
+ c_input,
8
+ c_input,
9
+ c_input
10
+ ]
11
+ };
@@ -0,0 +1,5 @@
1
+ <div class="o-input-group {{ o_input_group_class }}">
2
+ {% for item in o_input_group_items %}
3
+ {% include "@larva/components/c-input/c-input.twig" with item %}
4
+ {% endfor %}
5
+ </div>
@@ -1,3 +1,3 @@
1
- # Nav
1
+ o-nav is an object with a `nav` element containing an unordered list with list items in a for loop that contain an instance of `c-link`. It contains an optional `h4` list title. o-nav is useful for menus with several items, and the ability to apply utilities to all `li`s inside the loop with a single key can useful.
2
2
 
3
- The Nav object is an HTML pattern with a `nav` element containing an unordered list, and an optional `h4` list title.
3
+ In general, o-nav should be used for internal site links. It can be adapted to work with the JS pattern `MobileHeightToggle`. See the footer-menus module for an example.
@@ -1,8 +1,8 @@
1
- const path = require( 'path' );
2
- const clone = require( '../../../larva/lib/utils/clonePatternData' );// This should be in this repo, probably
3
- const o_nav = clone( path.resolve( __dirname, '../../objects/o-nav/o-nav.prototype' ) );
1
+ const clonedeep = require( 'lodash.clonedeep' );
4
2
 
5
- o_nav.o_nav_classes = 'pmc-u-flex';
6
- o_nav.o_nav_list_classes += ' pmc-u-flex pmc-a-space-children-horizontal pmc-a-space-children--1 pmc-u-align-items-center pmc-u-font-family-primary pmc-u-a-unstyle-list';
3
+ const o_nav = clonedeep( require( '../../objects/o-nav/o-nav.prototype' ) );
7
4
 
8
- module.exports = o_nav;
5
+ o_nav.o_nav_classes = 'lrv-u-flex';
6
+ o_nav.o_nav_list_classes += ' lrv-u-flex lrv-a-space-children-horizontal lrv-a-space-children--1 lrv-u-align-items-center lrv-u-a-unstyle-list';
7
+
8
+ module.exports = o_nav;
@@ -1,19 +1,23 @@
1
- const path = require( 'path' );
2
- const clone = require( '../../../larva/lib/utils/clonePatternData' );// This should be in this repo, probably
3
- const c_link = path.resolve( __dirname, '../../components/c-link/c-link.prototype' );
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+ const c_link_prototype = require( '../../components/c-link/c-link.prototype' );
4
3
 
5
4
  const o_nav_list_items = [
6
- clone( c_link ),
7
- clone( c_link ),
8
- clone( c_link )
5
+ clonedeep( c_link_prototype ),
6
+ clonedeep( c_link_prototype ),
7
+ clonedeep( c_link_prototype )
9
8
  ];
10
9
 
11
10
  module.exports = {
12
- "modifier_class": "",
13
- "o_nav_classes": "",
14
- "o_nav_title_text": "",
15
- "o_nav_title_classes": "",
16
- "o_nav_list_classes" : "pmc-a-unstyle-list",
17
- "o_nav_list_item_classes": "",
18
- "o_nav_list_items": o_nav_list_items
11
+ modifier_class: '',
12
+ o_nav_classes: '',
13
+ o_nav_title_text: '',
14
+ o_nav_title_id_attr: '',
15
+ o_nav_title_classes: '',
16
+ o_nav_aria_labelledby_attr: '',
17
+ o_nav_screen_reader_id_attr: 'optional-screen-reader',
18
+ o_nav_screen_reader_text: 'optional screen reader',
19
+ o_nav_list_classes: 'lrv-a-unstyle-list',
20
+ o_nav_list_item_classes: '',
21
+ o_nav_list_items: o_nav_list_items,
22
+ o_nav_list_labelledby_attr: ''
19
23
  };
@@ -1,10 +1,36 @@
1
- <nav class="o-nav {{ modifier_class }} {{ o_nav_classes }}">
1
+ {% if o_nav_screen_reader_text %}
2
+ <h2 id="{{ o_nav_screen_reader_id_attr }}" class="lrv-a-screen-reader-only">
3
+ {{ o_nav_screen_reader_text }}
4
+ </h2>
5
+ {% endif %}
6
+ <nav class="o-nav {{ modifier_class }} {{ o_nav_classes }}" data-dropdown="{{ o_nav_data_attributes }}"
7
+ {% if o_nav_title_id_attr %}
8
+ aria-label="{{ o_nav_title_id_attr }}"
9
+ {% endif %}
10
+ {% if o_nav_aria_labelledby_attr %}
11
+ aria-labelledby="{{ o_nav_aria_labelledby_attr }}"
12
+ {% endif %}
13
+ >
2
14
 
3
15
  {% if o_nav_title_text %}
4
- <h4 id="{{ o_nav_title_id_attr }}" class="o-nav__title {{ o_nav_title_classes }}">{{ o_nav_title_text }}</h4>
16
+ {% if o_nav_title_outer %}
17
+ <div class="o-nav__title-outer {{ o_nav_title_outer_classes }}">
18
+ {% endif %}
19
+ {% if o_nav_tag_text %}
20
+ <{{ o_nav_tag_text }} id="{{ o_nav_title_id_attr }}" class="o-nav__title {{ o_nav_title_classes }}">{{ o_nav_title_text }}</{{ o_nav_tag_text }}>
21
+ {% else %}
22
+ <h4 id="{{ o_nav_title_id_attr }}" class="o-nav__title {{ o_nav_title_classes }}">{{ o_nav_title_text }}</h4>
23
+ {% endif %}
24
+ {% if o_nav_title_outer %}
25
+ </div>
26
+ {% endif %}
5
27
  {% endif %}
6
28
 
7
- <ul class="o-nav__list {{ o_nav_list_classes }}" aria-labelledby="{{ o_nav_title_id_attr }}">
29
+ <ul class="o-nav__list {{ o_nav_list_classes }}"
30
+ {% if o_nav_list_labelledby_attr %}
31
+ aria-labelledby="{{ o_nav_list_labelledby_attr }}"
32
+ {% endif %}
33
+ >
8
34
  {% for item in o_nav_list_items %}
9
35
  <li class="o-nav__list-item {{ o_nav_list_item_classes }}">
10
36
  {% include "@larva/components/c-link/c-link.twig" with item %}
@@ -0,0 +1,17 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_button = clonedeep( require( '../../components/c-button/c-button.prototype' ) );
4
+ const c_select_option = clonedeep( require( '../../components/c-select-option/c-select-option.prototype' ) );
5
+
6
+ c_button.c_button_text = 'Click Me';
7
+
8
+ module.exports = {
9
+ o_select_nav_classes: '',
10
+ o_select_nav_select_classes: '',
11
+ c_button: c_button,
12
+ o_select_nav_options: [
13
+ c_select_option,
14
+ c_select_option,
15
+ c_select_option
16
+ ]
17
+ };
@@ -0,0 +1,9 @@
1
+ <div class="o-select-nav js-SelectNav js-SelectNav-redirect lrv-a-glue-parent {{ o_select_nav_classes }}">
2
+ {% include "@larva/components/c-button/c-button.twig" with c_button %}
3
+
4
+ <select class="o-select-nav__select js-SelectNav-select lrv-u-cursor-pointer lrv-a-glue lrv-a-glue--t-0 lrv-a-glue--l-0 lrv-u-width-100p lrv-u-height-100p lrv-u-opacity-0 {{ o_select_nav_select_classes }}">
5
+ {% for item in o_select_nav_options %}
6
+ {% include "@larva/components/c-select-option/c-select-option.twig" with item %}
7
+ {% endfor %}
8
+ </select>
9
+ </div>
@@ -1,33 +1,23 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_icon_prototype = require( '../../components/c-icon/c-icon.prototype' );
4
+
5
+ const social = [ 'instagram', 'pinit', 'twitter', 'facebook', 'youtube' ];
6
+ const o_social_list_icons = [];
7
+
8
+ for ( let i = 0; i < social.length; i++ ) {
9
+ let c_icon = clonedeep( c_icon_prototype );
10
+
11
+ c_icon.c_icon_url = '#';
12
+ c_icon.c_icon_name = social[i];
13
+ c_icon.c_icon_link_classes += ' lrv-u-display-block lrv-u-border-radius-50p lrv-u-color-grey lrv-u-margin-lr-050 lrv-u-padding-a-050 lrv-u-background-color-white lrv-u-color-grey-dark:hover';
14
+ c_icon.c_icon_rel_name = 'noopener noreferrer';
15
+
16
+ o_social_list_icons.push( c_icon );
17
+ }
18
+
1
19
  module.exports = {
2
- "o_social_list_classes": "pmc-a-unstyle-list",
3
- "o_social_list_icons": [
4
- {
5
- "c_icon_classes": "c-icon--bubble",
6
- "c_icon_name": "facebook",
7
- "c_icon_url": "https://www.facebook.com/deadlinehollywood/",
8
- "c_icon_link_classes": "pmc-u-background-white pmc-u-padding-a-1 pmc-u-color-brand-red u-display-block u-border-radius-50p u-color-brand-red-dark:hover",
9
- "c_icon_rel_name": "noopener noreferrer"
10
- },
11
- {
12
- "c_icon_classes": "c-icon--bubble",
13
- "c_icon_name": "twitter",
14
- "c_icon_url": "https://twitter.com/DEADLINE",
15
- "c_icon_link_classes": "pmc-u-background-white pmc-u-padding-a-1 pmc-u-color-brand-red u-display-block u-border-radius-50p u-color-brand-red-dark:hover",
16
- "c_icon_rel_name": "noopener noreferrer"
17
- },
18
- {
19
- "c_icon_classes": "c-icon--bubble",
20
- "c_icon_name": "youtube",
21
- "c_icon_url": "https://www.youtube.com/user/deadlinecom/",
22
- "c_icon_link_classes": "pmc-u-background-white pmc-u-padding-a-1 pmc-u-color-brand-red u-display-block u-border-radius-50p u-color-brand-red-dark:hover",
23
- "c_icon_rel_name": "noopener noreferrer"
24
- },
25
- {
26
- "c_icon_classes": "c-icon--bubble",
27
- "c_icon_name": "instagram",
28
- "c_icon_url": "https://www.instagram.com/deadline/",
29
- "c_icon_link_classes": "pmc-u-background-white pmc-u-padding-a-1 pmc-u-color-brand-red u-display-block u-border-radius-50p u-color-brand-red-dark:hover",
30
- "c_icon_rel_name": "noopener noreferrer"
31
- }
32
- ]
20
+ o_social_list_classes: 'lrv-a-unstyle-list',
21
+ o_social_list_labelledby_attr: '',
22
+ o_social_list_icons: o_social_list_icons
33
23
  };
@@ -1,7 +1,15 @@
1
- <ul class="o-social-list {{ modifier_class }} {{ o_social_list_classes }}">
1
+ <ul class="o-social-list {{ modifier_class }} {{ o_social_list_classes }}"
2
+ {% if o_social_list_labelledby_attr %}
3
+ aria-labelledby="{{ o_social_list_labelledby_attr }}"
4
+ {% endif %}
5
+ >
2
6
  {% for item in o_social_list_icons %}
3
7
  <li class="o-social-list__item {{ o_social_list_item_classes }}">
4
- {% include "@larva/components/c-icon/c-icon.twig" with item %}
8
+ {% if o_social_list_is_icon_button %}
9
+ {% include "@larva/objects/o-icon-button/o-icon-button.twig" with item %}
10
+ {% else %}
11
+ {% include "@larva/components/c-icon/c-icon.twig" with item %}
12
+ {% endif %}
5
13
  </li>
6
14
  {% endfor %}
7
15
  </ul>
@@ -0,0 +1 @@
1
+ `o-span-group` consists of a `div` containing an interderminate numer of `c-span`s. This can be useful for arbitrary decorative borders around single word links, or similar.
@@ -0,0 +1,11 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_span = clonedeep( require( '../../components/c-span/c-span.prototype' ) );
4
+
5
+ module.exports = {
6
+ o_span_group_classes: '',
7
+ o_span_group_items: [
8
+ c_span,
9
+ c_span
10
+ ]
11
+ };
@@ -0,0 +1,5 @@
1
+ <div class="o-span-group {{ o_span_group_classes }}">
2
+ {% for item in o_span_group_items %}
3
+ {% include "@larva/components/c-span/c-span.twig" with item %}
4
+ {% endfor %}
5
+ </div>
@@ -1,11 +1,10 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_lazy_image = clonedeep( require( '../../components/c-lazy-image/c-lazy-image.prototype' ) );
4
+
1
5
  module.exports = {
2
- "o_sponsored_by_classes": "u-flex u-align-items-center",
3
- "o_sponsored_by_title_classes": "pmc-u-color-grey-medium pmc-u-font-family-georgia pmc-u-font-size-10 pmc-u-margin-r-050",
4
- "o_sponsored_by_text": "Sponsored by",
5
- "o_figure": {
6
- "o_figure_classes": "u-width-50",
7
- "o_figure_permalink_url": "#",
8
- "o_figure_alt_text": "Thumbnail image",
9
- "o_figure_image_url": "https://picsum.photos/57/11"
10
- }
11
- }
6
+ o_sponsored_by_classes: 'lrv-u-flex lrv-u-align-items-center',
7
+ o_sponsored_by_title_classes: 'lrv-u-font-size-14 lrv-u-margin-r-050 lrv-u-font-style-italic',
8
+ o_sponsored_by_text: 'Sponsored by',
9
+ c_lazy_image: c_lazy_image
10
+ };
@@ -1,7 +1,7 @@
1
1
  <div class="o-sponsored-by {{ modifier_class }} {{ o_sponsored_by_classes }}">
2
2
  <span class="{{ o_sponsored_by_title_classes }}">{{ o_sponsored_by_text }}</span>
3
3
 
4
- {% if o_figure %}
5
- {% include "@larva/objects/o-figure/o-figure.twig" with o_figure %}
4
+ {% if c_lazy_image %}
5
+ {% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
6
6
  {% endif %}
7
7
  </div>