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