@penskemediacorp/larva-patterns 1.0.2-alpha.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +9 -6
- package/__tests__/css/css.html +9 -0
- package/__tests__/css/css.prototype.js +1 -0
- package/__tests__/hub/hub.html +25 -0
- package/__tests__/hub/hub.prototype.js +30 -0
- package/__tests__/profile/profile.html +29 -0
- package/__tests__/profile/profile.prototype.js +17 -0
- package/__tests__/profile-index/profile-index.html +9 -0
- package/__tests__/profile-index/profile-index.prototype.js +6 -0
- package/__tests__/vlanding/vlanding.html +7 -0
- package/__tests__/vlanding/vlanding.prototype.js +11 -0
- package/_data/brands.json +40 -0
- package/_templates/pattern-nav.html +52 -0
- package/algorithms/a-carousel-grid/README.md +5 -0
- package/algorithms/a-carousel-grid/a-carousel-grid.html +25 -0
- package/algorithms/a-carousel-grid/a-carousel-grid.overlay.js +12 -0
- package/algorithms/a-carousel-grid/a-carousel-grid.prototype.js +0 -0
- package/algorithms/a-icon/a-icon.html +1 -0
- package/algorithms/a-icon/a-icon.prototype.js +0 -0
- package/base.html +73 -0
- package/components/c-button/README.md +3 -0
- package/components/c-button/c-button.black.js +7 -0
- package/components/c-button/c-button.brand-basic.js +8 -0
- package/components/c-button/c-button.ghost.js +10 -0
- package/components/c-button/c-button.prototype.js +11 -0
- package/components/c-button/c-button.stripped.js +8 -0
- package/components/c-button/c-button.twig +19 -0
- package/components/c-checkbox-input/c-checkbox-input.prototype.js +6 -0
- package/components/c-checkbox-input/c-checkbox-input.twig +4 -0
- package/components/c-dek/README.md +3 -0
- package/components/c-dek/c-dek.prototype.js +5 -0
- package/components/c-dek/c-dek.twig +9 -0
- package/components/c-email-field/README.md +0 -0
- package/components/c-email-field/c-email-field.ghost.js +10 -0
- package/components/c-email-field/c-email-field.prototype.js +8 -0
- package/components/c-email-field/c-email-field.twig +4 -0
- package/components/c-figcaption/c-figcaption.prototype.js +9 -0
- package/components/c-figcaption/c-figcaption.twig +16 -0
- package/components/c-heading/README.md +4 -0
- package/components/c-heading/c-heading.prototype.js +10 -0
- package/components/c-heading/c-heading.twig +29 -0
- package/components/c-hidden-field/c-hidden-field.prototype.js +5 -0
- package/components/c-hidden-field/c-hidden-field.twig +1 -0
- package/components/c-icon/c-icon.full.js +8 -0
- package/components/c-icon/c-icon.prototype.js +12 -0
- package/components/c-icon/c-icon.twig +34 -0
- package/components/c-input/c-input.prototype.js +8 -0
- package/components/c-input/c-input.twig +14 -0
- package/components/c-label/README.md +12 -0
- package/components/c-label/c-label.prototype.js +7 -0
- package/components/c-label/c-label.twig +19 -0
- package/components/c-lazy-image/README.md +35 -0
- package/components/c-lazy-image/c-lazy-image.prototype.js +17 -0
- package/components/c-lazy-image/c-lazy-image.twig +31 -0
- package/components/c-link/README.md +1 -0
- package/components/c-link/c-link.prototype.js +9 -0
- package/components/c-link/c-link.twig +13 -0
- package/components/c-logo/c-logo.prototype.js +7 -0
- package/components/c-logo/c-logo.twig +10 -0
- package/components/c-nav-link/c-nav-link.prototype.js +7 -0
- package/components/c-nav-link/c-nav-link.twig +10 -0
- package/components/c-play-badge/c-play-badge.prototype.js +3 -0
- package/components/c-play-badge/c-play-badge.twig +7 -0
- package/components/c-select-option/c-select-option.prototype.js +5 -0
- package/components/c-select-option/c-select-option.twig +5 -0
- package/{src/components/c-label/c-label.scss → components/c-span/README.md} +0 -19
- package/components/c-span/c-span.prototype.js +7 -0
- package/components/c-span/c-span.tag.js +7 -0
- package/components/c-span/c-span.twig +11 -0
- package/components/c-svg/c-svg.prototype.js +4 -0
- package/components/c-svg/c-svg.twig +3 -0
- package/components/c-tagline/README.md +3 -0
- package/components/c-tagline/c-tagline.prototype.js +4 -0
- package/{src/components → components}/c-tagline/c-tagline.twig +3 -3
- package/components/c-timestamp/c-timestamp.prototype.js +6 -0
- package/components/c-timestamp/c-timestamp.twig +9 -0
- package/components/c-title/README.md +7 -0
- package/components/c-title/c-title.prototype.js +9 -0
- package/{src/components → components}/c-title/c-title.twig +14 -2
- package/css.html +44 -0
- package/index.html +9 -0
- package/index.js +4 -0
- package/modules/age-gate/README.md +3 -0
- package/modules/age-gate/age-gate.prototype.js +68 -0
- package/modules/age-gate/age-gate.twig +37 -0
- package/modules/article-callout/article-callout.prototype.js +5 -0
- package/modules/article-callout/article-callout.twig +3 -0
- package/modules/article-excerpt/article-excerpt.prototype.js +4 -0
- package/modules/article-excerpt/article-excerpt.twig +1 -0
- package/modules/article-kicker/article-kicker.prototype.js +6 -0
- package/modules/article-kicker/article-kicker.twig +13 -0
- package/modules/article-tags/article-tags.prototype.js +24 -0
- package/modules/article-tags/article-tags.twig +3 -0
- package/modules/article-title/article-title.prototype.js +4 -0
- package/modules/article-title/article-title.twig +1 -0
- package/modules/author/author.prototype.js +43 -0
- package/modules/author/author.twig +38 -0
- package/modules/author-details/author-details.prototype.js +70 -0
- package/modules/author-details/author-details.twig +25 -0
- package/modules/back-to-list/back-to-list.prototype.js +11 -0
- package/modules/back-to-list/back-to-list.twig +5 -0
- package/modules/badge/badge.prototype.js +11 -0
- package/modules/badge/badge.twig +3 -0
- package/modules/banner/banner.prototype.js +10 -0
- package/modules/banner/banner.twig +10 -0
- package/modules/brands-most-popular/brands-most-popular.prototype.js +40 -0
- package/modules/brands-most-popular/brands-most-popular.twig +11 -0
- package/modules/breadcrumbs/breadcrumbs.prototype.js +7 -0
- package/modules/breadcrumbs/breadcrumbs.twig +3 -0
- package/modules/breaking-news/breaking-news.prototype.js +29 -0
- package/modules/breaking-news/breaking-news.twig +18 -0
- package/modules/button/button.prototype.js +9 -0
- package/modules/button/button.twig +7 -0
- package/modules/carousel-grid/README.md +7 -0
- package/modules/carousel-grid/carousel-grid.overlay.js +26 -0
- package/modules/carousel-grid/carousel-grid.prototype.js +50 -0
- package/modules/carousel-grid/carousel-grid.twig +17 -0
- package/modules/carousel-slider/carousel-slider.prototype.js +56 -0
- package/modules/carousel-slider/carousel-slider.twig +11 -0
- package/modules/container/README.md +3 -0
- package/modules/container/container.prototype.js +7 -0
- package/modules/container/container.twig +1 -0
- package/modules/content-showcase/content-showcase.prototype.js +29 -0
- package/modules/content-showcase/content-showcase.the-moth.js +31 -0
- package/modules/content-showcase/content-showcase.twig +7 -0
- package/modules/expandable-search/expandable-search.prototype.js +19 -0
- package/modules/expandable-search/expandable-search.twig +9 -0
- package/modules/featured-stories/featured-stories.prototype.js +23 -0
- package/modules/featured-stories/featured-stories.twig +18 -0
- package/modules/footer/README.md +15 -0
- package/modules/footer/footer.prototype.js +14 -0
- package/modules/footer/footer.twig +22 -0
- package/modules/footer-button-list/footer-button-list.prototype.js +43 -0
- package/modules/footer-button-list/footer-button-list.twig +13 -0
- package/modules/footer-magazine-image/footer-magazine-image.prototype.js +15 -0
- package/modules/footer-magazine-image/footer-magazine-image.twig +3 -0
- package/modules/footer-menus/README.md +3 -0
- package/modules/footer-menus/footer-menus.prototype.js +18 -0
- package/modules/footer-menus/footer-menus.twig +5 -0
- package/modules/footer-newsletter/README.md +5 -0
- package/modules/footer-newsletter/footer-newsletter.prototype.js +21 -0
- package/modules/footer-newsletter/footer-newsletter.twig +5 -0
- package/modules/footer-social/README.md +3 -0
- package/modules/footer-social/footer-social.prototype.js +36 -0
- package/modules/footer-social/footer-social.twig +5 -0
- package/modules/footer-tip/footer-tip.prototype.js +23 -0
- package/modules/footer-tip/footer-tip.twig +5 -0
- package/modules/header/header.article.js +39 -0
- package/modules/header/header.prototype.js +90 -0
- package/modules/header/header.twig +74 -0
- package/modules/header-menu/header-menu.prototype.js +26 -0
- package/modules/header-menu/header-menu.twig +3 -0
- package/modules/header-sticky/header-sticky.article.js +43 -0
- package/modules/header-sticky/header-sticky.prototype.js +39 -0
- package/modules/header-sticky/header-sticky.twig +30 -0
- package/modules/heading/heading.h1.js +8 -0
- package/modules/heading/heading.h2.js +8 -0
- package/modules/heading/heading.h3.js +8 -0
- package/modules/heading/heading.h4.js +7 -0
- package/modules/heading/heading.h5.js +7 -0
- package/modules/heading/heading.h6.js +7 -0
- package/modules/heading/heading.prototype.js +9 -0
- package/modules/heading/heading.twig +3 -0
- package/modules/injected-related-content/injected-related-content.prototype.js +61 -0
- package/modules/injected-related-content/injected-related-content.twig +23 -0
- package/modules/list/list.ordered.js +7 -0
- package/modules/list/list.prototype.js +57 -0
- package/modules/list/list.twig +11 -0
- package/modules/listicle-item/listicle-item.prototype.js +11 -0
- package/modules/listicle-item/listicle-item.twig +3 -0
- package/modules/mega-menu/mega-menu.prototype.js +16 -0
- package/modules/mega-menu/mega-menu.twig +10 -0
- package/modules/mega-menu-content/mega-menu-content.prototype.js +10 -0
- package/modules/mega-menu-content/mega-menu-content.twig +5 -0
- package/modules/mega-menu-footer/mega-menu-footer.prototype.js +41 -0
- package/modules/mega-menu-footer/mega-menu-footer.twig +19 -0
- package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.prototype.js +20 -0
- package/modules/mega-menu-footer-subscribe/mega-menu-footer-subscribe.twig +4 -0
- package/modules/mega-menu-item/mega-menu-item.prototype.js +23 -0
- package/modules/mega-menu-item/mega-menu-item.twig +13 -0
- package/modules/more-stories-button/more-stories-button.profile.js +12 -0
- package/modules/more-stories-button/more-stories-button.prototype.js +29 -0
- package/modules/more-stories-button/more-stories-button.twig +13 -0
- package/modules/newsletter/newsletter.prototype.js +46 -0
- package/modules/newsletter/newsletter.twig +21 -0
- package/modules/newsletter-cta/newsletter-cta.prototype.js +21 -0
- package/modules/newsletter-cta/newsletter-cta.twig +22 -0
- package/modules/newswire/newswire.prototype.js +46 -0
- package/modules/newswire/newswire.twig +16 -0
- package/modules/paragraph/paragraph.prototype.js +8 -0
- package/modules/paragraph/paragraph.twig +3 -0
- package/modules/pmc-footer/README.md +3 -0
- package/modules/pmc-footer/pmc-footer.prototype.js +47 -0
- package/modules/pmc-footer/pmc-footer.twig +17 -0
- package/modules/post-content-image/post-content-image.prototype.js +14 -0
- package/modules/post-content-image/post-content-image.twig +3 -0
- package/modules/profile-blurb/profile-blurb.card.js +28 -0
- package/modules/profile-blurb/profile-blurb.prototype.js +45 -0
- package/modules/profile-blurb/profile-blurb.twig +37 -0
- package/modules/profile-body/profile-body.prototype.js +20 -0
- package/modules/profile-body/profile-body.twig +15 -0
- package/modules/profile-browse-by/profile-browse-by.prototype.js +29 -0
- package/modules/profile-browse-by/profile-browse-by.twig +6 -0
- package/modules/profile-card-list/profile-card-list.prototype.js +25 -0
- package/modules/profile-card-list/profile-card-list.twig +7 -0
- package/modules/profile-filter/profile-filter.prototype.js +26 -0
- package/modules/profile-filter/profile-filter.twig +15 -0
- package/modules/profile-gallery/profile-gallery.prototype.js +28 -0
- package/modules/profile-gallery/profile-gallery.twig +13 -0
- package/modules/profile-header/profile-header.prototype.js +29 -0
- package/modules/profile-header/profile-header.twig +27 -0
- package/modules/profile-highlights/profile-highlights.prototype.js +22 -0
- package/modules/profile-highlights/profile-highlights.twig +17 -0
- package/modules/profile-landing-header/profile-landing-header.prototype.js +17 -0
- package/modules/profile-landing-header/profile-landing-header.twig +12 -0
- package/modules/profile-landing-river/profile-landing-river.prototype.js +21 -0
- package/modules/profile-landing-river/profile-landing-river.twig +13 -0
- package/modules/profile-related-stories/profile-related-stories.prototype.js +33 -0
- package/modules/profile-related-stories/profile-related-stories.twig +9 -0
- package/modules/pullquote/pullquote.prototype.js +8 -0
- package/modules/pullquote/pullquote.twig +3 -0
- package/modules/read-next/read-next.prototype.js +20 -0
- package/modules/read-next/read-next.twig +4 -0
- package/modules/search-form/search-form.prototype.js +8 -0
- package/modules/search-form/search-form.twig +11 -0
- package/modules/secondary-stories/secondary-stories.prototype.js +119 -0
- package/modules/secondary-stories/secondary-stories.twig +22 -0
- package/modules/separator/separator.prototype.js +4 -0
- package/modules/separator/separator.thick.js +7 -0
- package/modules/separator/separator.twig +1 -0
- package/modules/separator/separator.wide-thick.js +7 -0
- package/modules/separator/separator.wide.js +7 -0
- package/modules/social-share/social-share.prototype.js +43 -0
- package/modules/social-share/social-share.twig +30 -0
- package/modules/special-coverage/special-coverage.prototype.js +47 -0
- package/modules/special-coverage/special-coverage.twig +29 -0
- package/modules/story/story.borders.js +8 -0
- package/modules/story/story.center-vertical-borders.js +7 -0
- package/modules/story/story.center-vertical.js +11 -0
- package/modules/story/story.prototype.js +43 -0
- package/modules/story/story.right-borders.js +9 -0
- package/modules/story/story.right.js +14 -0
- package/modules/story/story.story-arc.js +9 -0
- package/modules/story/story.twig +88 -0
- package/modules/story/story.vertical-borders.js +7 -0
- package/modules/story/story.vertical.js +11 -0
- package/modules/story-arc-stories/story-arc-stories.prototype.js +21 -0
- package/modules/story-arc-stories/story-arc-stories.twig +14 -0
- package/modules/story-featured-quote/story-featured-quote.prototype.js +32 -0
- package/modules/story-featured-quote/story-featured-quote.twig +25 -0
- package/modules/story-grid/story-grid.prototype.js +24 -0
- package/modules/story-grid/story-grid.river.js +15 -0
- package/modules/story-grid/story-grid.twig +17 -0
- package/modules/sub-header/sub-header.prototype.js +8 -0
- package/modules/sub-header/sub-header.twig +7 -0
- package/modules/top-stories/top-stories.prototype.js +41 -0
- package/modules/top-stories/top-stories.twig +12 -0
- package/modules/vlanding-playlist/README.md +1 -0
- package/modules/vlanding-playlist/vlanding-playlist.prototype.js +34 -0
- package/modules/vlanding-playlist/vlanding-playlist.twig +20 -0
- package/modules/vlanding-video-card/README.md +1 -0
- package/modules/vlanding-video-card/vlanding-video-card.prototype.js +25 -0
- package/modules/vlanding-video-card/vlanding-video-card.twig +56 -0
- package/modules/vlanding-video-showcase/README.md +12 -0
- package/modules/vlanding-video-showcase/vlanding-video-showcase.prototype.js +68 -0
- package/modules/vlanding-video-showcase/vlanding-video-showcase.twig +46 -0
- package/objects/o-account-menu/o-account-menu.prototype.js +35 -0
- package/objects/o-account-menu/o-account-menu.twig +25 -0
- package/objects/o-author/o-author.prototype.js +13 -0
- package/objects/o-author/o-author.twig +13 -0
- package/objects/o-card/README.md +1 -0
- package/objects/o-card/o-card.prototype.js +25 -0
- package/objects/o-card/o-card.twig +75 -0
- package/objects/o-card-list/README.md +3 -0
- package/objects/o-card-list/o-card-list.prototype.js +13 -0
- package/objects/o-card-list/o-card-list.twig +7 -0
- package/objects/o-checkbox-input-list/o-checkbox-input-list.prototype.js +16 -0
- package/objects/o-checkbox-input-list/o-checkbox-input-list.twig +15 -0
- package/objects/o-collection-item/o-collection-item.floated.js +8 -0
- package/objects/o-collection-item/o-collection-item.prototype.js +11 -0
- package/objects/o-collection-item/o-collection-item.twig +5 -0
- package/objects/o-email-capture-form/README.md +11 -0
- package/objects/o-email-capture-form/o-email-capture-form.minimal.js +15 -0
- package/objects/o-email-capture-form/o-email-capture-form.prototype.js +17 -0
- package/objects/o-email-capture-form/o-email-capture-form.twig +16 -0
- package/objects/o-figure/README.md +17 -0
- package/objects/o-figure/o-figure.prototype.js +16 -0
- package/objects/o-figure/o-figure.twig +34 -0
- package/objects/o-header/o-header.prototype.js +14 -0
- package/{src/objects → objects}/o-header/o-header.twig +5 -1
- package/objects/o-header-buttons/o-header-buttons.column.js +10 -0
- package/objects/o-header-buttons/o-header-buttons.prototype.js +41 -0
- package/objects/o-header-buttons/o-header-buttons.twig +42 -0
- package/objects/o-icon-button/README.md +5 -0
- package/objects/o-icon-button/o-icon-button.prototype.js +18 -0
- package/objects/o-icon-button/o-icon-button.search.js +9 -0
- package/objects/o-icon-button/o-icon-button.twig +21 -0
- package/objects/o-indicator/README.md +1 -0
- package/objects/o-indicator/o-indicator.photos.js +12 -0
- package/objects/o-indicator/o-indicator.prototype.js +8 -0
- package/objects/o-indicator/o-indicator.twig +9 -0
- package/objects/o-input-group/o-input-group.prototype.js +11 -0
- package/objects/o-input-group/o-input-group.twig +5 -0
- package/objects/o-nav/README.md +3 -0
- package/objects/o-nav/o-nav.horizontal.js +8 -0
- package/objects/o-nav/o-nav.prototype.js +23 -0
- package/objects/o-nav/o-nav.twig +40 -0
- package/objects/o-select-nav/o-select-nav.prototype.js +17 -0
- package/objects/o-select-nav/o-select-nav.twig +9 -0
- package/objects/o-social-list/o-social-list.prototype.js +23 -0
- package/objects/o-social-list/o-social-list.twig +15 -0
- package/objects/o-span-group/README.md +1 -0
- package/objects/o-span-group/o-span-group.prototype.js +11 -0
- package/objects/o-span-group/o-span-group.twig +5 -0
- package/objects/o-sponsored-by/o-sponsored-by.prototype.js +10 -0
- package/{src/objects → objects}/o-sponsored-by/o-sponsored-by.twig +2 -2
- package/objects/o-story-arc-item/o-story-arc-item.prototype.js +29 -0
- package/objects/o-story-arc-item/o-story-arc-item.twig +9 -0
- package/objects/o-sub-header/o-sub-header.prototype.js +39 -0
- package/objects/o-sub-header/o-sub-header.twig +9 -0
- package/objects/o-tease/o-tease.prototype.js +26 -0
- package/{src/objects → objects}/o-tease/o-tease.twig +7 -3
- package/objects/o-tease-list/o-tease-list.prototype.js +14 -0
- package/{src/objects → objects}/o-tease-list/o-tease-list.twig +5 -1
- package/package.json +7 -12
- package/pattern.html +68 -0
- package/style-guide/colors.html +33 -0
- package/style-guide/fonts.html +22 -0
- package/style-guide/index.html +14 -0
- package/src/components/.DS_Store +0 -0
- package/src/components/c-button/.DS_Store +0 -0
- package/src/components/c-button/c-button.prototype.js +0 -5
- package/src/components/c-button/c-button.scss +0 -33
- package/src/components/c-button/c-button.twig +0 -13
- package/src/components/c-heading/.DS_Store +0 -0
- package/src/components/c-heading/c-heading.prototype.js +0 -5
- package/src/components/c-heading/c-heading.scss +0 -12
- package/src/components/c-heading/c-heading.twig +0 -20
- package/src/components/c-label/.DS_Store +0 -0
- package/src/components/c-label/c-label.prototype.js +0 -8
- package/src/components/c-label/c-label.twig +0 -11
- package/src/components/c-nav-link/c-nav-link.prototype.js +0 -6
- package/src/components/c-nav-link/c-nav-link.scss +0 -14
- package/src/components/c-nav-link/c-nav-link.twig +0 -3
- package/src/components/c-tagline/.DS_Store +0 -0
- package/src/components/c-tagline/c-tagline.json +0 -4
- package/src/components/c-tagline/c-tagline.scss +0 -19
- package/src/components/c-timestamp/.DS_Store +0 -0
- package/src/components/c-timestamp/c-timestamp.prototype.js +0 -5
- package/src/components/c-timestamp/c-timestamp.scss +0 -5
- package/src/components/c-timestamp/c-timestamp.twig +0 -1
- package/src/components/c-title/.DS_Store +0 -0
- package/src/components/c-title/c-title.prototype.js +0 -5
- package/src/components/c-title/c-title.scss +0 -30
- package/src/components/components.scss +0 -1
- package/src/objects/.DS_Store +0 -0
- package/src/objects/o-figure/.DS_Store +0 -0
- package/src/objects/o-figure/o-figure.prototype.js +0 -8
- package/src/objects/o-figure/o-figure.scss +0 -46
- package/src/objects/o-figure/o-figure.twig +0 -57
- package/src/objects/o-header/.DS_Store +0 -0
- package/src/objects/o-header/o-header.prototype.js +0 -12
- package/src/objects/o-header/o-header.scss +0 -5
- package/src/objects/o-nav/o-nav.prototype.js +0 -20
- package/src/objects/o-nav/o-nav.scss +0 -41
- package/src/objects/o-nav/o-nav.twig +0 -14
- package/src/objects/o-sponsored-by/.DS_Store +0 -0
- package/src/objects/o-sponsored-by/o-sponsored-by.prototype.js +0 -11
- package/src/objects/o-sponsored-by/o-sponsored-by.scss +0 -5
- package/src/objects/o-tease/.DS_Store +0 -0
- package/src/objects/o-tease/o-tease.prototype.js +0 -22
- package/src/objects/o-tease/o-tease.scss +0 -30
- package/src/objects/o-tease-list/.DS_Store +0 -0
- package/src/objects/o-tease-list/o-tease-list.prototype.js +0 -25
- package/src/objects/o-tease-list/o-tease-list.scss +0 -11
- package/src/objects/objects.scss +0 -1
|
@@ -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-
|
|
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,18 @@
|
|
|
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_screen_reader_text: '',
|
|
16
|
+
c_icon: c_icon,
|
|
17
|
+
c_span: c_span,
|
|
18
|
+
};
|
|
@@ -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 }}">
|
|
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,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,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,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
|
|
5
|
-
{% include "@larva/
|
|
4
|
+
{% if c_lazy_image %}
|
|
5
|
+
{% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
|
|
6
6
|
{% endif %}
|
|
7
7
|
</div>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_timestamp_prototype = require( '../../components/c-timestamp/c-timestamp.prototype' );
|
|
4
|
+
const o_tease_prototype = require( '../o-tease/o-tease.prototype.js' );
|
|
5
|
+
|
|
6
|
+
const c_timestamp = clonedeep( c_timestamp_prototype );
|
|
7
|
+
const o_tease = clonedeep( o_tease_prototype );
|
|
8
|
+
|
|
9
|
+
c_timestamp.c_timestamp_classes = "lrv-u-font-family-primary lrv-u-background-color-body lrv-u-font-weight-bold lrv-u-font-size-12 lrv-u-color-brand-primary";
|
|
10
|
+
|
|
11
|
+
o_tease.c_tagline = false;
|
|
12
|
+
o_tease.c_heading = false;
|
|
13
|
+
o_tease.c_button = false;
|
|
14
|
+
o_tease.c_span = false;
|
|
15
|
+
|
|
16
|
+
o_tease.o_tease_classes += ' u-align-items-flex-start@mobile-max u-flex-direction-row-reverse';
|
|
17
|
+
o_tease.o_tease_secondary_classes += ' lrv-u-margin-r-1 u-width-65';
|
|
18
|
+
|
|
19
|
+
o_tease.c_lazy_image.c_lazy_image_img_classes += ' lrv-u-border-radius-5 u-box-shadow-light';
|
|
20
|
+
o_tease.c_lazy_image.c_lazy_image_crop_class = 'lrv-a-crop-1x1';
|
|
21
|
+
|
|
22
|
+
o_tease.c_title.c_title_text = 'Art Basel Plans ‘Interventions’ for 50th Anniversary, with Kasper König in Charge';
|
|
23
|
+
o_tease.c_title.c_title_classes = 'lrv-u-font-family-primary lrv-u-font-size-14 lrv-u-font-size-16@desktop u-color-black lrv-u-font-weight-normal';
|
|
24
|
+
|
|
25
|
+
module.exports = {
|
|
26
|
+
o_story_arc_item_classes: '',
|
|
27
|
+
c_timestamp: c_timestamp,
|
|
28
|
+
o_tease: o_tease,
|
|
29
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<div class="{{ o_story_arc_item_classes }}">
|
|
2
|
+
<span class="a-span-sandwich lrv-u-margin-b-1">
|
|
3
|
+
{% if c_timestamp %}
|
|
4
|
+
{% include "@larva/components/c-timestamp/c-timestamp.twig" with c_timestamp %}
|
|
5
|
+
{% endif %}
|
|
6
|
+
</span>
|
|
7
|
+
|
|
8
|
+
{% include "@larva/objects/o-tease/o-tease.twig" with o_tease %}
|
|
9
|
+
</div>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_heading_prototype = require( '@penskemediacorp/larva-patterns/components/c-heading/c-heading.prototype.js' );
|
|
4
|
+
const c_heading = clonedeep( c_heading_prototype );
|
|
5
|
+
|
|
6
|
+
const o_nav_prototype = require( '@penskemediacorp/larva-patterns/objects/o-nav/o-nav.prototype' );
|
|
7
|
+
const o_nav = clonedeep( o_nav_prototype );
|
|
8
|
+
|
|
9
|
+
const o_nav_items_c_links__prototype = require( '@penskemediacorp/larva-patterns/components/c-link/c-link.prototype.js' );
|
|
10
|
+
|
|
11
|
+
c_heading.c_heading_text = 'Market';
|
|
12
|
+
c_heading.c_heading_classes = 'lrv-u-font-family-secondary lrv-u-font-size-56@desktop-xl lrv-u-font-size-50 lrv-u-margin-b-050@mobile-max lrv-u-line-height-small lrv-u-text-align-center@mobile-max lrv-u-margin-r-2@desktop';
|
|
13
|
+
c_heading.c_heading_is_primary_heading = true;
|
|
14
|
+
|
|
15
|
+
o_nav.o_nav_list_items = [];
|
|
16
|
+
const menuLinks = [ 'View All', 'Tag Title', 'Tag Title', 'Tag Title', 'Tag Title', 'Tag Title' ];
|
|
17
|
+
|
|
18
|
+
for (let i = 0; i < menuLinks.length; i++) {
|
|
19
|
+
let c_link = clonedeep( o_nav_items_c_links__prototype );
|
|
20
|
+
|
|
21
|
+
c_link.c_link_text = menuLinks[i];
|
|
22
|
+
c_link.c_link_classes += ' c_link_classes lrv-u-font-family-primary lrv-u-color-grey-dark:hover';
|
|
23
|
+
|
|
24
|
+
o_nav.o_nav_list_items.push( c_link );
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const mobileDropdownUtilities = ' lrv-u-border-a-1@mobile-max lrv-u-justify-content-center lrv-u-margin-b-050@mobile-max lrv-u-border-color-grey-light';
|
|
28
|
+
|
|
29
|
+
o_nav.o_nav_classes = 'lrv-u-flex@desktop lrv-u-align-items-center lrv-u-text-align-center lrv-js-MobileHeightToggle';
|
|
30
|
+
o_nav.o_nav_title_text = 'View Categories';
|
|
31
|
+
o_nav.o_nav_title_classes = 'lrv-a-hidden@desktop lrv-js-MobileHeightToggle-trigger lrv-a-icon-after lrv-a-icon-arrow-down lrv-u-font-size-16 lrv-u-font-family-primary lrv-u-font-weight-normal lrv-u-padding-tb-050 lrv-u-width-100p@mobile-max ' + mobileDropdownUtilities;
|
|
32
|
+
o_nav.o_nav_list_classes += ' lrv-js-MobileHeightToggle-target lrv-u-flex lrv-u-flex-direction-column@mobile-max lrv-u-line-height-large lrv-u-flex-wrap-wrap lrv-a-space-children--1 lrv-a-space-children-horizontal@tablet';
|
|
33
|
+
o_nav.o_nav_list_item_classes = mobileDropdownUtilities;
|
|
34
|
+
|
|
35
|
+
module.exports = {
|
|
36
|
+
o_sub_header_classes: 'lrv-u-flex u-align-items-flex-end@tablet lrv-u-flex-direction-column@mobile-max',
|
|
37
|
+
c_heading: c_heading,
|
|
38
|
+
o_nav: o_nav,
|
|
39
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<header class="o-sub-header // {{ o_sub_header_classes }}">
|
|
2
|
+
{% if c_heading %}
|
|
3
|
+
{% include "@larva/components/c-heading/c-heading.twig" with c_heading %}
|
|
4
|
+
{% endif %}
|
|
5
|
+
|
|
6
|
+
{% if o_nav %}
|
|
7
|
+
{% include "@larva/objects/o-nav/o-nav.twig" with o_nav %}
|
|
8
|
+
{% endif %}
|
|
9
|
+
</header>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_lazy_image = clonedeep( require( '../../components/c-lazy-image/c-lazy-image.prototype' ) );
|
|
4
|
+
const c_title = clonedeep( require( '../../components/c-title/c-title.prototype' ) );
|
|
5
|
+
const c_tagline = clonedeep( require( '../../components/c-tagline/c-tagline.prototype' ) );
|
|
6
|
+
const c_heading = clonedeep( require( '../../components/c-heading/c-heading.prototype' ) );
|
|
7
|
+
|
|
8
|
+
c_title.c_title_url = false;
|
|
9
|
+
|
|
10
|
+
c_heading.c_heading_url = false;
|
|
11
|
+
|
|
12
|
+
c_lazy_image.c_lazy_image_link_url = false;
|
|
13
|
+
c_lazy_image.c_lazy_image_crop_class = 'lrv-a-crop-3x2';
|
|
14
|
+
c_lazy_image.c_lazy_image_alt_attr = 'Post tease thumbnail image';
|
|
15
|
+
|
|
16
|
+
module.exports = {
|
|
17
|
+
o_tease_url: '#',
|
|
18
|
+
o_tease_classes: 'lrv-u-flex lrv-u-align-items-center',
|
|
19
|
+
o_tease_link_classes: 'lrv-u-display-contents',
|
|
20
|
+
o_tease_primary_classes: 'lrv-u-flex-grow-1',
|
|
21
|
+
o_tease_secondary_classes: 'lrv-u-flex-shrink-0 lrv-u-width-30p',
|
|
22
|
+
c_heading: c_heading,
|
|
23
|
+
c_title: c_title,
|
|
24
|
+
c_tagline: c_tagline,
|
|
25
|
+
c_lazy_image: c_lazy_image
|
|
26
|
+
};
|
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
{% endif %}
|
|
6
6
|
|
|
7
7
|
{% if o_tease_url %}
|
|
8
|
-
<a href="{{ o_tease_url }}" class="
|
|
8
|
+
<a href="{{ o_tease_url }}" class="{{ o_tease_link_classes }}">
|
|
9
9
|
{% endif %}
|
|
10
10
|
<div class="o-tease__primary {{ o_tease_primary_classes }}">
|
|
11
|
+
{% if c_span %}
|
|
12
|
+
{% include "@larva/components/c-span/c-span.twig" with c_span %}
|
|
13
|
+
{% endif %}
|
|
14
|
+
|
|
11
15
|
{% if c_heading %}
|
|
12
16
|
{% include "@larva/components/c-heading/c-heading.twig" with c_heading %}
|
|
13
17
|
{% endif %}
|
|
@@ -29,9 +33,9 @@
|
|
|
29
33
|
{% endif %}
|
|
30
34
|
</div>
|
|
31
35
|
|
|
32
|
-
{% if
|
|
36
|
+
{% if c_lazy_image %}
|
|
33
37
|
<div class="o-tease__secondary {{ o_tease_secondary_classes }}">
|
|
34
|
-
{% include "@larva/
|
|
38
|
+
{% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
|
|
35
39
|
</div>
|
|
36
40
|
{% endif %}
|
|
37
41
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const o_tease = clonedeep( require( '../o-tease/o-tease.prototype' ) );
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
o_tease_list_classes: 'lrv-a-unstyle-list',
|
|
7
|
+
o_tease_list_labelledby_attr: '',
|
|
8
|
+
o_tease_list_item_classes: '',
|
|
9
|
+
o_tease_list_items: [
|
|
10
|
+
o_tease,
|
|
11
|
+
o_tease,
|
|
12
|
+
o_tease
|
|
13
|
+
]
|
|
14
|
+
};
|