@penskemediacorp/larva-patterns 1.32.0 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/modules/faq/faq.prototype.js +30 -0
- package/modules/faq/faq.twig +18 -0
- package/modules/footer-newsletter/footer-newsletter.prototype.js +7 -3
- package/modules/mega-menu-footer/mega-menu-footer.prototype.js +7 -0
- package/modules/newsletter/newsletter.prototype.js +1 -1
- package/modules/product-card/product-card.prototype.js +40 -0
- package/modules/product-card/product-card.twig +57 -0
- package/objects/o-faq-item/o-faq-item.prototype.js +18 -0
- package/objects/o-faq-item/o-faq-item.twig +8 -0
- package/package.json +4 -4
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_title = clonedeep(
|
|
4
|
+
require( '@penskemediacorp/larva-patterns/components/c-title/c-title.prototype' )
|
|
5
|
+
);
|
|
6
|
+
|
|
7
|
+
const c_dek = clonedeep(
|
|
8
|
+
require( '@penskemediacorp/larva-patterns/components/c-dek/c-dek.prototype' )
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
const faq_item = clonedeep(
|
|
12
|
+
require( '@penskemediacorp/larva-patterns/objects/o-faq-item/o-faq-item.prototype' )
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
c_title.c_title_classes = 'lrv-u-text-align-center lrv-u-padding-tb-075 lrv-u-border-t-1 lrv-u-border-b-1';
|
|
16
|
+
c_title.c_title_url = '';
|
|
17
|
+
c_dek.c_dek_classes = 'lrv-u-padding-b-150 lrv-u-margin-t-150 lrv-u-border-b-1';
|
|
18
|
+
|
|
19
|
+
const faq_items = [
|
|
20
|
+
faq_item,
|
|
21
|
+
faq_item,
|
|
22
|
+
faq_item,
|
|
23
|
+
faq_item,
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
module.exports = {
|
|
27
|
+
c_title,
|
|
28
|
+
c_dek,
|
|
29
|
+
faq_items,
|
|
30
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<div class="faq // {{ faq_classes }}">
|
|
2
|
+
<div class="{{ faq_banner_classes }}">
|
|
3
|
+
<div class="faq-title {{ faq_title_classes }}">
|
|
4
|
+
{% if c_title %}
|
|
5
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
6
|
+
{% endif %}
|
|
7
|
+
{% if c_dek %}
|
|
8
|
+
{% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
|
|
9
|
+
{% endif %}
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="{{ faq_items_classes }}">
|
|
13
|
+
{% for item in faq_items %}
|
|
14
|
+
{% include "@larva/objects/o-faq-item/o-faq-item.twig" with item %}
|
|
15
|
+
{% endfor %}
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
<div>
|
|
@@ -6,9 +6,10 @@ const o_email_capture_form_minimal = clonedeep(
|
|
|
6
6
|
const c_title = clonedeep(
|
|
7
7
|
require( '../../components/c-title/c-title.prototype' )
|
|
8
8
|
);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
);
|
|
9
|
+
|
|
10
|
+
const c_tagline_prototype = require( '../../components/c-tagline/c-tagline.prototype' );
|
|
11
|
+
const c_tagline = clonedeep( c_tagline_prototype );
|
|
12
|
+
const c_tagline_terms = clonedeep( c_tagline_prototype );
|
|
12
13
|
|
|
13
14
|
c_title.c_title_url = false;
|
|
14
15
|
c_title.c_title_text = 'Stay In The Know';
|
|
@@ -19,6 +20,8 @@ c_tagline.c_tagline_text = 'Sign up for our daily newsletter';
|
|
|
19
20
|
c_tagline.c_tagline_classes =
|
|
20
21
|
'lrv-u-font-size-14 u-font-style-italic lrv-u-font-family-basic lrv-u-text-align-center';
|
|
21
22
|
|
|
23
|
+
c_tagline_terms.c_tagline_text = '';
|
|
24
|
+
|
|
22
25
|
o_email_capture_form_minimal.c_button.c_button_classes += ' lrv-a-icon-invert';
|
|
23
26
|
|
|
24
27
|
module.exports = {
|
|
@@ -26,5 +29,6 @@ module.exports = {
|
|
|
26
29
|
'lrv-u-text-align-center lrv-u-color-white lrv-u-background-color-black lrv-u-flex lrv-u-flex-direction-column lrv-u-align-items-center',
|
|
27
30
|
c_title,
|
|
28
31
|
c_tagline,
|
|
32
|
+
c_tagline_terms,
|
|
29
33
|
o_email_capture_form: o_email_capture_form_minimal,
|
|
30
34
|
};
|
|
@@ -42,8 +42,15 @@ o_email_capture_form.c_button.c_button_inner_classes =
|
|
|
42
42
|
'lrv-u-background-color-white lrv-u-padding-l-050';
|
|
43
43
|
o_email_capture_form.c_button.c_button_text = 'Sign Up';
|
|
44
44
|
|
|
45
|
+
const c_tagline_prototype = require( '../../components/c-tagline/c-tagline.prototype' );
|
|
46
|
+
const c_tagline_terms = clonedeep( c_tagline_prototype );
|
|
47
|
+
|
|
48
|
+
c_tagline_terms.c_tagline_classes = 'lrv-a-font-basic-xxs lrv-u-margin-t-050 lrv-a-children-link-decoration-underline';
|
|
49
|
+
c_tagline_terms.c_tagline_text = false;
|
|
50
|
+
|
|
45
51
|
module.exports = {
|
|
46
52
|
o_email_capture_form,
|
|
53
|
+
c_tagline_terms,
|
|
47
54
|
o_social_list,
|
|
48
55
|
social_heading,
|
|
49
56
|
mega_menu_subscribe,
|
|
@@ -35,7 +35,7 @@ o_email_capture_form.c_email_field.c_email_field_label_classes =
|
|
|
35
35
|
'lrv-a-screen-reader-only';
|
|
36
36
|
o_email_capture_form.c_email_field.c_email_field_label_text = 'Email Address';
|
|
37
37
|
|
|
38
|
-
c_tagline_terms.c_tagline_classes = 'lrv-u-margin-t-1';
|
|
38
|
+
c_tagline_terms.c_tagline_classes = 'lrv-u-margin-t-1 lrv-a-font-basic-xxs lrv-a-children-link-decoration-underline';
|
|
39
39
|
c_tagline_terms.c_tagline_text = false;
|
|
40
40
|
c_tagline_terms.c_tagline_markup =
|
|
41
41
|
'By subscribing, I agree to the <a href="#">Terms of Use</a> and <a href="#">Privacy Policy</a>.';
|
|
@@ -0,0 +1,40 @@
|
|
|
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_figcaption = clonedeep( require( '../../components/c-figcaption/c-figcaption.prototype' ) );
|
|
5
|
+
const c_title = clonedeep( require( '../../components/c-title/c-title.prototype' ) );
|
|
6
|
+
const c_tagline = clonedeep( require( '../../components/c-tagline/c-tagline.prototype' ) );
|
|
7
|
+
const c_button = clonedeep( require( '../../components/c-button/c-button.prototype' ) );
|
|
8
|
+
const c_dek = clonedeep( require( '../../components/c-dek/c-dek.prototype' ) );
|
|
9
|
+
|
|
10
|
+
c_figcaption.c_figcaption_caption_markup = false;
|
|
11
|
+
c_figcaption.c_figcaption_credit_text_markup = 'Courtesy of Nordic Track';
|
|
12
|
+
c_figcaption.c_figcaption_classes = 'lrv-u-flex lrv-u-justify-content-end lrv-u-margin-t-025 lrv-u-color-grey-dark lrv-u-text-transform-uppercase lrv-a-font-basic-xxs';
|
|
13
|
+
|
|
14
|
+
c_title.c_title_text = 'NordicTrack Commercial S22i Studio Cycle';
|
|
15
|
+
c_title.c_title_classes = 'lrv-a-font-primary-xxl lrv-u-margin-t-1 lrv-u-margin-t-075@mobile-max lrv-a-unstyle-inner-links';
|
|
16
|
+
c_title.c_title_url = '';
|
|
17
|
+
|
|
18
|
+
c_tagline.c_tagline_text = 'Powerful, iFit ready, and priced right!';
|
|
19
|
+
c_tagline.c_tagline_classes = 'lrv-a-font-body-xxl lrv-u-margin-t-125 lrv-u-margin-b-00';
|
|
20
|
+
|
|
21
|
+
c_button.c_button_classes = 'lrv-u-margin-t-125 lrv-a-font-basic-m lrv-a-unstyle-link lrv-u-display-block';
|
|
22
|
+
c_button.c_button_inner_classes = 'lrv-u-border-b-2 lrv-u-border-t-2 lrv-u-border-l-1 lrv-u-border-r-1 lrv-u-padding-tb-050 lrv-u-text-transform-uppercase lrv-a-icon lrv-a-icon-before lrv-u-align-items-start lrv-u-padding-lr-050 lrv-u-background-color-brand-primary:hover';
|
|
23
|
+
c_button.c_button_text = 'Subscribe $65.99';
|
|
24
|
+
c_button.c_button_url = '#';
|
|
25
|
+
|
|
26
|
+
const buy_now_buttons = [ c_button, c_button ];
|
|
27
|
+
|
|
28
|
+
c_dek.c_dek_text = false;
|
|
29
|
+
c_dek.c_dek_markup = 'NordicTrack went a similar route as Bowflex with their S22i cycle.Instead of the regular fixed position, the S22i can adjust for incline (up to 20%) and decline (down to -10%) for a more realistic ride and better muscle engagement. The kicker with this feature is that trainers can digitally adjust your bike’s incline/decline in real-time during a live class. The S22i’s construction is top-quality with a steel frame and a solid 32-pound flywheel. The bike also uses NordicTrack’s SMR Silent Magnetic Resistance system which improves fluidity while making the bike quieter as well. NordicTrack offers both live, studio-like classes as well as a library of on-demand sessions through their iFit membership. You also get off-bike exercises including strength training, meditation and mindfulness sessions with a swivel of the screen. This iFit service has somewhat of a leg up on other brands because you get a whole year free to test it out. The classes, along with a swath of exercise metrics, are shown on a large, crisp 22-inch display. Among these stats is heart rate, which the bike measures via hand pulse sensors or a separate Bluetooth-connected monitor.';
|
|
30
|
+
c_dek.c_dek_classes = 'lrv-u-order-100 lrv-u-margin-t-125 lrv-u-margin-t-2@mobile-max lrv-a-font-body-xxl lrv-u-margin-b-050';
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
product_card_wrapper_classes: 'lrv-u-padding-tb-125',
|
|
34
|
+
c_lazy_image,
|
|
35
|
+
c_figcaption,
|
|
36
|
+
c_title,
|
|
37
|
+
c_tagline,
|
|
38
|
+
buy_now_buttons,
|
|
39
|
+
c_dek,
|
|
40
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<div class="product-card // {{ product_card_classes }}">
|
|
2
|
+
<div class="{{ product_card_wrapper_classes }}">
|
|
3
|
+
<div class="{{ product_card_image_classes }}">
|
|
4
|
+
{% if best_deal_icon %}
|
|
5
|
+
{% include "@larva/components/c-svg/c-svg.twig" with best_deal_icon %}
|
|
6
|
+
{% endif %}
|
|
7
|
+
|
|
8
|
+
{% if c_lazy_image %}
|
|
9
|
+
{% include "@larva/components/c-lazy-image/c-lazy-image.twig" with c_lazy_image %}
|
|
10
|
+
{% endif %}
|
|
11
|
+
|
|
12
|
+
{% if c_figcaption %}
|
|
13
|
+
{% include "@larva/components/c-figcaption/c-figcaption.twig" with c_figcaption %}
|
|
14
|
+
{% endif %}
|
|
15
|
+
</div>
|
|
16
|
+
<div class="{{ product_card_details_classes }}">
|
|
17
|
+
{% if article_kicker %}
|
|
18
|
+
{% include "@larva/modules/article-kicker/article-kicker.twig" with article_kicker %}
|
|
19
|
+
{% endif %}
|
|
20
|
+
|
|
21
|
+
{% if c_title %}
|
|
22
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
23
|
+
{% endif %}
|
|
24
|
+
|
|
25
|
+
{% if c_tagline %}
|
|
26
|
+
{% include "@larva/components/c-tagline/c-tagline.twig" with c_tagline %}
|
|
27
|
+
{% endif %}
|
|
28
|
+
|
|
29
|
+
<div class="buy-now-buttons {{ product_card_buy_now_buttons_classes }}">
|
|
30
|
+
{% if buy_now_buttons %}
|
|
31
|
+
{% for c_button in buy_now_buttons %}
|
|
32
|
+
<div class="{{ product_card_buy_now_button_wrapper_classes }}">
|
|
33
|
+
{% if product_card_price_outside %}
|
|
34
|
+
<p class="{{ product_card_price_outside_classes }}">
|
|
35
|
+
{% if c_button['current_price'] %}
|
|
36
|
+
{% include "@larva/components/c-span/c-span.twig" with c_button['current_price'] %}
|
|
37
|
+
{% endif %}
|
|
38
|
+
{% if c_button['original_price'] %}
|
|
39
|
+
{% include "@larva/components/c-span/c-span.twig" with c_button['original_price'] %}
|
|
40
|
+
{% endif %}
|
|
41
|
+
{% if c_button['discount'] %}
|
|
42
|
+
{% include "@larva/components/c-span/c-span.twig" with c_button['discount'] %}
|
|
43
|
+
{% endif %}
|
|
44
|
+
</p>
|
|
45
|
+
{% endif %}
|
|
46
|
+
{% include "@larva/components/c-button/c-button.twig" with c_button %}
|
|
47
|
+
</div>
|
|
48
|
+
{% endfor %}
|
|
49
|
+
{% endif %}
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
{% if c_dek %}
|
|
53
|
+
{% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
|
|
54
|
+
{% endif %}
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const clonedeep = require( 'lodash.clonedeep' );
|
|
2
|
+
|
|
3
|
+
const c_title = clonedeep(
|
|
4
|
+
require( '../../components/c-title/c-title.prototype' )
|
|
5
|
+
);
|
|
6
|
+
const c_dek = clonedeep(
|
|
7
|
+
require( '../../components/c-dek/c-dek.prototype' )
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
c_title.c_title_url = '';
|
|
11
|
+
c_title.c_title_classes = 'lrv-u-margin-t-1 lrv-u-padding-b-1 lrv-u-border-b-1';
|
|
12
|
+
|
|
13
|
+
module.exports = {
|
|
14
|
+
modifier_class: '',
|
|
15
|
+
o_faq_item_classes: '',
|
|
16
|
+
c_title,
|
|
17
|
+
c_dek,
|
|
18
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<div class="o-faq-item {{ modifier_class }} {{ o_faq_item_classes }}">
|
|
2
|
+
{% if c_title %}
|
|
3
|
+
{% include "@larva/components/c-title/c-title.twig" with c_title %}
|
|
4
|
+
{% endif %}
|
|
5
|
+
{% if c_dek %}
|
|
6
|
+
{% include "@larva/components/c-dek/c-dek.twig" with c_dek %}
|
|
7
|
+
{% endif %}
|
|
8
|
+
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@penskemediacorp/larva-patterns",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "Larva markup patterns.",
|
|
5
5
|
"author": "laras126 <laras126@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/Penske-Media-Corp/pmc-larva/tree/master/packages/patterns#readme",
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
"url": "https://github.com/Penske-Media-Corp/pmc-larva/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@penskemediacorp/larva-css": "^1.
|
|
24
|
-
"@penskemediacorp/larva-js": "^1.
|
|
23
|
+
"@penskemediacorp/larva-css": "^1.34.0",
|
|
24
|
+
"@penskemediacorp/larva-js": "^1.34.0",
|
|
25
25
|
"@penskemediacorp/larva-svg": "^1.28.0",
|
|
26
26
|
"lodash.clonedeep": "^4.5.0"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "c8be3e0c6bcf9ef1397b7e1c3eaa5adccc9299bc"
|
|
29
29
|
}
|