@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,20 @@
|
|
|
1
|
+
<section class="vlanding-playlist // lrv-u-padding-tb-2 lrv-u-padding-tb-1@mobile-max">
|
|
2
|
+
{% if o_header %}
|
|
3
|
+
<div class="lrv-a-wrapper">
|
|
4
|
+
{% include "@larva/objects/o-header/o-header.twig" with o_header %}
|
|
5
|
+
</div>
|
|
6
|
+
{% endif %}
|
|
7
|
+
|
|
8
|
+
<div class="lrv-a-wrapper lrv-a-scrollable-grid@desktop-max lrv-a-grid lrv-a-cols2@desktop">
|
|
9
|
+
{% if vlanding_playlist_large_card %}
|
|
10
|
+
{% include "@larva/objects/o-card/o-card.twig" with vlanding_playlist_large_card %}
|
|
11
|
+
{% endif %}
|
|
12
|
+
<div class="lrv-a-scrollable-grid__nested@desktop-max lrv-a-grid lrv-a-cols2@desktop">
|
|
13
|
+
{% for item in vlanding_playlist_small_cards %}
|
|
14
|
+
{% include "@larva/objects/o-card/o-card.twig" with item %}
|
|
15
|
+
{% endfor %}
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
</section>
|
|
19
|
+
|
|
20
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This pattern is included in `vlanding-video-showcase`, and is intended to be used there only.
|
|
@@ -0,0 +1,25 @@
|
|
|
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_span = clonedeep( require( './../../components/c-span/c-span.prototype' ) );
|
|
6
|
+
|
|
7
|
+
module.exports = {
|
|
8
|
+
vlanding_video_card_permalink_url: '#',
|
|
9
|
+
vlanding_video_card_use_button: true,
|
|
10
|
+
vlanding_video_card_link_aria_controls_attr: '',
|
|
11
|
+
vlanding_video_card_link_classes: 'lrv-a-unstyle-link',
|
|
12
|
+
vlanding_video_card_link_showcase_trigger_data_attr: 'x3HbbzHK5Mc',
|
|
13
|
+
vlanding_video_card_link_showcase_type_data_attr: 'youtube',
|
|
14
|
+
vlanding_video_card_link_showcase_dek_data_attr: 'text for the dek, update this',
|
|
15
|
+
vlanding_video_card_link_showcase_title_data_attr: 'title that should be the same as the card',
|
|
16
|
+
vlanding_video_card_link_showcase_permalink_data_url: '#',
|
|
17
|
+
vlanding_video_card_active_txt_attr: 'Now Playing',
|
|
18
|
+
vlanding_video_card_classes: '',
|
|
19
|
+
vlanding_video_card_crop_class: '',
|
|
20
|
+
c_lazy_image: c_lazy_image,
|
|
21
|
+
vlanding_video_card_is_player: '',
|
|
22
|
+
c_title: c_title,
|
|
23
|
+
c_span: c_span,
|
|
24
|
+
vlanding_video_card_social_share_markup: '',
|
|
25
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{% if vlanding_video_card_permalink_url %}
|
|
2
|
+
{% if vlanding_video_card_use_button %}
|
|
3
|
+
<button class="vlanding-video-card__link lrv-a-unstyle-button lrv-u-width-100p {{ vlanding_video_card_link_classes }}"
|
|
4
|
+
data-video-showcase-trigger="{{ vlanding_video_card_link_showcase_trigger_data_attr }}"
|
|
5
|
+
data-video-showcase-type="{{ vlanding_video_card_link_showcase_type_data_attr }}"
|
|
6
|
+
data-video-showcase-dek="{{ vlanding_video_card_link_showcase_dek_data_attr }}"
|
|
7
|
+
data-video-showcase-title="{{ vlanding_video_card_link_showcase_title_data_attr }}"
|
|
8
|
+
data-video-showcase-permalink="{{ vlanding_video_card_link_showcase_permalink_data_url }}"
|
|
9
|
+
{% if vlanding_video_card_link_aria_controls_attr %}
|
|
10
|
+
aria-controls="{{ vlanding_video_card_link_aria_controls_attr }}"
|
|
11
|
+
{% endif %}
|
|
12
|
+
>
|
|
13
|
+
{% else %}
|
|
14
|
+
<a href="{{ vlanding_video_card_permalink_url }}" class="vlanding-video-card__link {{ vlanding_video_card_link_classes }}" data-video-showcase-trigger="{{ vlanding_video_card_link_showcase_trigger_data_attr }}" data-video-showcase-type="{{ vlanding_video_card_link_showcase_type_data_attr }}" data-video-showcase-dek="{{ vlanding_video_card_link_showcase_dek_data_attr }}" data-video-showcase-title="{{ vlanding_video_card_link_showcase_title_data_attr }}" data-video-showcase-permalink="{{ vlanding_video_card_link_showcase_permalink_data_url }}">
|
|
15
|
+
{% endif %}
|
|
16
|
+
{% endif %}
|
|
17
|
+
|
|
18
|
+
<div class="vlanding-video-card {{ vlanding_video_card_classes }}" data-video-showcase-player>
|
|
19
|
+
|
|
20
|
+
<div class="{{ vlanding_video_card_crop_class }}" data-video-showcase-active-text="{{ vlanding_video_card_active_txt_attr }}">
|
|
21
|
+
|
|
22
|
+
{% if c_lazy_image %}
|
|
23
|
+
{% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
|
|
24
|
+
{% endif %}
|
|
25
|
+
|
|
26
|
+
{% if vlanding_video_card_is_player %}
|
|
27
|
+
<iframe hidden id="youtubePlayerContainer" frameborder="0" data-video-showcase-iframe></iframe>
|
|
28
|
+
<div hidden id="jwplayerContainer" data-video-showcase-jwplayer></div>
|
|
29
|
+
{% endif %}
|
|
30
|
+
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
{% if c_span %}
|
|
34
|
+
{% include "@larva/components/c-span/c-span.twig" with c_span %}
|
|
35
|
+
{% endif %}
|
|
36
|
+
|
|
37
|
+
{% if c_title %}
|
|
38
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
39
|
+
{% endif %}
|
|
40
|
+
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
{% if vlanding_video_card_permalink_url %}
|
|
44
|
+
{% if vlanding_video_card_use_button %}
|
|
45
|
+
</button>
|
|
46
|
+
{% else %}
|
|
47
|
+
</a>
|
|
48
|
+
{% endif %}
|
|
49
|
+
{% endif %}
|
|
50
|
+
|
|
51
|
+
{% if vlanding_video_card_social_share_markup %}
|
|
52
|
+
<div class="lrv-a-hidden" data-video-showcase-trigger-social-share>
|
|
53
|
+
{{ vlanding_video_card_social_share_markup }}
|
|
54
|
+
</div>
|
|
55
|
+
{% endif %}
|
|
56
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
This Video Showcase supports YouTube and JWPlayer videos and an option listing of video thumbnails below the large player. Clicking one of the thumbnails will load its video and associated content in the large player.
|
|
2
|
+
|
|
3
|
+
Options:
|
|
4
|
+
- Set social_share to false, to exclude the share bar in the large video
|
|
5
|
+
- Set vlanding_video_showcase_video_cards to false to exclude the 'Latest Videos'
|
|
6
|
+
- Show a Sponsored badge for the video. Note that this requires a server-side class to hide/show the badge, but retain the DOM markup for future elements. Example logic:
|
|
7
|
+
```
|
|
8
|
+
// Add a-hidden if not sponsored.
|
|
9
|
+
if ( ! \Deadline\Inc\Article::is_sponsored( $vlanding_video_card['post_id'] ) ) {
|
|
10
|
+
$vlanding_video_showcase['c_span']['c_span_classes'] .= ' lrv-a-hidden';
|
|
11
|
+
}
|
|
12
|
+
```
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const vlanding_video_card = clonedeep( require( '../../modules/vlanding-video-card/vlanding-video-card.prototype' ) );
|
|
4
|
+
const social_share = clonedeep( require( '../../modules/social-share/social-share.prototype' ) );
|
|
5
|
+
const c_span = clonedeep( require( '../../components/c-span/c-span.prototype' ) );
|
|
6
|
+
const c_title = clonedeep( require( '../../components/c-title/c-title.prototype' ) );
|
|
7
|
+
const c_dek = clonedeep( require( '../../components/c-dek/c-dek.prototype' ) );
|
|
8
|
+
const c_heading = clonedeep( require( '../../components/c-heading/c-heading.prototype' ) );
|
|
9
|
+
|
|
10
|
+
const vlanding_video_card_player = clonedeep( vlanding_video_card );
|
|
11
|
+
const vlanding_video_showcase_card = clonedeep( vlanding_video_card );
|
|
12
|
+
|
|
13
|
+
const demoVideos = [
|
|
14
|
+
'TxC_UpC0iyk',
|
|
15
|
+
'_JFOdYRfqBQ',
|
|
16
|
+
'UmjBAjsLMms',
|
|
17
|
+
'bgs2PgWE',
|
|
18
|
+
'getvYflDK98'
|
|
19
|
+
];
|
|
20
|
+
|
|
21
|
+
const vlanding_video_showcase_video_cards = [];
|
|
22
|
+
|
|
23
|
+
vlanding_video_showcase_card.c_title.c_title_url = false;
|
|
24
|
+
vlanding_video_showcase_card.c_title.c_title_classes = 'lrv-u-font-size-14 lrv-u-font-weight-normal lrv-u-padding-t-050';
|
|
25
|
+
|
|
26
|
+
vlanding_video_showcase_card.c_span.c_span_classes += ' lrv-u-display-block lrv-u-padding-b-00 lrv-u-padding-t-050 lrv-u-font-size-12 lrv-u-font-weight-normal';
|
|
27
|
+
|
|
28
|
+
vlanding_video_card_player.c_title = false;
|
|
29
|
+
vlanding_video_card_player.c_span = false;
|
|
30
|
+
|
|
31
|
+
// Move the crop class to the card so the iframe will position relative to that
|
|
32
|
+
// instead of c-lazy-image
|
|
33
|
+
vlanding_video_card_player.vlanding_video_card_is_player = true;
|
|
34
|
+
vlanding_video_card_player.c_lazy_image.c_lazy_image_crop_class = '';
|
|
35
|
+
vlanding_video_card_player.vlanding_video_card_crop_class = 'lrv-a-crop-16x9';
|
|
36
|
+
|
|
37
|
+
c_title.c_title_classes = 'lrv-u-font-size-24 lrv-u-font-size-32@desktop lrv-u-padding-b-1 js-VideoShowcase-title';
|
|
38
|
+
c_title.c_title_link_classes = 'lrv-a-unstyle-link';
|
|
39
|
+
c_title.c_title_text = 'Roseanne is Cancelled and I\'m So Sad About It';
|
|
40
|
+
|
|
41
|
+
c_dek.c_dek_classes = 'lrv-u-font-size-18 lrv-u-margin-t-00 lrv-a-hidden@mobile-max js-VideoShowcase-dek';
|
|
42
|
+
|
|
43
|
+
c_heading.c_heading_text = 'The Latest Videos';
|
|
44
|
+
c_heading.c_heading_classes = 'lrv-u-font-size-18 lrv-u-font-size-24@desktop lrv-u-font-size-28@desktop-xl lrv-u-border-b-1 lrv-u-border-color-grey-light lrv-u-padding-b-050 lrv-u-margin-tb-1';
|
|
45
|
+
|
|
46
|
+
vlanding_video_showcase_card.vlanding_video_card_link_showcase_trigger_data_attr = '_JFOdYRfqBQ';
|
|
47
|
+
vlanding_video_showcase_card.vlanding_video_card_link_showcase_type_data_attr = 'youtube';
|
|
48
|
+
vlanding_video_showcase_card.c_span = false;
|
|
49
|
+
|
|
50
|
+
demoVideos.map( ( videoId ) => {
|
|
51
|
+
let newVideo = clonedeep( vlanding_video_showcase_card );
|
|
52
|
+
|
|
53
|
+
newVideo.vlanding_video_card_link_showcase_trigger_data_attr = videoId;
|
|
54
|
+
vlanding_video_showcase_video_cards.push( newVideo );
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
module.exports = {
|
|
58
|
+
vlanding_video_showcase_classes: '',
|
|
59
|
+
vlanding_video_card_player: vlanding_video_card_player,
|
|
60
|
+
c_span: c_span,
|
|
61
|
+
c_title: c_title,
|
|
62
|
+
c_dek: c_dek,
|
|
63
|
+
social_share: social_share,
|
|
64
|
+
c_heading: c_heading,
|
|
65
|
+
vlanding_video_showcase_video_cards_classes: 'js-Flickity js-Flickity--fifths js-Flickity--isContained',
|
|
66
|
+
vlanding_video_showcase_video_cards_item_classes: 'js-Flickity-cell lrv-u-margin-r-1',
|
|
67
|
+
vlanding_video_showcase_video_cards: vlanding_video_showcase_video_cards
|
|
68
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<section class="vlanding-video-showcase // {{ vlanding_video_showcase_classes }}" data-video-showcase="">
|
|
2
|
+
<div class="lrv-a-wrapper lrv-a-grid lrv-a-cols3@tablet">
|
|
3
|
+
<div class="lrv-a-grid-item lrv-a-span2@tablet">
|
|
4
|
+
{% if vlanding_video_card_player %}
|
|
5
|
+
{% include "@larva/modules/vlanding-video-card/vlanding-video-card.twig" with vlanding_video_card_player %}
|
|
6
|
+
{% endif %}
|
|
7
|
+
</div>
|
|
8
|
+
<div class="lrv-a-grid-item lrv-u-margin-tb-auto lrv-u-margin-tb-auto">
|
|
9
|
+
{% if c_span %}
|
|
10
|
+
{% include "@larva/components/c-span/c-span.twig" with c_span %}
|
|
11
|
+
{% endif %}
|
|
12
|
+
|
|
13
|
+
{% if c_title %}
|
|
14
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
15
|
+
{% endif %}
|
|
16
|
+
|
|
17
|
+
{% if c_dek %}
|
|
18
|
+
{% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
|
|
19
|
+
{% endif %}
|
|
20
|
+
|
|
21
|
+
{% if social_share %}
|
|
22
|
+
{% include "@larva/modules/social-share/social-share.twig" with social_share %}
|
|
23
|
+
{% endif %}
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
{% if vlanding_video_showcase_video_cards %}
|
|
28
|
+
|
|
29
|
+
<div class="lrv-a-wrapper lrv-u-padding-t-1">
|
|
30
|
+
{% if c_heading %}
|
|
31
|
+
{% include "@larva/components/c-heading/c-heading.twig" with c_heading %}
|
|
32
|
+
{% endif %}
|
|
33
|
+
|
|
34
|
+
<div class="vlanding-video-showcase__video-cards // lrv-u-overflow-hidden lrv-a-glue-parent">
|
|
35
|
+
<ul class="lrv-a-unstyle-list lrv-a-scrollable-grid@desktop-max {{ vlanding_video_showcase_video_cards_classes }}">
|
|
36
|
+
{% for item in vlanding_video_showcase_video_cards %}
|
|
37
|
+
<li class="{{ vlanding_video_showcase_video_cards_item_classes }}">
|
|
38
|
+
{% include "@larva/modules/vlanding-video-card/vlanding-video-card.twig" with item %}
|
|
39
|
+
</li>
|
|
40
|
+
{% endfor %}
|
|
41
|
+
</ul>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
{% endif %}
|
|
46
|
+
</section>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const clonedeep = require('lodash.clonedeep');
|
|
2
|
+
|
|
3
|
+
const c_link_prototype = require('../../components/c-link/c-link.prototype');
|
|
4
|
+
const c_span_prototype = require('../../components/c-span/c-span.prototype');
|
|
5
|
+
|
|
6
|
+
const c_welcome_span = clonedeep(c_span_prototype);
|
|
7
|
+
c_welcome_span.c_span_classes = 'subscriber-name lrv-a-font-body lrv-u-color-black lrv-u-font-size-12 lrv-u-text-transform-uppercase';
|
|
8
|
+
c_welcome_span.c_span_text = 'Welcome Name';
|
|
9
|
+
c_welcome_span.c_span_link_classes = 'lrv-u-color-black lrv-u-color-brand-primary:hover';
|
|
10
|
+
c_welcome_span.c_span_url = '#';
|
|
11
|
+
|
|
12
|
+
const c_account_link = clonedeep(c_link_prototype);
|
|
13
|
+
c_account_link.c_link_text = 'Account';
|
|
14
|
+
c_account_link.c_link_classes = 'subscriber-account-link lrv-u-font-family-body lrv-u-font-size-12 lrv-u-font-size-8@mobile-max lrv-a-icon-after lrv-a-icon-arrow-down lrv-a-unstyle-link lrv-u-border-b-1 lrv-u-border-color-brand-primary:hover lrv-u-border-color-white lrv-u-color-brand-primary:hover lrv-u-text-transform-uppercase';
|
|
15
|
+
|
|
16
|
+
const c_manage_account = clonedeep(c_link_prototype);
|
|
17
|
+
c_manage_account.c_link_text = 'Manage Account';
|
|
18
|
+
c_manage_account.c_link_classes = 'subscriber-self-care-link lrv-u-text-transform-uppercase lrv-a-font-secondary lrv-u-color-black lrv-u-font-size-12 lrv-u-width-100 lrv-u-text-align-center lrv-u-color-brand-primary:hover';
|
|
19
|
+
|
|
20
|
+
const c_log_out = clonedeep(c_link_prototype);
|
|
21
|
+
c_log_out.c_link_text = 'Sign Out';
|
|
22
|
+
c_log_out.c_link_classes = 'subscriber-logout-link lrv-a-font-secondary lrv-u-color-black lrv-u-color-brand-primary:hover lrv-u-font-size-12 lrv-u-text-transform-uppercase';
|
|
23
|
+
|
|
24
|
+
module.exports = {
|
|
25
|
+
o_account_menu_classes: 'js-Tooltip-parent lrv-a-glue-parent lrv-u-flex',
|
|
26
|
+
o_account_content_classes: 'js-Tooltip lrv-a-glue lrv-a-glue--t-100p lrv-u-box-shadow-medium',
|
|
27
|
+
o_account_content_inner_classes: 'lrv-a-glue-parent lrv-a-icon-after-arrow-top-left lrv-u-background-color-white lrv-u-border-a-2 lrv-u-flex lrv-u-flex-direction-column lrv-u-text-align-left lrv-u-flex-wrap-wrap lrv-u-margin-t-1 lrv-u-padding-tb-050 lrv-u-padding-lr-150 lrv-u-width-200',
|
|
28
|
+
o_account_welcome_span_classes: 'lrv-u-border-b-1 lrv-u-padding-tb-050',
|
|
29
|
+
o_account_manage_account_classes: 'lrv-u-border-b-1 lrv-u-padding-tb-050',
|
|
30
|
+
o_account_logout_classes: 'lrv-u-padding-tb-050',
|
|
31
|
+
c_welcome_span,
|
|
32
|
+
c_account_link,
|
|
33
|
+
c_manage_account,
|
|
34
|
+
c_log_out,
|
|
35
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<div class="o-account-menu // {{ o_account_menu_classes }}">
|
|
2
|
+
{% include "@larva/components/c-link/c-link.twig" with c_account_link %}
|
|
3
|
+
<div class="o-account-content // {{ o_account_content_classes }}">
|
|
4
|
+
<div class="o-account-content-inner // {{ o_account_content_inner_classes }}">
|
|
5
|
+
|
|
6
|
+
{% if c_welcome_span %}
|
|
7
|
+
<div class="o-account-welcome-span-link // {{ o_account_welcome_span_classes }} ">
|
|
8
|
+
{% include "@larva/components/c-span/c-span.twig" with c_welcome_span %}
|
|
9
|
+
</div>
|
|
10
|
+
{% endif %}
|
|
11
|
+
|
|
12
|
+
{% if c_manage_account %}
|
|
13
|
+
<div class="o-account-manage-account-link // {{ o_account_manage_account_classes }} ">
|
|
14
|
+
{% include "@larva/components/c-link/c-link.twig" with c_manage_account %}
|
|
15
|
+
</div>
|
|
16
|
+
{% endif %}
|
|
17
|
+
|
|
18
|
+
{% if c_log_out %}
|
|
19
|
+
<div class="o-account-logout-link // {{ o_account_logout_classes }} ">
|
|
20
|
+
{% include "@larva/components/c-link/c-link.twig" with c_log_out %}
|
|
21
|
+
</div>
|
|
22
|
+
{% endif %}
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const { __experimentalCloneWithFallback } = require( '@penskemediacorp/larva' );
|
|
2
|
+
|
|
3
|
+
const c_span = __experimentalCloneWithFallback( 'components/c-span/c-span.prototype' );
|
|
4
|
+
const c_timestamp = __experimentalCloneWithFallback( 'components/c-timestamp/c-timestamp.prototype' );
|
|
5
|
+
|
|
6
|
+
c_span.c_span_text = 'Author Name';
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
o_author_classes: 'lrv-a-font-secondary-regular-m',
|
|
10
|
+
o_author_text: 'By ',
|
|
11
|
+
c_span: c_span,
|
|
12
|
+
c_timestamp: c_timestamp
|
|
13
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<div class="o-author // {{ o_author_classes }}">
|
|
2
|
+
|
|
3
|
+
<span class="{{ o_author_by_classes }}">{{ o_author_text }}</span>
|
|
4
|
+
|
|
5
|
+
{% if c_span %}
|
|
6
|
+
{% include "@larva/components/c-span/c-span.twig" with c_span %}
|
|
7
|
+
{% endif %}
|
|
8
|
+
|
|
9
|
+
{% if c_timestamp %}
|
|
10
|
+
{% include "@larva/components/c-timestamp/c-timestamp.twig" with c_timestamp %}
|
|
11
|
+
{% endif %}
|
|
12
|
+
|
|
13
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
`o-card` is a pattern generally used for a story or article that features a vertical layout. It is a very flexible pattern that includes several options for included components. The order of these can be modified to some extent using flex and `order` utilities, but developers should try to avoid modifying the display order in a way that could impact the experience for users using the keyboard.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
const { __experimentalCloneWithFallback } = require( '@penskemediacorp/larva' );
|
|
3
|
+
|
|
4
|
+
const c_span = __experimentalCloneWithFallback( 'components/c-span/c-span.tag' );
|
|
5
|
+
const c_timestamp = __experimentalCloneWithFallback( 'components/c-timestamp/c-timestamp.prototype' );
|
|
6
|
+
const c_lazy_image = clonedeep( require( '../../components/c-lazy-image/c-lazy-image.prototype.js' ) );
|
|
7
|
+
const c_title = clonedeep( require( '../../components/c-title/c-title.prototype.js' ) );
|
|
8
|
+
|
|
9
|
+
module.exports = {
|
|
10
|
+
o_card_classes: '',
|
|
11
|
+
o_card_tag_text: '',
|
|
12
|
+
o_card_link_url: '',
|
|
13
|
+
o_card_link_classes: '',
|
|
14
|
+
o_card_image_wrap_classes: '',
|
|
15
|
+
o_card_content_classes: '',
|
|
16
|
+
c_lazy_image: c_lazy_image,
|
|
17
|
+
c_svg: false,
|
|
18
|
+
c_span: c_span,
|
|
19
|
+
c_tagline: false,
|
|
20
|
+
c_title: c_title,
|
|
21
|
+
c_timestamp: c_timestamp,
|
|
22
|
+
o_author: false,
|
|
23
|
+
article_kicker:false,
|
|
24
|
+
article_kicker_outer_classes:'',
|
|
25
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{% if o_card_tag_text %}
|
|
2
|
+
<{{ o_card_tag_text }} class="o-card {{ modifier_class }} {{ o_card_classes }}">
|
|
3
|
+
{% else %}
|
|
4
|
+
<article class="o-card {{ modifier_class }} {{ o_card_classes }}">
|
|
5
|
+
{% endif %}
|
|
6
|
+
|
|
7
|
+
{% if o_card_link_url %}
|
|
8
|
+
<a tabindex="0" href="{{ o_card_link_url }}" class="{{ o_card_link_classes }}">
|
|
9
|
+
{% endif %}
|
|
10
|
+
|
|
11
|
+
{% if o_card_image_wrap_classes %}
|
|
12
|
+
<div class="o-card__image-wrap {{ o_card_image_wrap_classes }}">
|
|
13
|
+
{% endif %}
|
|
14
|
+
|
|
15
|
+
{% if c_lazy_image %}
|
|
16
|
+
{% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
|
|
19
|
+
{% if o_indicator %}
|
|
20
|
+
{% include "@larva/objects/o-indicator/o-indicator.twig" with o_indicator %}
|
|
21
|
+
{% endif %}
|
|
22
|
+
|
|
23
|
+
{% if o_card_image_wrap_classes %}
|
|
24
|
+
</div>
|
|
25
|
+
{% endif %}
|
|
26
|
+
|
|
27
|
+
<div class="o-card__content {{ o_card_content_classes }}">
|
|
28
|
+
{% if o_span_group %}
|
|
29
|
+
{% include "@larva/objects/o-span-group/o-span-group.twig" with o_span_group %}
|
|
30
|
+
{% endif %}
|
|
31
|
+
|
|
32
|
+
{% if c_svg %}
|
|
33
|
+
{% include "@larva/components/c-svg/c-svg.twig" with c_svg %}
|
|
34
|
+
{% endif %}
|
|
35
|
+
|
|
36
|
+
{% if article_kicker %}
|
|
37
|
+
<div class="article_kicker_outer // {{ article_kicker_outer_classes }}">
|
|
38
|
+
{% include "@larva/modules/article-kicker/article-kicker.twig" with article_kicker %}
|
|
39
|
+
</div>
|
|
40
|
+
{% endif %}
|
|
41
|
+
|
|
42
|
+
{% if c_span %}
|
|
43
|
+
{% include "@larva/components/c-span/c-span.twig" with c_span %}
|
|
44
|
+
{% endif %}
|
|
45
|
+
|
|
46
|
+
{% if c_title %}
|
|
47
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
48
|
+
{% endif %}
|
|
49
|
+
|
|
50
|
+
{% if c_timestamp %}
|
|
51
|
+
{% include "@larva/components/c-timestamp/c-timestamp.twig" with c_timestamp %}
|
|
52
|
+
{% endif %}
|
|
53
|
+
|
|
54
|
+
{% if c_dek %}
|
|
55
|
+
{% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
|
|
56
|
+
{% endif %}
|
|
57
|
+
|
|
58
|
+
{% if c_tagline %}
|
|
59
|
+
{% include "@larva/components/c-tagline/c-tagline.twig" with c_tagline %}
|
|
60
|
+
{% endif %}
|
|
61
|
+
|
|
62
|
+
{% if o_author %}
|
|
63
|
+
{% include "@larva/objects/o-author/o-author.twig" with o_author %}
|
|
64
|
+
{% endif %}
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
{% if o_card_link_url %}
|
|
68
|
+
</a>
|
|
69
|
+
{% endif %}
|
|
70
|
+
|
|
71
|
+
{% if o_card_tag_text %}
|
|
72
|
+
</{{ o_card_tag_text }}>
|
|
73
|
+
{% else %}
|
|
74
|
+
</article>
|
|
75
|
+
{% endif %}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
`o-card-list` is a simple wrapping patttern for displaying a list of `o-card`s. This pattern is only necessary when semantic list elements are useful, or when a storing classes in a central place for the `li` wrapping element is useful.
|
|
2
|
+
|
|
3
|
+
A future improvement to this pattern would be an option for an `ol` since many of the card lists will be ordered chronologically.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const o_card = clonedeep( require( '../o-card/o-card.prototype' ) );
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
o_card_list_classes: 'lrv-a-unstyle-list',
|
|
7
|
+
o_card_list_item_classes: '',
|
|
8
|
+
o_card_list_items: [
|
|
9
|
+
o_card,
|
|
10
|
+
o_card,
|
|
11
|
+
o_card
|
|
12
|
+
]
|
|
13
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_title = clonedeep( require( '../../components/c-title/c-title.prototype' ) );
|
|
4
|
+
const c_checkbox_input = clonedeep( require( '../../components/c-checkbox-input/c-checkbox-input.prototype' ) );
|
|
5
|
+
|
|
6
|
+
c_title.c_title_url = '';
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
o_checkbox_input_list_classes: '',
|
|
10
|
+
o_checkbox_input_list_items_classes: 'lrv-a-unstyle-list',
|
|
11
|
+
o_checkbox_input_list_item_classes: '',
|
|
12
|
+
c_title: c_title,
|
|
13
|
+
o_checkbox_input_list_items: [
|
|
14
|
+
c_checkbox_input, c_checkbox_input, c_checkbox_input
|
|
15
|
+
]
|
|
16
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<section class="o-checkbox-input-list {{ o_checkbox_input_list_classes }}">
|
|
2
|
+
|
|
3
|
+
{% if c_title %}
|
|
4
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
5
|
+
{% endif %}
|
|
6
|
+
|
|
7
|
+
<ul class="{{ o_checkbox_input_list_items_classes }}">
|
|
8
|
+
{% for item in o_checkbox_input_list_items %}
|
|
9
|
+
<li class="{{ o_checkbox_input_list_item_classes }}">
|
|
10
|
+
{% include "@larva/components/c-checkbox-input/c-checkbox-input.twig" with item %}
|
|
11
|
+
</li>
|
|
12
|
+
{% endfor %}
|
|
13
|
+
</ul>
|
|
14
|
+
|
|
15
|
+
</section>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const o_collection_item = clonedeep( require( './o-collection-item.prototype' ) );
|
|
4
|
+
|
|
5
|
+
o_collection_item.o_collection_item_classes += ' lrv-a-floated-parent';
|
|
6
|
+
o_collection_item.o_figure.o_figure_classes += ' lrv-a-floated-left';
|
|
7
|
+
|
|
8
|
+
module.exports = o_collection_item;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_title = clonedeep( require( '../../components/c-title/c-title.prototype' ) );
|
|
4
|
+
const o_figure = clonedeep( require( '../o-figure/o-figure.prototype' ) );
|
|
5
|
+
const c_dek = clonedeep( require( '../../components/c-dek/c-dek.prototype' ) );
|
|
6
|
+
|
|
7
|
+
module.exports = {
|
|
8
|
+
c_title: c_title,
|
|
9
|
+
c_dek: c_dek,
|
|
10
|
+
o_figure: o_figure,
|
|
11
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<div class="o-collection-item {{ o_collection_item_classes }}">
|
|
2
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
3
|
+
{% include "@larva/objects/o-figure/o-figure.twig" with o_figure %}
|
|
4
|
+
{% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
|
|
5
|
+
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
o-email-capture-form is an object intended to collect emails via the ExactTarget API. It accepts an array of c-hidden-fields for this the Opted In and Date ExactTarget data.
|
|
2
|
+
|
|
3
|
+
Although it could be used to collect emails via other services, developers should consider creating project-level patterns for anything other than ExactTarget.
|
|
4
|
+
|
|
5
|
+
Also note that o-email-capture-form should not be used to provide an email input in a longer form – it should be used only when a form required a single input for an email.
|
|
6
|
+
|
|
7
|
+
This pattern is intended to go along with the EmailCapture larva-js package that will handle appending the input value to a success URL when the form is submitted.
|
|
8
|
+
|
|
9
|
+
## Available configuraitons:
|
|
10
|
+
|
|
11
|
+
* `o-email-capture-form.minimal` – This configuration shows the input as a single line, and the submit button as a small arrow to the right of the input.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const o_email_capture_form = clonedeep( require( './o-email-capture-form.prototype' ) );
|
|
4
|
+
const c_button = clonedeep( require( '../../components/c-button/c-button.stripped' ) );
|
|
5
|
+
const c_email_field = clonedeep( require( '../../components/c-email-field/c-email-field.ghost' ) );
|
|
6
|
+
|
|
7
|
+
c_button.c_button_classes += ' lrv-a-icon-after lrv-a-icon-arrow-right';
|
|
8
|
+
c_button.c_button_inner_classes = 'lrv-a-screen-reader-only';
|
|
9
|
+
c_button.c_button_type_attr = 'submit';
|
|
10
|
+
|
|
11
|
+
o_email_capture_form.c_button = c_button;
|
|
12
|
+
o_email_capture_form.c_email_field = c_email_field;
|
|
13
|
+
o_email_capture_form.o_email_capture_form_inner_classes = 'lrv-u-flex lrv-u-align-items-center lrv-u-justify-content-center lrv-u-border-b-1 lrv-u-border-color-currentColor';
|
|
14
|
+
|
|
15
|
+
module.exports = o_email_capture_form;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_button = clonedeep( require( '../../components/c-button/c-button.prototype' ) );
|
|
4
|
+
const c_email_field = clonedeep( require( '../../components/c-email-field/c-email-field.prototype' ) );
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
o_email_capture_form_classes: '',
|
|
8
|
+
o_email_capture_form_context_name_attr: 'FormPost',
|
|
9
|
+
o_email_capture_form_inner_classes: '',
|
|
10
|
+
o_email_capture_form_action_url: '',
|
|
11
|
+
o_email_capture_form_button_text: 'Sign up',
|
|
12
|
+
o_email_capture_form_name_attr: 'email-capture-form',
|
|
13
|
+
o_email_capture_form_success_url: '',
|
|
14
|
+
c_button: c_button,
|
|
15
|
+
c_email_field: c_email_field,
|
|
16
|
+
o_email_capture_form_hidden_field_items: []
|
|
17
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<form class="o-email-capture-form lrv-js-EmailCapture {{ o_email_capture_form_classes }}" method="post" action="{{ o_email_capture_form_action_url }}" name="{{ o_email_capture_form_name_attr }}" target="_blank">
|
|
2
|
+
|
|
3
|
+
<div class="o-email-capture-form__inner {{ o_email_capture_form_inner_classes }}">
|
|
4
|
+
{% include "@larva/components/c-email-field/c-email-field.twig" with c_email_field %}
|
|
5
|
+
{% include "@larva/components/c-button/c-button.twig" with c_button %}
|
|
6
|
+
</div>
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<input type="hidden" name="__contextName" value="{{ o_email_capture_form_context_name_attr }}"/>
|
|
10
|
+
<input type="hidden" name="__executionContext" value="Post" />
|
|
11
|
+
<input type="hidden" name="__successPage" data-email-capture-success-url="{{ o_email_capture_form_success_url }}" value="" />
|
|
12
|
+
|
|
13
|
+
{% for item in o_email_capture_form_hidden_field_items %}
|
|
14
|
+
{% include "@larva/components/c-hidden-field/c-hidden-field.twig" with item %}
|
|
15
|
+
{% endfor %}
|
|
16
|
+
</form>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
o-figure is designed to support images with a caption and a credit, primarily used within editorial content in `the_content` in WordPress. pmc-core-v2 contains a filter on the `caption` shortcode that applies this pattern. Is it also used in for featured images that include credits and captions.
|
|
2
|
+
|
|
3
|
+
It consists of a `figure` element around a `c-lazy-image` and `c-figcaption`, with an optional link wrapper to make the entire block clickable.
|
|
4
|
+
|
|
5
|
+
There is an option for adding an inline style for the width on the `figure` to provide a smooth paint in post content.
|
|
6
|
+
|
|
7
|
+
The pattern supports Lazy Loading with `c-lazy-image`.
|
|
8
|
+
|
|
9
|
+
## When to use:
|
|
10
|
+
* For images or content that can stand on its own, outside of the document flow. Read more about [semantic use of `figure` here](http://html5doctor.com/the-figure-figcaption-elements/).
|
|
11
|
+
|
|
12
|
+
## When not to use:
|
|
13
|
+
* For images that cannot stand on their own as content, e.g. a featured image for a post that requires additional post content to be understood.
|
|
14
|
+
* Logo or icons
|
|
15
|
+
|
|
16
|
+
## Future:
|
|
17
|
+
Could support non-image figures such as charts, embeds, or quotes.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_figcaption = clonedeep( require( '../../components/c-figcaption/c-figcaption.prototype' ) );
|
|
4
|
+
const c_lazy_image = clonedeep( require( '../../components/c-lazy-image/c-lazy-image.prototype' ) );
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
c_figcaption: c_figcaption,
|
|
8
|
+
c_lazy_image: c_lazy_image,
|
|
9
|
+
o_figure_link_tabindex_attr: '',
|
|
10
|
+
o_figure_link_target_attr: '_self',
|
|
11
|
+
o_figure_link_url: false,
|
|
12
|
+
o_figure_classes: '',
|
|
13
|
+
o_figure_link_classes: 'lrv-a-unstyle-link ',
|
|
14
|
+
o_figure_figcaption_outer: false,
|
|
15
|
+
o_figure_figcaption_outer_classes: '',
|
|
16
|
+
};
|