@penskemediacorp/larva-patterns 1.2.0-alpha.0 → 1.3.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 (381) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -6
  3. package/__tests__/css/css.html +9 -0
  4. package/__tests__/css/css.prototype.js +1 -0
  5. package/__tests__/hub/hub.html +25 -0
  6. package/__tests__/hub/hub.prototype.js +30 -0
  7. package/__tests__/profile/profile.html +29 -0
  8. package/__tests__/profile/profile.prototype.js +17 -0
  9. package/__tests__/profile-index/profile-index.html +9 -0
  10. package/__tests__/profile-index/profile-index.prototype.js +6 -0
  11. package/__tests__/vlanding/vlanding.html +7 -0
  12. package/__tests__/vlanding/vlanding.prototype.js +11 -0
  13. package/_data/brands.json +40 -0
  14. package/_templates/pattern-nav.html +52 -0
  15. package/algorithms/a-carousel-grid/README.md +5 -0
  16. package/algorithms/a-carousel-grid/a-carousel-grid.html +25 -0
  17. package/algorithms/a-carousel-grid/a-carousel-grid.overlay.js +12 -0
  18. package/algorithms/a-carousel-grid/a-carousel-grid.prototype.js +0 -0
  19. package/algorithms/a-icon/a-icon.html +1 -0
  20. package/algorithms/a-icon/a-icon.prototype.js +0 -0
  21. package/base.html +73 -0
  22. package/components/c-button/README.md +3 -0
  23. package/components/c-button/c-button.black.js +7 -0
  24. package/components/c-button/c-button.brand-basic.js +8 -0
  25. package/components/c-button/c-button.ghost.js +10 -0
  26. package/components/c-button/c-button.prototype.js +11 -0
  27. package/components/c-button/c-button.stripped.js +8 -0
  28. package/components/c-button/c-button.twig +19 -0
  29. package/components/c-checkbox-input/c-checkbox-input.prototype.js +6 -0
  30. package/components/c-checkbox-input/c-checkbox-input.twig +4 -0
  31. package/components/c-dek/README.md +3 -0
  32. package/components/c-dek/c-dek.prototype.js +5 -0
  33. package/components/c-dek/c-dek.twig +9 -0
  34. package/components/c-email-field/README.md +0 -0
  35. package/components/c-email-field/c-email-field.ghost.js +10 -0
  36. package/components/c-email-field/c-email-field.prototype.js +8 -0
  37. package/components/c-email-field/c-email-field.twig +4 -0
  38. package/components/c-figcaption/c-figcaption.prototype.js +9 -0
  39. package/components/c-figcaption/c-figcaption.twig +16 -0
  40. package/components/c-heading/README.md +4 -0
  41. package/components/c-heading/c-heading.prototype.js +10 -0
  42. package/components/c-heading/c-heading.twig +29 -0
  43. package/components/c-hidden-field/c-hidden-field.prototype.js +5 -0
  44. package/components/c-hidden-field/c-hidden-field.twig +1 -0
  45. package/components/c-icon/c-icon.full.js +8 -0
  46. package/components/c-icon/c-icon.prototype.js +12 -0
  47. package/components/c-icon/c-icon.twig +34 -0
  48. package/components/c-input/c-input.prototype.js +8 -0
  49. package/components/c-input/c-input.twig +14 -0
  50. package/components/c-label/README.md +12 -0
  51. package/components/c-label/c-label.prototype.js +7 -0
  52. package/components/c-label/c-label.twig +19 -0
  53. package/components/c-lazy-image/README.md +35 -0
  54. package/components/c-lazy-image/c-lazy-image.prototype.js +17 -0
  55. package/components/c-lazy-image/c-lazy-image.twig +31 -0
  56. package/components/c-link/README.md +1 -0
  57. package/components/c-link/c-link.prototype.js +9 -0
  58. package/components/c-link/c-link.twig +13 -0
  59. package/components/c-logo/c-logo.prototype.js +7 -0
  60. package/components/c-logo/c-logo.twig +10 -0
  61. package/components/c-nav-link/c-nav-link.prototype.js +7 -0
  62. package/components/c-nav-link/c-nav-link.twig +10 -0
  63. package/components/c-play-badge/c-play-badge.prototype.js +3 -0
  64. package/components/c-play-badge/c-play-badge.twig +7 -0
  65. package/components/c-select-option/c-select-option.prototype.js +5 -0
  66. package/components/c-select-option/c-select-option.twig +5 -0
  67. package/{src/components/c-label/c-label.scss → components/c-span/README.md} +0 -19
  68. package/components/c-span/c-span.prototype.js +7 -0
  69. package/components/c-span/c-span.tag.js +7 -0
  70. package/components/c-span/c-span.twig +11 -0
  71. package/components/c-svg/c-svg.prototype.js +4 -0
  72. package/components/c-svg/c-svg.twig +3 -0
  73. package/components/c-tagline/README.md +3 -0
  74. package/components/c-tagline/c-tagline.prototype.js +4 -0
  75. package/{src/components → components}/c-tagline/c-tagline.twig +3 -3
  76. package/components/c-timestamp/c-timestamp.prototype.js +6 -0
  77. package/components/c-timestamp/c-timestamp.twig +9 -0
  78. package/components/c-title/README.md +7 -0
  79. package/components/c-title/c-title.prototype.js +9 -0
  80. package/{src/components → components}/c-title/c-title.twig +14 -2
  81. package/css.html +44 -0
  82. package/index.html +9 -0
  83. package/index.js +4 -0
  84. package/modules/age-gate/README.md +3 -0
  85. package/modules/age-gate/age-gate.prototype.js +68 -0
  86. package/modules/age-gate/age-gate.twig +37 -0
  87. package/modules/article-callout/article-callout.prototype.js +5 -0
  88. package/modules/article-callout/article-callout.twig +3 -0
  89. package/modules/article-excerpt/article-excerpt.prototype.js +4 -0
  90. package/modules/article-excerpt/article-excerpt.twig +1 -0
  91. package/modules/article-kicker/article-kicker.prototype.js +6 -0
  92. package/modules/article-kicker/article-kicker.twig +13 -0
  93. package/modules/article-tags/article-tags.prototype.js +24 -0
  94. package/modules/article-tags/article-tags.twig +3 -0
  95. package/modules/article-title/article-title.prototype.js +4 -0
  96. package/modules/article-title/article-title.twig +1 -0
  97. package/modules/author/author.prototype.js +43 -0
  98. package/modules/author/author.twig +38 -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 +11 -0
  104. package/modules/badge/badge.twig +3 -0
  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 +7 -0
  110. package/modules/breadcrumbs/breadcrumbs.twig +3 -0
  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 +29 -0
  127. package/modules/content-showcase/content-showcase.the-moth.js +31 -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 +18 -0
  142. package/modules/footer-menus/footer-menus.twig +5 -0
  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 +36 -0
  148. package/modules/footer-social/footer-social.twig +5 -0
  149. package/modules/footer-tip/footer-tip.prototype.js +23 -0
  150. package/modules/footer-tip/footer-tip.twig +5 -0
  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/list/list.ordered.js +7 -0
  172. package/modules/list/list.prototype.js +57 -0
  173. package/modules/list/list.twig +11 -0
  174. package/modules/listicle-item/listicle-item.prototype.js +11 -0
  175. package/modules/listicle-item/listicle-item.twig +3 -0
  176. package/modules/mega-menu/mega-menu.prototype.js +16 -0
  177. package/modules/mega-menu/mega-menu.twig +10 -0
  178. package/modules/mega-menu-content/mega-menu-content.prototype.js +10 -0
  179. package/modules/mega-menu-content/mega-menu-content.twig +5 -0
  180. package/modules/mega-menu-footer/mega-menu-footer.prototype.js +41 -0
  181. package/modules/mega-menu-footer/mega-menu-footer.twig +19 -0
  182. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.prototype.js +20 -0
  183. package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.twig +4 -0
  184. package/modules/mega-menu-item/mega-menu-item.prototype.js +23 -0
  185. package/modules/mega-menu-item/mega-menu-item.twig +13 -0
  186. package/modules/more-stories-button/more-stories-button.profile.js +12 -0
  187. package/modules/more-stories-button/more-stories-button.prototype.js +29 -0
  188. package/modules/more-stories-button/more-stories-button.twig +13 -0
  189. package/modules/newsletter/newsletter.prototype.js +46 -0
  190. package/modules/newsletter/newsletter.twig +21 -0
  191. package/modules/newsletter-cta/newsletter-cta.prototype.js +21 -0
  192. package/modules/newsletter-cta/newsletter-cta.twig +22 -0
  193. package/modules/newswire/newswire.prototype.js +46 -0
  194. package/modules/newswire/newswire.twig +16 -0
  195. package/modules/paragraph/paragraph.prototype.js +8 -0
  196. package/modules/paragraph/paragraph.twig +3 -0
  197. package/modules/pmc-footer/README.md +3 -0
  198. package/modules/pmc-footer/pmc-footer.prototype.js +47 -0
  199. package/modules/pmc-footer/pmc-footer.twig +17 -0
  200. package/modules/post-content-image/post-content-image.prototype.js +14 -0
  201. package/modules/post-content-image/post-content-image.twig +3 -0
  202. package/modules/profile-blurb/profile-blurb.card.js +28 -0
  203. package/modules/profile-blurb/profile-blurb.prototype.js +45 -0
  204. package/modules/profile-blurb/profile-blurb.twig +37 -0
  205. package/modules/profile-body/profile-body.prototype.js +20 -0
  206. package/modules/profile-body/profile-body.twig +15 -0
  207. package/modules/profile-browse-by/profile-browse-by.prototype.js +29 -0
  208. package/modules/profile-browse-by/profile-browse-by.twig +6 -0
  209. package/modules/profile-card-list/profile-card-list.prototype.js +25 -0
  210. package/modules/profile-card-list/profile-card-list.twig +7 -0
  211. package/modules/profile-filter/profile-filter.prototype.js +26 -0
  212. package/modules/profile-filter/profile-filter.twig +15 -0
  213. package/modules/profile-gallery/profile-gallery.prototype.js +28 -0
  214. package/modules/profile-gallery/profile-gallery.twig +13 -0
  215. package/modules/profile-header/profile-header.prototype.js +29 -0
  216. package/modules/profile-header/profile-header.twig +27 -0
  217. package/modules/profile-highlights/profile-highlights.prototype.js +22 -0
  218. package/modules/profile-highlights/profile-highlights.twig +17 -0
  219. package/modules/profile-landing-header/profile-landing-header.prototype.js +17 -0
  220. package/modules/profile-landing-header/profile-landing-header.twig +12 -0
  221. package/modules/profile-landing-river/profile-landing-river.prototype.js +21 -0
  222. package/modules/profile-landing-river/profile-landing-river.twig +13 -0
  223. package/modules/profile-related-stories/profile-related-stories.prototype.js +33 -0
  224. package/modules/profile-related-stories/profile-related-stories.twig +9 -0
  225. package/modules/pullquote/pullquote.prototype.js +8 -0
  226. package/modules/pullquote/pullquote.twig +3 -0
  227. package/modules/read-next/read-next.prototype.js +20 -0
  228. package/modules/read-next/read-next.twig +4 -0
  229. package/modules/search-form/search-form.prototype.js +8 -0
  230. package/modules/search-form/search-form.twig +11 -0
  231. package/modules/secondary-stories/secondary-stories.prototype.js +119 -0
  232. package/modules/secondary-stories/secondary-stories.twig +22 -0
  233. package/modules/separator/separator.prototype.js +4 -0
  234. package/modules/separator/separator.thick.js +7 -0
  235. package/modules/separator/separator.twig +1 -0
  236. package/modules/separator/separator.wide-thick.js +7 -0
  237. package/modules/separator/separator.wide.js +7 -0
  238. package/modules/social-share/social-share.prototype.js +43 -0
  239. package/modules/social-share/social-share.twig +30 -0
  240. package/modules/special-coverage/special-coverage.prototype.js +47 -0
  241. package/modules/special-coverage/special-coverage.twig +29 -0
  242. package/modules/story/story.borders.js +8 -0
  243. package/modules/story/story.center-vertical-borders.js +7 -0
  244. package/modules/story/story.center-vertical.js +11 -0
  245. package/modules/story/story.prototype.js +43 -0
  246. package/modules/story/story.right-borders.js +9 -0
  247. package/modules/story/story.right.js +14 -0
  248. package/modules/story/story.story-arc.js +9 -0
  249. package/modules/story/story.twig +88 -0
  250. package/modules/story/story.vertical-borders.js +7 -0
  251. package/modules/story/story.vertical.js +11 -0
  252. package/modules/story-arc-stories/story-arc-stories.prototype.js +21 -0
  253. package/modules/story-arc-stories/story-arc-stories.twig +14 -0
  254. package/modules/story-featured-quote/story-featured-quote.prototype.js +32 -0
  255. package/modules/story-featured-quote/story-featured-quote.twig +25 -0
  256. package/modules/story-grid/story-grid.prototype.js +24 -0
  257. package/modules/story-grid/story-grid.river.js +15 -0
  258. package/modules/story-grid/story-grid.twig +17 -0
  259. package/modules/sub-header/sub-header.prototype.js +8 -0
  260. package/modules/sub-header/sub-header.twig +7 -0
  261. package/modules/top-stories/top-stories.prototype.js +41 -0
  262. package/modules/top-stories/top-stories.twig +12 -0
  263. package/modules/vlanding-playlist/README.md +1 -0
  264. package/modules/vlanding-playlist/vlanding-playlist.prototype.js +34 -0
  265. package/modules/vlanding-playlist/vlanding-playlist.twig +20 -0
  266. package/modules/vlanding-video-card/README.md +1 -0
  267. package/modules/vlanding-video-card/vlanding-video-card.prototype.js +25 -0
  268. package/modules/vlanding-video-card/vlanding-video-card.twig +56 -0
  269. package/modules/vlanding-video-showcase/README.md +12 -0
  270. package/modules/vlanding-video-showcase/vlanding-video-showcase.prototype.js +68 -0
  271. package/modules/vlanding-video-showcase/vlanding-video-showcase.twig +46 -0
  272. package/objects/o-account-menu/o-account-menu.prototype.js +35 -0
  273. package/objects/o-account-menu/o-account-menu.twig +25 -0
  274. package/objects/o-author/o-author.prototype.js +13 -0
  275. package/objects/o-author/o-author.twig +13 -0
  276. package/objects/o-card/README.md +1 -0
  277. package/objects/o-card/o-card.prototype.js +25 -0
  278. package/objects/o-card/o-card.twig +75 -0
  279. package/objects/o-card-list/README.md +3 -0
  280. package/objects/o-card-list/o-card-list.prototype.js +13 -0
  281. package/objects/o-card-list/o-card-list.twig +7 -0
  282. package/objects/o-checkbox-input-list/o-checkbox-input-list.prototype.js +16 -0
  283. package/objects/o-checkbox-input-list/o-checkbox-input-list.twig +15 -0
  284. package/objects/o-collection-item/o-collection-item.floated.js +8 -0
  285. package/objects/o-collection-item/o-collection-item.prototype.js +11 -0
  286. package/objects/o-collection-item/o-collection-item.twig +5 -0
  287. package/objects/o-email-capture-form/README.md +11 -0
  288. package/objects/o-email-capture-form/o-email-capture-form.minimal.js +15 -0
  289. package/objects/o-email-capture-form/o-email-capture-form.prototype.js +17 -0
  290. package/objects/o-email-capture-form/o-email-capture-form.twig +16 -0
  291. package/objects/o-figure/README.md +17 -0
  292. package/objects/o-figure/o-figure.prototype.js +16 -0
  293. package/objects/o-figure/o-figure.twig +34 -0
  294. package/objects/o-header/o-header.prototype.js +14 -0
  295. package/{src/objects → objects}/o-header/o-header.twig +5 -1
  296. package/objects/o-header-buttons/o-header-buttons.column.js +10 -0
  297. package/objects/o-header-buttons/o-header-buttons.prototype.js +41 -0
  298. package/objects/o-header-buttons/o-header-buttons.twig +42 -0
  299. package/objects/o-icon-button/README.md +5 -0
  300. package/objects/o-icon-button/o-icon-button.prototype.js +21 -0
  301. package/objects/o-icon-button/o-icon-button.search.js +9 -0
  302. package/objects/o-icon-button/o-icon-button.twig +21 -0
  303. package/objects/o-indicator/README.md +1 -0
  304. package/objects/o-indicator/o-indicator.photos.js +12 -0
  305. package/objects/o-indicator/o-indicator.prototype.js +8 -0
  306. package/objects/o-indicator/o-indicator.twig +9 -0
  307. package/objects/o-input-group/o-input-group.prototype.js +11 -0
  308. package/objects/o-input-group/o-input-group.twig +5 -0
  309. package/objects/o-nav/README.md +3 -0
  310. package/objects/o-nav/o-nav.horizontal.js +8 -0
  311. package/objects/o-nav/o-nav.prototype.js +23 -0
  312. package/objects/o-nav/o-nav.twig +40 -0
  313. package/objects/o-select-nav/o-select-nav.prototype.js +17 -0
  314. package/objects/o-select-nav/o-select-nav.twig +9 -0
  315. package/objects/o-social-list/o-social-list.prototype.js +23 -0
  316. package/objects/o-social-list/o-social-list.twig +15 -0
  317. package/objects/o-span-group/README.md +1 -0
  318. package/objects/o-span-group/o-span-group.prototype.js +11 -0
  319. package/objects/o-span-group/o-span-group.twig +5 -0
  320. package/objects/o-sponsored-by/o-sponsored-by.prototype.js +10 -0
  321. package/{src/objects → objects}/o-sponsored-by/o-sponsored-by.twig +2 -2
  322. package/objects/o-story-arc-item/o-story-arc-item.prototype.js +29 -0
  323. package/objects/o-story-arc-item/o-story-arc-item.twig +9 -0
  324. package/objects/o-sub-header/o-sub-header.prototype.js +39 -0
  325. package/objects/o-sub-header/o-sub-header.twig +9 -0
  326. package/objects/o-tease/o-tease.prototype.js +26 -0
  327. package/{src/objects → objects}/o-tease/o-tease.twig +7 -3
  328. package/objects/o-tease-list/o-tease-list.prototype.js +14 -0
  329. package/{src/objects → objects}/o-tease-list/o-tease-list.twig +5 -1
  330. package/package.json +7 -12
  331. package/pattern.html +68 -0
  332. package/style-guide/colors.html +33 -0
  333. package/style-guide/fonts.html +22 -0
  334. package/style-guide/index.html +14 -0
  335. package/src/components/.DS_Store +0 -0
  336. package/src/components/c-button/.DS_Store +0 -0
  337. package/src/components/c-button/c-button.prototype.js +0 -5
  338. package/src/components/c-button/c-button.scss +0 -33
  339. package/src/components/c-button/c-button.twig +0 -13
  340. package/src/components/c-heading/.DS_Store +0 -0
  341. package/src/components/c-heading/c-heading.prototype.js +0 -5
  342. package/src/components/c-heading/c-heading.scss +0 -12
  343. package/src/components/c-heading/c-heading.twig +0 -20
  344. package/src/components/c-label/.DS_Store +0 -0
  345. package/src/components/c-label/c-label.prototype.js +0 -8
  346. package/src/components/c-label/c-label.twig +0 -11
  347. package/src/components/c-nav-link/c-nav-link.prototype.js +0 -6
  348. package/src/components/c-nav-link/c-nav-link.scss +0 -14
  349. package/src/components/c-nav-link/c-nav-link.twig +0 -3
  350. package/src/components/c-tagline/.DS_Store +0 -0
  351. package/src/components/c-tagline/c-tagline.json +0 -4
  352. package/src/components/c-tagline/c-tagline.scss +0 -19
  353. package/src/components/c-timestamp/.DS_Store +0 -0
  354. package/src/components/c-timestamp/c-timestamp.prototype.js +0 -5
  355. package/src/components/c-timestamp/c-timestamp.scss +0 -5
  356. package/src/components/c-timestamp/c-timestamp.twig +0 -1
  357. package/src/components/c-title/.DS_Store +0 -0
  358. package/src/components/c-title/c-title.prototype.js +0 -5
  359. package/src/components/c-title/c-title.scss +0 -30
  360. package/src/components/components.scss +0 -1
  361. package/src/objects/.DS_Store +0 -0
  362. package/src/objects/o-figure/.DS_Store +0 -0
  363. package/src/objects/o-figure/o-figure.prototype.js +0 -8
  364. package/src/objects/o-figure/o-figure.scss +0 -46
  365. package/src/objects/o-figure/o-figure.twig +0 -57
  366. package/src/objects/o-header/.DS_Store +0 -0
  367. package/src/objects/o-header/o-header.prototype.js +0 -12
  368. package/src/objects/o-header/o-header.scss +0 -5
  369. package/src/objects/o-nav/o-nav.prototype.js +0 -20
  370. package/src/objects/o-nav/o-nav.scss +0 -41
  371. package/src/objects/o-nav/o-nav.twig +0 -14
  372. package/src/objects/o-sponsored-by/.DS_Store +0 -0
  373. package/src/objects/o-sponsored-by/o-sponsored-by.prototype.js +0 -11
  374. package/src/objects/o-sponsored-by/o-sponsored-by.scss +0 -5
  375. package/src/objects/o-tease/.DS_Store +0 -0
  376. package/src/objects/o-tease/o-tease.prototype.js +0 -22
  377. package/src/objects/o-tease/o-tease.scss +0 -30
  378. package/src/objects/o-tease-list/.DS_Store +0 -0
  379. package/src/objects/o-tease-list/o-tease-list.prototype.js +0 -25
  380. package/src/objects/o-tease-list/o-tease-list.scss +0 -11
  381. package/src/objects/objects.scss +0 -1
@@ -0,0 +1,15 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const o_email_capture_form = clonedeep( require( './o-email-capture-form.prototype' ) );
4
+ const c_button = clonedeep( require( '../../components/c-button/c-button.stripped' ) );
5
+ const c_email_field = clonedeep( require( '../../components/c-email-field/c-email-field.ghost' ) );
6
+
7
+ c_button.c_button_classes += ' lrv-a-icon-after lrv-a-icon-arrow-right';
8
+ c_button.c_button_inner_classes = 'lrv-a-screen-reader-only';
9
+ c_button.c_button_type_attr = 'submit';
10
+
11
+ o_email_capture_form.c_button = c_button;
12
+ o_email_capture_form.c_email_field = c_email_field;
13
+ o_email_capture_form.o_email_capture_form_inner_classes = 'lrv-u-flex lrv-u-align-items-center lrv-u-justify-content-center lrv-u-border-b-1 lrv-u-border-color-currentColor';
14
+
15
+ module.exports = o_email_capture_form;
@@ -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_email_field = clonedeep( require( '../../components/c-email-field/c-email-field.prototype' ) );
5
+
6
+ module.exports = {
7
+ o_email_capture_form_classes: '',
8
+ o_email_capture_form_context_name_attr: 'FormPost',
9
+ o_email_capture_form_inner_classes: '',
10
+ o_email_capture_form_action_url: '',
11
+ o_email_capture_form_button_text: 'Sign up',
12
+ o_email_capture_form_name_attr: 'email-capture-form',
13
+ o_email_capture_form_success_url: '',
14
+ c_button: c_button,
15
+ c_email_field: c_email_field,
16
+ o_email_capture_form_hidden_field_items: []
17
+ };
@@ -0,0 +1,16 @@
1
+ <form class="o-email-capture-form lrv-js-EmailCapture {{ o_email_capture_form_classes }}" method="post" action="{{ o_email_capture_form_action_url }}" name="{{ o_email_capture_form_name_attr }}" target="_blank">
2
+
3
+ <div class="o-email-capture-form__inner {{ o_email_capture_form_inner_classes }}">
4
+ {% include "@larva/components/c-email-field/c-email-field.twig" with c_email_field %}
5
+ {% include "@larva/components/c-button/c-button.twig" with c_button %}
6
+ </div>
7
+
8
+
9
+ <input type="hidden" name="__contextName" value="{{ o_email_capture_form_context_name_attr }}"/>
10
+ <input type="hidden" name="__executionContext" value="Post" />
11
+ <input type="hidden" name="__successPage" data-email-capture-success-url="{{ o_email_capture_form_success_url }}" value="" />
12
+
13
+ {% for item in o_email_capture_form_hidden_field_items %}
14
+ {% include "@larva/components/c-hidden-field/c-hidden-field.twig" with item %}
15
+ {% endfor %}
16
+ </form>
@@ -0,0 +1,17 @@
1
+ o-figure is designed to support images with a caption and a credit, primarily used within editorial content in `the_content` in WordPress. pmc-core-v2 contains a filter on the `caption` shortcode that applies this pattern. Is it also used in for featured images that include credits and captions.
2
+
3
+ It consists of a `figure` element around a `c-lazy-image` and `c-figcaption`, with an optional link wrapper to make the entire block clickable.
4
+
5
+ There is an option for adding an inline style for the width on the `figure` to provide a smooth paint in post content.
6
+
7
+ The pattern supports Lazy Loading with `c-lazy-image`.
8
+
9
+ ## When to use:
10
+ * For images or content that can stand on its own, outside of the document flow. Read more about [semantic use of `figure` here](http://html5doctor.com/the-figure-figcaption-elements/).
11
+
12
+ ## When not to use:
13
+ * For images that cannot stand on their own as content, e.g. a featured image for a post that requires additional post content to be understood.
14
+ * Logo or icons
15
+
16
+ ## Future:
17
+ Could support non-image figures such as charts, embeds, or quotes.
@@ -0,0 +1,16 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const c_figcaption = clonedeep( require( '../../components/c-figcaption/c-figcaption.prototype' ) );
4
+ const c_lazy_image = clonedeep( require( '../../components/c-lazy-image/c-lazy-image.prototype' ) );
5
+
6
+ module.exports = {
7
+ c_figcaption: c_figcaption,
8
+ c_lazy_image: c_lazy_image,
9
+ o_figure_link_tabindex_attr: '',
10
+ o_figure_link_target_attr: '_self',
11
+ o_figure_link_url: false,
12
+ o_figure_classes: '',
13
+ o_figure_link_classes: 'lrv-a-unstyle-link ',
14
+ o_figure_figcaption_outer: false,
15
+ o_figure_figcaption_outer_classes: '',
16
+ };
@@ -0,0 +1,34 @@
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
+ >
10
+ {% endif %}
11
+
12
+ <figure class="o-figure {{ modifier_class }} {{ o_figure_classes }} lrv-u-max-width-100p" style="{{ o_figure_width_attr }}">
13
+
14
+ {% if c_lazy_image %}
15
+ {% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
16
+ {% endif %}
17
+
18
+ {% if c_figcaption %}
19
+ {% if o_figure_figcaption_outer %}
20
+ <div class="o-figure__figcaption-outer {{ o_figure_figcaption_outer_classes }}">
21
+ {% endif %}
22
+
23
+ {% include "@larva/components/c-figcaption/c-figcaption.twig" with c_figcaption %}
24
+
25
+ {% if o_figure_figcaption_outer %}
26
+ </div>
27
+ {% endif %}
28
+ {% endif %}
29
+
30
+ </figure>
31
+
32
+ {% if o_figure_link_url %}
33
+ </a>
34
+ {% endif %}
@@ -0,0 +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
+
10
+ module.exports = {
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
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,21 @@
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
+ <button class="o-icon-button {{ o_icon_button_classes }}">
5
+ {% endif %}
6
+
7
+ {% include "@larva/components/c-icon/c-icon.twig" with c_icon %}
8
+
9
+ {% if o_icon_button_screen_reader_text %}
10
+ <span class="lrv-a-screen-reader-only">{{ o_icon_button_screen_reader_text }}</span>
11
+ {% endif %}
12
+
13
+ {% if c_span %}
14
+ {% include "@larva/components/c-span/c-span.twig" with c_span %}
15
+ {% endif %}
16
+
17
+ {% if o_icon_button_url %}
18
+ </a>
19
+ {% else %}
20
+ </button>
21
+ {% 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>
@@ -0,0 +1,3 @@
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
+
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.
@@ -0,0 +1,8 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+
3
+ const o_nav = clonedeep( require( '../../objects/o-nav/o-nav.prototype' ) );
4
+
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;
@@ -0,0 +1,23 @@
1
+ const clonedeep = require( 'lodash.clonedeep' );
2
+ const c_link_prototype = require( '../../components/c-link/c-link.prototype' );
3
+
4
+ const o_nav_list_items = [
5
+ clonedeep( c_link_prototype ),
6
+ clonedeep( c_link_prototype ),
7
+ clonedeep( c_link_prototype )
8
+ ];
9
+
10
+ module.exports = {
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: ''
23
+ };
@@ -0,0 +1,40 @@
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
+ >
14
+
15
+ {% if o_nav_title_text %}
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 %}
27
+ {% endif %}
28
+
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
+ >
34
+ {% for item in o_nav_list_items %}
35
+ <li class="o-nav__list-item {{ o_nav_list_item_classes }}">
36
+ {% include "@larva/components/c-link/c-link.twig" with item %}
37
+ </li>
38
+ {% endfor %}
39
+ </ul>
40
+ </nav>
@@ -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>
@@ -0,0 +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
+
19
+ module.exports = {
20
+ o_social_list_classes: 'lrv-a-unstyle-list',
21
+ o_social_list_labelledby_attr: '',
22
+ o_social_list_icons: o_social_list_icons
23
+ };
@@ -0,0 +1,15 @@
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
+ >
6
+ {% for item in o_social_list_icons %}
7
+ <li class="o-social-list__item {{ o_social_list_item_classes }}">
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 %}
13
+ </li>
14
+ {% endfor %}
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>
@@ -0,0 +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
+
5
+ module.exports = {
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>