@penskemediacorp/larva-patterns 1.7.0-alpha.0 → 1.7.2

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 (347) 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 +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-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/footer/README.md +15 -0
  134. package/modules/footer/footer.prototype.js +14 -0
  135. package/modules/footer/footer.twig +22 -0
  136. package/modules/footer-button-list/footer-button-list.prototype.js +43 -0
  137. package/modules/footer-button-list/footer-button-list.twig +13 -0
  138. package/modules/footer-magazine-image/footer-magazine-image.prototype.js +15 -0
  139. package/modules/footer-magazine-image/footer-magazine-image.twig +3 -0
  140. package/modules/footer-menus/README.md +3 -0
  141. package/modules/footer-menus/footer-menus.prototype.js +9 -9
  142. package/modules/footer-menus/footer-menus.twig +2 -2
  143. package/modules/footer-newsletter/README.md +5 -0
  144. package/modules/footer-newsletter/footer-newsletter.prototype.js +21 -0
  145. package/modules/footer-newsletter/footer-newsletter.twig +5 -0
  146. package/modules/footer-social/README.md +3 -0
  147. package/modules/footer-social/footer-social.prototype.js +27 -20
  148. package/modules/footer-social/footer-social.twig +2 -2
  149. package/modules/footer-tip/footer-tip.prototype.js +21 -13
  150. package/modules/footer-tip/footer-tip.twig +2 -2
  151. package/modules/header/header.article.js +39 -0
  152. package/modules/header/header.prototype.js +90 -0
  153. package/modules/header/header.twig +74 -0
  154. package/modules/header-menu/header-menu.prototype.js +26 -0
  155. package/modules/header-menu/header-menu.twig +3 -0
  156. package/modules/header-sticky/header-sticky.article.js +43 -0
  157. package/modules/header-sticky/header-sticky.prototype.js +39 -0
  158. package/modules/header-sticky/header-sticky.twig +30 -0
  159. package/modules/heading/heading.h1.js +8 -0
  160. package/modules/heading/heading.h2.js +8 -0
  161. package/modules/heading/heading.h3.js +8 -0
  162. package/modules/heading/heading.h4.js +7 -0
  163. package/modules/heading/heading.h5.js +7 -0
  164. package/modules/heading/heading.h6.js +7 -0
  165. package/modules/heading/heading.prototype.js +9 -0
  166. package/modules/heading/heading.twig +3 -0
  167. package/modules/hero-image-story/hero-image-story.prototype.js +41 -0
  168. package/modules/hero-image-story/hero-image-story.twig +8 -0
  169. package/modules/injected-related-content/injected-related-content.prototype.js +61 -0
  170. package/modules/injected-related-content/injected-related-content.twig +23 -0
  171. package/modules/linked-gallery/linked-gallery.prototype.js +53 -0
  172. package/modules/linked-gallery/linked-gallery.twig +22 -0
  173. package/modules/list/list.ordered.js +7 -0
  174. package/modules/list/list.prototype.js +57 -0
  175. package/modules/list/list.twig +11 -0
  176. package/modules/listicle-item/listicle-item.prototype.js +11 -0
  177. package/modules/listicle-item/listicle-item.twig +3 -0
  178. package/modules/mega-menu/mega-menu.prototype.js +16 -0
  179. package/modules/mega-menu/mega-menu.twig +10 -0
  180. package/modules/mega-menu-content/mega-menu-content.prototype.js +10 -0
  181. package/modules/mega-menu-content/mega-menu-content.twig +5 -0
  182. package/modules/mega-menu-footer/mega-menu-footer.prototype.js +41 -0
  183. package/modules/mega-menu-footer/mega-menu-footer.twig +19 -0
  184. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.prototype.js +20 -0
  185. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.twig +4 -0
  186. package/modules/mega-menu-item/mega-menu-item.prototype.js +23 -0
  187. package/modules/mega-menu-item/mega-menu-item.twig +13 -0
  188. package/modules/more-stories-button/more-stories-button.profile.js +12 -0
  189. package/modules/more-stories-button/more-stories-button.prototype.js +29 -0
  190. package/modules/more-stories-button/more-stories-button.twig +13 -0
  191. package/modules/newsletter/newsletter.prototype.js +46 -0
  192. package/modules/newsletter/newsletter.twig +21 -0
  193. package/modules/newsletter-cta/newsletter-cta.prototype.js +21 -0
  194. package/modules/newsletter-cta/newsletter-cta.twig +22 -0
  195. package/modules/newswire/newswire.prototype.js +46 -0
  196. package/modules/newswire/newswire.twig +16 -0
  197. package/modules/page-404/page-404.prototype.js +44 -0
  198. package/modules/page-404/page-404.twig +32 -0
  199. package/modules/paragraph/paragraph.narrow.js +8 -0
  200. package/modules/paragraph/paragraph.prototype.js +8 -0
  201. package/modules/paragraph/paragraph.twig +3 -0
  202. package/modules/pmc-footer/pmc-footer.prototype.js +26 -24
  203. package/modules/pmc-footer/pmc-footer.twig +11 -9
  204. package/modules/post-content-image/post-content-image.prototype.js +14 -0
  205. package/modules/post-content-image/post-content-image.twig +3 -0
  206. package/modules/production-credits/production-credits.prototype.js +5 -0
  207. package/modules/production-credits/production-credits.twig +4 -0
  208. package/modules/profile-blurb/profile-blurb.card.js +28 -0
  209. package/modules/profile-blurb/profile-blurb.prototype.js +45 -0
  210. package/modules/profile-blurb/profile-blurb.twig +37 -0
  211. package/modules/profile-body/profile-body.prototype.js +20 -0
  212. package/modules/profile-body/profile-body.twig +15 -0
  213. package/modules/profile-browse-by/profile-browse-by.prototype.js +29 -0
  214. package/modules/profile-browse-by/profile-browse-by.twig +6 -0
  215. package/modules/profile-card-list/profile-card-list.prototype.js +25 -0
  216. package/modules/profile-card-list/profile-card-list.twig +7 -0
  217. package/modules/profile-filter/profile-filter.prototype.js +26 -0
  218. package/modules/profile-filter/profile-filter.twig +15 -0
  219. package/modules/profile-gallery/profile-gallery.prototype.js +28 -0
  220. package/modules/profile-gallery/profile-gallery.twig +13 -0
  221. package/modules/profile-header/profile-header.prototype.js +29 -0
  222. package/modules/profile-header/profile-header.twig +27 -0
  223. package/modules/profile-highlights/profile-highlights.prototype.js +22 -0
  224. package/modules/profile-highlights/profile-highlights.twig +17 -0
  225. package/modules/profile-landing-header/profile-landing-header.prototype.js +17 -0
  226. package/modules/profile-landing-header/profile-landing-header.twig +12 -0
  227. package/modules/profile-landing-river/profile-landing-river.prototype.js +21 -0
  228. package/modules/profile-landing-river/profile-landing-river.twig +13 -0
  229. package/modules/profile-related-stories/profile-related-stories.prototype.js +33 -0
  230. package/modules/profile-related-stories/profile-related-stories.twig +9 -0
  231. package/modules/pullquote/pullquote.prototype.js +8 -0
  232. package/modules/pullquote/pullquote.twig +3 -0
  233. package/modules/read-next/read-next.prototype.js +20 -0
  234. package/modules/read-next/read-next.twig +4 -0
  235. package/modules/search-form/search-form.prototype.js +8 -0
  236. package/modules/search-form/search-form.twig +11 -0
  237. package/modules/secondary-stories/secondary-stories.prototype.js +119 -0
  238. package/modules/secondary-stories/secondary-stories.twig +22 -0
  239. package/modules/separator/separator.prototype.js +4 -0
  240. package/modules/separator/separator.thick.js +7 -0
  241. package/modules/separator/separator.twig +1 -0
  242. package/modules/separator/separator.wide-thick.js +7 -0
  243. package/modules/separator/separator.wide.js +7 -0
  244. package/modules/social-share/social-share.prototype.js +43 -0
  245. package/modules/social-share/social-share.twig +30 -0
  246. package/modules/special-coverage/special-coverage.prototype.js +47 -0
  247. package/modules/special-coverage/special-coverage.twig +29 -0
  248. package/modules/story/story.borders.js +8 -0
  249. package/modules/story/story.center-vertical-borders.js +7 -0
  250. package/modules/story/story.center-vertical.js +11 -0
  251. package/modules/story/story.prototype.js +43 -0
  252. package/modules/story/story.right-borders.js +9 -0
  253. package/modules/story/story.right.js +14 -0
  254. package/modules/story/story.story-arc.js +9 -0
  255. package/modules/story/story.twig +88 -0
  256. package/modules/story/story.vertical-borders.js +7 -0
  257. package/modules/story/story.vertical.js +11 -0
  258. package/modules/story-arc-stories/story-arc-stories.prototype.js +21 -0
  259. package/modules/story-arc-stories/story-arc-stories.twig +14 -0
  260. package/modules/story-featured-quote/story-featured-quote.prototype.js +28 -0
  261. package/modules/story-featured-quote/story-featured-quote.twig +27 -0
  262. package/modules/story-grid/story-grid.prototype.js +24 -0
  263. package/modules/story-grid/story-grid.river.js +15 -0
  264. package/modules/story-grid/story-grid.twig +17 -0
  265. package/modules/sub-header/sub-header.prototype.js +8 -0
  266. package/modules/sub-header/sub-header.twig +7 -0
  267. package/modules/top-stories/top-stories.prototype.js +41 -0
  268. package/modules/top-stories/top-stories.twig +12 -0
  269. package/modules/top-stories/top-stories.xl.js +14 -0
  270. package/modules/vlanding-playlist/README.md +1 -0
  271. package/modules/vlanding-playlist/vlanding-playlist.prototype.js +34 -0
  272. package/modules/vlanding-playlist/vlanding-playlist.twig +20 -0
  273. package/modules/vlanding-video-card/README.md +1 -0
  274. package/modules/vlanding-video-card/vlanding-video-card.prototype.js +25 -0
  275. package/modules/vlanding-video-card/vlanding-video-card.twig +56 -0
  276. package/modules/vlanding-video-showcase/README.md +12 -0
  277. package/modules/vlanding-video-showcase/vlanding-video-showcase.prototype.js +68 -0
  278. package/modules/vlanding-video-showcase/vlanding-video-showcase.twig +46 -0
  279. package/objects/o-account-menu/o-account-menu.prototype.js +35 -0
  280. package/objects/o-account-menu/o-account-menu.twig +25 -0
  281. package/objects/o-author/o-author.prototype.js +13 -0
  282. package/objects/o-author/o-author.twig +13 -0
  283. package/objects/o-card/README.md +1 -0
  284. package/objects/o-card/o-card.prototype.js +25 -0
  285. package/objects/o-card/o-card.twig +75 -0
  286. package/objects/o-card-list/README.md +3 -0
  287. package/objects/o-card-list/o-card-list.prototype.js +13 -0
  288. package/objects/o-card-list/o-card-list.twig +7 -0
  289. package/objects/o-checkbox-input-list/o-checkbox-input-list.prototype.js +16 -0
  290. package/objects/o-checkbox-input-list/o-checkbox-input-list.twig +15 -0
  291. package/objects/o-collection-item/o-collection-item.floated.js +8 -0
  292. package/objects/o-collection-item/o-collection-item.prototype.js +11 -0
  293. package/objects/o-collection-item/o-collection-item.twig +5 -0
  294. package/objects/o-email-capture-form/README.md +11 -0
  295. package/objects/o-email-capture-form/o-email-capture-form.minimal.js +15 -0
  296. package/objects/o-email-capture-form/o-email-capture-form.prototype.js +17 -0
  297. package/objects/o-email-capture-form/o-email-capture-form.twig +16 -0
  298. package/objects/o-figure/README.md +17 -0
  299. package/objects/o-figure/o-figure.prototype.js +15 -7
  300. package/objects/o-figure/o-figure.twig +22 -45
  301. package/objects/o-header/o-header.prototype.js +12 -10
  302. package/objects/o-header/o-header.twig +5 -1
  303. package/objects/o-header-buttons/o-header-buttons.column.js +10 -0
  304. package/objects/o-header-buttons/o-header-buttons.prototype.js +41 -0
  305. package/objects/o-header-buttons/o-header-buttons.twig +42 -0
  306. package/objects/o-icon-button/README.md +5 -0
  307. package/objects/o-icon-button/o-icon-button.prototype.js +21 -0
  308. package/objects/o-icon-button/o-icon-button.search.js +9 -0
  309. package/objects/o-icon-button/o-icon-button.twig +29 -0
  310. package/objects/o-indicator/README.md +1 -0
  311. package/objects/o-indicator/o-indicator.photos.js +12 -0
  312. package/objects/o-indicator/o-indicator.prototype.js +8 -0
  313. package/objects/o-indicator/o-indicator.twig +9 -0
  314. package/objects/o-input-group/o-input-group.prototype.js +11 -0
  315. package/objects/o-input-group/o-input-group.twig +5 -0
  316. package/objects/o-nav/README.md +2 -2
  317. package/objects/o-nav/o-nav.horizontal.js +6 -6
  318. package/objects/o-nav/o-nav.prototype.js +17 -13
  319. package/objects/o-nav/o-nav.twig +29 -3
  320. package/objects/o-select-nav/o-select-nav.prototype.js +17 -0
  321. package/objects/o-select-nav/o-select-nav.twig +9 -0
  322. package/objects/o-social-list/o-social-list.prototype.js +21 -31
  323. package/objects/o-social-list/o-social-list.twig +10 -2
  324. package/objects/o-span-group/README.md +1 -0
  325. package/objects/o-span-group/o-span-group.prototype.js +11 -0
  326. package/objects/o-span-group/o-span-group.twig +5 -0
  327. package/objects/o-sponsored-by/o-sponsored-by.prototype.js +9 -10
  328. package/objects/o-sponsored-by/o-sponsored-by.twig +2 -2
  329. package/objects/o-story-arc-item/o-story-arc-item.prototype.js +29 -0
  330. package/objects/o-story-arc-item/o-story-arc-item.twig +9 -0
  331. package/objects/o-sub-header/o-sub-header.prototype.js +39 -0
  332. package/objects/o-sub-header/o-sub-header.twig +9 -0
  333. package/objects/o-tease/o-tease.prototype.js +24 -20
  334. package/objects/o-tease/o-tease.twig +7 -3
  335. package/objects/o-tease-list/o-tease-list.prototype.js +12 -24
  336. package/objects/o-tease-list/o-tease-list.twig +5 -1
  337. package/package.json +6 -9
  338. package/pattern.html +61 -9
  339. package/style-guide/colors.html +33 -0
  340. package/style-guide/fonts.html +22 -0
  341. package/style-guide/index.html +14 -0
  342. package/components/c-button/c-button.scss +0 -33
  343. package/components/c-tagline/c-tagline.json +0 -4
  344. package/components/c-tagline/c-tagline.scss +0 -19
  345. package/objects/o-figure/o-figure.scss +0 -46
  346. package/objects/o-tease/o-tease.scss +0 -30
  347. package/scratch-pad.css +0 -3
@@ -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>
@@ -0,0 +1,29 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_timestamp_prototype = require( '../../components/c-timestamp/c-timestamp.prototype' );
4
+ const o_tease_prototype = require( '../o-tease/o-tease.prototype.js' );
5
+
6
+ const c_timestamp = clonedeep( c_timestamp_prototype );
7
+ const o_tease = clonedeep( o_tease_prototype );
8
+
9
+ c_timestamp.c_timestamp_classes = "lrv-u-font-family-primary lrv-u-background-color-body lrv-u-font-weight-bold lrv-u-font-size-12 lrv-u-color-brand-primary";
10
+
11
+ o_tease.c_tagline = false;
12
+ o_tease.c_heading = false;
13
+ o_tease.c_button = false;
14
+ o_tease.c_span = false;
15
+
16
+ o_tease.o_tease_classes += ' u-align-items-flex-start@mobile-max u-flex-direction-row-reverse';
17
+ o_tease.o_tease_secondary_classes += ' lrv-u-margin-r-1 u-width-65';
18
+
19
+ o_tease.c_lazy_image.c_lazy_image_img_classes += ' lrv-u-border-radius-5 u-box-shadow-light';
20
+ o_tease.c_lazy_image.c_lazy_image_crop_class = 'lrv-a-crop-1x1';
21
+
22
+ o_tease.c_title.c_title_text = 'Art Basel Plans ‘Interventions’ for 50th Anniversary, with Kasper König in Charge';
23
+ o_tease.c_title.c_title_classes = 'lrv-u-font-family-primary lrv-u-font-size-14 lrv-u-font-size-16@desktop u-color-black lrv-u-font-weight-normal';
24
+
25
+ module.exports = {
26
+ o_story_arc_item_classes: '',
27
+ c_timestamp: c_timestamp,
28
+ o_tease: o_tease,
29
+ };
@@ -0,0 +1,9 @@
1
+ <div class="{{ o_story_arc_item_classes }}">
2
+ <span class="a-span-sandwich lrv-u-margin-b-1">
3
+ {% if c_timestamp %}
4
+ {% include "@larva/components/c-timestamp/c-timestamp.twig" with c_timestamp %}
5
+ {% endif %}
6
+ </span>
7
+
8
+ {% include "@larva/objects/o-tease/o-tease.twig" with o_tease %}
9
+ </div>
@@ -0,0 +1,39 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_heading_prototype = require( '@penskemediacorp/larva-patterns/components/c-heading/c-heading.prototype.js' );
4
+ const c_heading = clonedeep( c_heading_prototype );
5
+
6
+ const o_nav_prototype = require( '@penskemediacorp/larva-patterns/objects/o-nav/o-nav.prototype' );
7
+ const o_nav = clonedeep( o_nav_prototype );
8
+
9
+ const o_nav_items_c_links__prototype = require( '@penskemediacorp/larva-patterns/components/c-link/c-link.prototype.js' );
10
+
11
+ c_heading.c_heading_text = 'Market';
12
+ c_heading.c_heading_classes = 'lrv-u-font-family-secondary lrv-u-font-size-56@desktop-xl lrv-u-font-size-50 lrv-u-margin-b-050@mobile-max lrv-u-line-height-small lrv-u-text-align-center@mobile-max lrv-u-margin-r-2@desktop';
13
+ c_heading.c_heading_is_primary_heading = true;
14
+
15
+ o_nav.o_nav_list_items = [];
16
+ const menuLinks = [ 'View All', 'Tag Title', 'Tag Title', 'Tag Title', 'Tag Title', 'Tag Title' ];
17
+
18
+ for (let i = 0; i < menuLinks.length; i++) {
19
+ let c_link = clonedeep( o_nav_items_c_links__prototype );
20
+
21
+ c_link.c_link_text = menuLinks[i];
22
+ c_link.c_link_classes += ' c_link_classes lrv-u-font-family-primary lrv-u-color-grey-dark:hover';
23
+
24
+ o_nav.o_nav_list_items.push( c_link );
25
+ }
26
+
27
+ const mobileDropdownUtilities = ' lrv-u-border-a-1@mobile-max lrv-u-justify-content-center lrv-u-margin-b-050@mobile-max lrv-u-border-color-grey-light';
28
+
29
+ o_nav.o_nav_classes = 'lrv-u-flex@desktop lrv-u-align-items-center lrv-u-text-align-center lrv-js-MobileHeightToggle';
30
+ o_nav.o_nav_title_text = 'View Categories';
31
+ o_nav.o_nav_title_classes = 'lrv-a-hidden@desktop lrv-js-MobileHeightToggle-trigger lrv-a-icon-after lrv-a-icon-arrow-down lrv-u-font-size-16 lrv-u-font-family-primary lrv-u-font-weight-normal lrv-u-padding-tb-050 lrv-u-width-100p@mobile-max ' + mobileDropdownUtilities;
32
+ o_nav.o_nav_list_classes += ' lrv-js-MobileHeightToggle-target lrv-u-flex lrv-u-flex-direction-column@mobile-max lrv-u-line-height-large lrv-u-flex-wrap-wrap lrv-a-space-children--1 lrv-a-space-children-horizontal@tablet';
33
+ o_nav.o_nav_list_item_classes = mobileDropdownUtilities;
34
+
35
+ module.exports = {
36
+ o_sub_header_classes: 'lrv-u-flex u-align-items-flex-end@tablet lrv-u-flex-direction-column@mobile-max',
37
+ c_heading: c_heading,
38
+ o_nav: o_nav,
39
+ };
@@ -0,0 +1,9 @@
1
+ <header class="o-sub-header // {{ o_sub_header_classes }}">
2
+ {% if c_heading %}
3
+ {% include "@larva/components/c-heading/c-heading.twig" with c_heading %}
4
+ {% endif %}
5
+
6
+ {% if o_nav %}
7
+ {% include "@larva/objects/o-nav/o-nav.twig" with o_nav %}
8
+ {% endif %}
9
+ </header>