mod-build 4.0.6 → 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +1 -1
  3. package/public/resources/scripts/abandonment/abandonment-1df90ee155f6c0893d90.min.js +2 -0
  4. package/public/resources/scripts/abandonment/abandonment.min.js +2 -0
  5. package/public/resources/scripts/callrail/callrail-5c7c537f04af468600cf.min.js +2 -0
  6. package/public/resources/scripts/callrail/callrail.min.js +2 -0
  7. package/public/resources/scripts/footer/footer-component-7b5e263f64568573ecc0.min.js +2 -0
  8. package/public/resources/scripts/footer/footer-component.min.js +2 -0
  9. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js +2 -0
  10. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js.map +1 -0
  11. package/public/resources/scripts/helpers/isZipCodeValid.min.js +2 -0
  12. package/public/resources/scripts/helpers/isZipCodeValid.min.js.map +1 -0
  13. package/public/resources/scripts/jornaya.hbs +35 -0
  14. package/public/resources/scripts/jornaya.html +35 -0
  15. package/public/resources/scripts/mod-alytics/modalytics-0ac7d7a5a72ea67a0f47.min.js +2 -0
  16. package/public/resources/scripts/mod-alytics/modalytics.min.js +2 -0
  17. package/public/resources/scripts/mod-form/form/homeowner-62292fdc874b2d2f5c82.min.js +2 -0
  18. package/public/resources/scripts/mod-form/form/homeowner.min.js +2 -0
  19. package/public/resources/scripts/mod-utils/modutils-15069d7b728a555fb3f7.min.js +2 -0
  20. package/public/resources/scripts/mod-utils/modutils.min.js +2 -0
  21. package/public/resources/scripts/trusted-form.hbs +38 -0
  22. package/public/resources/scripts/trusted-form.html +38 -0
  23. package/public/resources/styles/components/abandonment/abandonment-a8571a9e32ed6ef9acb4.min.css +1 -0
  24. package/public/resources/styles/components/abandonment/abandonment.min.css +1 -0
  25. package/public/resources/styles/components/footer/mod-footer-1fb2cec3278f29df57d0.min.css +1 -0
  26. package/public/resources/styles/components/footer/mod-footer.min.css +1 -0
  27. package/public/resources/styles/components/footer/qs-footer-9a3b0ab00428b03e6e9e.min.css +1 -0
  28. package/public/resources/styles/components/footer/qs-footer.min.css +1 -0
  29. package/siteconfig.js +1 -0
  30. package/src/accessible-components/button/_button.scss +319 -0
  31. package/src/accessible-components/button/back-button.html +8 -0
  32. package/src/accessible-components/button/button.html +17 -0
  33. package/src/accessible-components/carousel/_carousel.scss +112 -0
  34. package/src/accessible-components/carousel/carousel.html +25 -0
  35. package/src/accessible-components/carousel/carousel.js +3426 -0
  36. package/src/accessible-components/carousel/carousel.js.map +1 -0
  37. package/src/accessible-components/carousel/carousel.min.js +6 -0
  38. package/src/accessible-components/carousel/carousel.min.js.map +1 -0
  39. package/src/accessible-components/checkbox/_checkbox.scss +153 -0
  40. package/src/accessible-components/checkbox/checkbox-group.html +18 -0
  41. package/src/accessible-components/checkbox/checkbox.html +8 -0
  42. package/src/accessible-components/expand-collapse/_expand-collapse.scss +129 -0
  43. package/src/accessible-components/expand-collapse/expand-collapse.html +14 -0
  44. package/src/accessible-components/expand-collapse/expand-collapse.js +52 -0
  45. package/src/accessible-components/expand-collapse/expand-collapse.min.js +2 -0
  46. package/src/accessible-components/expand-collapse/expand-collapse.min.js.map +1 -0
  47. package/src/accessible-components/featured-block/_featured-block.scss +221 -0
  48. package/src/accessible-components/featured-block/featured-block.html +54 -0
  49. package/src/accessible-components/foot-assets/foot-assets.html +112 -0
  50. package/src/accessible-components/footer/footer.html +2 -0
  51. package/src/accessible-components/gtm-body/gtm-body.html +4 -0
  52. package/src/accessible-components/head/head.html +187 -0
  53. package/src/accessible-components/header/_header.scss +289 -0
  54. package/src/accessible-components/header/header.html +66 -0
  55. package/src/accessible-components/hero/_hero.scss +405 -0
  56. package/src/accessible-components/hero/hero.html +53 -0
  57. package/src/accessible-components/how-it-works/_how-it-works.scss +217 -0
  58. package/src/accessible-components/how-it-works/how-it-works-carousel.html +12 -0
  59. package/src/accessible-components/how-it-works/how-it-works-static.html +12 -0
  60. package/src/accessible-components/how-it-works/how-it-works.html +14 -0
  61. package/src/accessible-components/information/_information.scss +96 -0
  62. package/src/accessible-components/information/information.html +32 -0
  63. package/src/accessible-components/input/_input.scss +204 -0
  64. package/src/accessible-components/input/input.html +22 -0
  65. package/src/accessible-components/input/textarea.html +9 -0
  66. package/src/accessible-components/partners/_partners.scss +234 -0
  67. package/src/accessible-components/partners/partners.html +56 -0
  68. package/src/accessible-components/picture/picture.html +19 -0
  69. package/src/accessible-components/preloader/_preloader.scss +61 -0
  70. package/src/accessible-components/preloader/preloader.html +23 -0
  71. package/src/accessible-components/progress-bar/_progress-bar.scss +140 -0
  72. package/src/accessible-components/progress-bar/progress-bar.html +21 -0
  73. package/src/accessible-components/progress-bar/progress-bar.js +37 -0
  74. package/src/accessible-components/progress-bar/progress-bar.min.js +2 -0
  75. package/src/accessible-components/progress-bar/progress-bar.min.js.map +1 -0
  76. package/src/accessible-components/radio-button/_radio-button.scss +586 -0
  77. package/src/accessible-components/radio-button/radio-button.html +33 -0
  78. package/src/accessible-components/reviews/_reviews.scss +180 -0
  79. package/src/accessible-components/reviews/reviews-carousel.html +12 -0
  80. package/src/accessible-components/reviews/reviews-static.html +12 -0
  81. package/src/accessible-components/reviews/reviews.html +37 -0
  82. package/src/accessible-components/select/_select.scss +87 -0
  83. package/src/accessible-components/select/select.html +10 -0
  84. package/src/accessible-components/steps/_steps.scss +640 -0
  85. package/src/accessible-components/steps/defaultFormFieldConfig.json +109 -0
  86. package/src/accessible-components/steps/step-fields.html +38 -0
  87. package/src/accessible-components/steps/steps.html +168 -0
  88. package/src/accessible-components/tcpa/_tcpa.scss +49 -0
  89. package/src/accessible-components/tcpa/tcpa.html +9 -0
  90. package/src/accessible-components/tile/_tile.scss +117 -0
  91. package/src/accessible-components/tile/tile.html +14 -0
  92. package/src/accessible-components/value-props/_value-props.scss +102 -0
  93. package/src/accessible-components/value-props/value-props.html +17 -0
  94. package/src/accessible-components/zip-control/_zip-control.scss +79 -0
  95. package/src/accessible-components/zip-control/zip-control.html +10 -0
  96. package/src/resources/data/tcpa.json +4 -0
  97. package/src/resources/templates/modals/about/index.hbs +9 -0
  98. package/src/resources/templates/modals/about/index.html +9 -0
  99. package/src/resources/templates/modals/contact-us/index.hbs +348 -0
  100. package/src/resources/templates/modals/contact-us/index.html +348 -0
  101. package/src/resources/templates/modals/faq/index.hbs +9 -0
  102. package/src/resources/templates/modals/faq/index.html +9 -0
  103. package/src/resources/templates/modals/privacy/index.hbs +236 -0
  104. package/src/resources/templates/modals/privacy/index.html +236 -0
  105. package/src/resources/templates/modals/terms/index.hbs +166 -0
  106. package/src/resources/templates/modals/terms/index.html +166 -0
  107. package/src/scripts/retry-axios.js +21 -0
  108. package/tasks/grab-cdn.js +7 -1
  109. package/tasks/grab-form-helpers.js +11 -2
  110. package/tasks/grab-shared-components.js +10 -3
  111. package/tasks/grab-shared-scripts.js +8 -1
  112. package/tasks/templates.js +11 -2
@@ -0,0 +1,109 @@
1
+ {
2
+ "zip": {
3
+ "fieldType": "input",
4
+ "attributes": {
5
+ "name": "zip",
6
+ "id": "zip",
7
+ "type": "text",
8
+ "pattern": "[0-9]*",
9
+ "placeholder": "Enter Zip Code",
10
+ "maxlength": "5",
11
+ "data": {
12
+ "required": "zip"
13
+ }
14
+ },
15
+ "errorMessage": "Please enter a valid zip code.",
16
+ "labelInInput": "Zip Code"
17
+ },
18
+ "firstName": {
19
+ "fieldType": "input",
20
+ "attributes": {
21
+ "name": "firstName",
22
+ "id": "firstName",
23
+ "type": "text",
24
+ "placeholder": "First Name",
25
+ "maxlength": "30",
26
+ "data": {
27
+ "required": "name",
28
+ "name-min": "2"
29
+ }
30
+ },
31
+ "errorMessage": "Please enter a valid first name.",
32
+ "labelInInput": "First Name"
33
+ },
34
+ "lastName": {
35
+ "fieldType": "input",
36
+ "attributes": {
37
+ "name": "lastName",
38
+ "id": "lastName",
39
+ "type": "text",
40
+ "placeholder": "Last Name",
41
+ "maxlength": "30",
42
+ "data": {
43
+ "required": "name",
44
+ "name-min": "2"
45
+ }
46
+ },
47
+ "errorMessage": "Please enter a valid last name.",
48
+ "labelInInput": "Last Name"
49
+ },
50
+ "zip1": {
51
+ "fieldType": "input",
52
+ "attributes": {
53
+ "name": "zip1",
54
+ "id": "zip1",
55
+ "type": "text",
56
+ "pattern": "[0-9]*",
57
+ "placeholder": "Enter Zip Code",
58
+ "maxlength": "5",
59
+ "data": {
60
+ "required": "zip"
61
+ }
62
+ },
63
+ "errorMessage": "Please enter a valid zip code.",
64
+ "labelInInput": "Zip Code"
65
+ },
66
+ "homePhone": {
67
+ "fieldType": "input",
68
+ "attributes": {
69
+ "name": "homePhone",
70
+ "id": "homePhone",
71
+ "type": "tel",
72
+ "placeholder": "Phone Number",
73
+ "maxlength": "14",
74
+ "data": {
75
+ "required": "phone"
76
+ }
77
+ },
78
+ "errorMessage": "Please enter a valid phone number.",
79
+ "labelInInput": "Phone Number"
80
+ },
81
+ "email": {
82
+ "fieldType": "input",
83
+ "attributes": {
84
+ "name": "email",
85
+ "id": "email",
86
+ "type": "email",
87
+ "placeholder": "Email",
88
+ "data": {
89
+ "required": "email"
90
+ }
91
+ },
92
+ "errorMessage": "Please enter a valid email address.",
93
+ "labelInInput": "Email Address"
94
+ },
95
+ "address": {
96
+ "fieldType": "input",
97
+ "attributes": {
98
+ "name": "address",
99
+ "id": "address",
100
+ "type": "text",
101
+ "placeholder": "123 Your St.",
102
+ "data": {
103
+ "required": "address"
104
+ }
105
+ },
106
+ "errorMessage": "Please enter a valid address.",
107
+ "labelInInput": "Address"
108
+ }
109
+ }
@@ -0,0 +1,38 @@
1
+ {{#xif "this.stepFields.fieldType === 'radio'"}}
2
+ {{ fileInclude 'src/accessible-components/radio-button/radio-button.html'
3
+ field = this.stepFields
4
+ }}
5
+ {{/xif}}
6
+ {{#xif "this.stepFields.fieldType === 'input'"}}
7
+ {{ fileInclude 'src/accessible-components/input/input.html'
8
+ field = this.stepFields
9
+ }}
10
+ {{/xif}}
11
+ {{#xif "this.stepFields.fieldType === 'textarea'"}}
12
+ {{ fileInclude 'src/accessible-components/input/textarea.html'
13
+ field = this.stepFields
14
+ }}
15
+ {{/xif}}
16
+ {{#xif "this.stepFields.fieldType === 'select'"}}
17
+ {{ fileInclude 'src/accessible-components/select/select.html'
18
+ field = this.stepFields
19
+ }}
20
+ {{/xif}}
21
+ {{#xif "this.stepFields.fieldType === 'checkbox'"}}
22
+ {{ fileInclude 'src/accessible-components/checkbox/checkbox.html'
23
+ field = this.stepFields
24
+ }}
25
+ {{/xif}}
26
+ {{#xif "this.stepFields.fieldType === 'checkbox-group'"}}
27
+ {{ fileInclude 'src/accessible-components/checkbox/checkbox-group.html'
28
+ field = this.stepFields
29
+ }}
30
+ {{/xif}}
31
+ {{#xif "this.stepFields.fieldType === 'zip-control'"}}
32
+ {{ fileInclude 'src/accessible-components/zip-control/zip-control.html'
33
+ field = this.stepFields
34
+ }}
35
+ {{/xif}}
36
+ {{#xif "this.stepFields.fieldType == 'utility-providers'"}}
37
+ <div class="utility-provider-wrapper"></div>
38
+ {{/xif}}
@@ -0,0 +1,168 @@
1
+ {{#each this.items}}
2
+ <li id="{{#if this.priority}}step{{inc this.priority}}{{else}}step{{inc @index}}{{/if}}" class="swiper-slide swiper-no-swiping step {{#if this.attributes.class}}{{this.attributes.class}}{{/if}} {{#if @first}}step--active swiper-slide-active step--first{{/if}}" {{#if @first}}data-slide="active" aria-hidden="false"{{else}}aria-hidden="true"{{/if}} tabindex="-1" data-bind="step" {{{addAttributes this 'class' 'id' 'tabindex'}}}>
3
+ <div class="step-inner">
4
+ {{#if this.customStepTopTemplate}}
5
+ {{ fileInclude this.customStepTopTemplate
6
+ stepTopOpt = this
7
+ }}
8
+ {{/if}}
9
+
10
+ {{#if this.stepHeader}}
11
+ <div class="step__header{{#if this.stepHeader.showAnimatedArrow}} step__header--show-animated-arrow{{/if}}{{#xif 'this.stepHeader.attributes && this.stepHeader.attributes.class'}} {{this.stepHeader.attributes.class}}{{/xif}}" {{{addAttributes this.stepHeader 'class'}}}>
12
+ {{#if this.stepHeader.title}}
13
+ <p class="step__header-title{{#xif 'this.stepHeader.title.attributes && this.stepHeader.title.attributes.class'}} {{this.stepHeader.title.attributes.class}}{{/xif}}" {{{addAttributes this.stepHeader.title 'class'}}}>
14
+ {{#if this.stepHeader.title.mobileText}}
15
+ <span class="hidden visible-md-up">{{{this.stepHeader.title.text}}}</span>
16
+ <span class="visible-sm-down">{{{this.stepHeader.title.mobileText}}}</span>
17
+ {{else}}
18
+ {{{this.stepHeader.title.text}}}
19
+ {{/if}}
20
+ </p>
21
+ {{/if}}
22
+ {{#if this.stepHeader.subtitle}}
23
+ <div class="step__header-subtitle{{#xif 'this.stepHeader.subtitle.attributes && this.stepHeader.subtitle.attributes.class'}} {{this.stepHeader.subtitle.attributes.class}}{{/xif}}" {{{addAttributes this.stepHeader.subtitle 'class'}}}>
24
+ {{#if this.stepHeader.subtitle.text}}<p>{{{this.stepHeader.subtitle.text}}}</p>{{/if}}
25
+ {{#if this.stepHeader.subtitle.list}}
26
+ <ul class="step__header-subtitle-list">
27
+ {{#each this.stepHeader.subtitle.list}}
28
+ <li>
29
+ <span>{{{this}}}</span>
30
+ </li>
31
+ {{/each}}
32
+ </ul>
33
+ {{/if}}
34
+ </div>
35
+ {{/if}}
36
+ </div>
37
+ {{/if}}
38
+
39
+ <div class="step__content{{#xif 'this.stepContent.attributes && this.stepContent.attributes.class'}} {{this.stepContent.attributes.class}}{{/xif}}" {{{addAttributes this.stepContent 'class'}}}>
40
+ {{#if this.stepContent.overview}}
41
+ <ol class="step__overview">
42
+ {{#each this.stepContent.overview.items}}
43
+ <li class="step__overview-item">
44
+ <span class="step__overview-number" aria-hidden="true">{{this.number}}</span> {{{this.text}}}
45
+ </li>
46
+ {{/each}}
47
+ </ol>
48
+ {{/if}}
49
+
50
+ {{#if this.stepContent.title}}
51
+ <p class="step__title{{#xif 'this.stepContent.title.attributes && this.stepContent.title.attributes.class'}} {{this.stepContent.title.attributes.class}}{{/xif}}" {{{addAttributes this.stepContent.title 'class'}}}>
52
+ {{#if this.stepContent.title.mobileText}}
53
+ <span class="hidden visible-md-up">{{{this.stepContent.title.text}}}</span>
54
+ <span class="visible-sm-down">{{{this.stepContent.title.mobileText}}}</span>
55
+ {{else}}
56
+ {{{this.stepContent.title.text}}}
57
+ {{/if}}
58
+ </p>
59
+ {{/if}}
60
+
61
+ {{#if this.stepContent.subtitle}}
62
+ <p class="step__subtitle{{#xif 'this.stepContent.subtitle.attributes && this.stepContent.subtitle.attributes.class'}} {{this.stepContent.subtitle.attributes.class}}{{/xif}}" {{{addAttributes this.stepContent.subtitle 'class'}}}>
63
+ {{{this.stepContent.subtitle.text}}}
64
+ </p>
65
+ {{/if}}
66
+
67
+ <div class="step__fields">
68
+ {{#each this.stepContent.fields}}
69
+ <div class="form-group{{#xif "this.formGroup && this.formGroup.attributes && this.formGroup.attributes.class"}} {{this.formGroup.attributes.class}}{{/xif}}{{#unless this.skipErrorClass}} parent-error{{/unless}}" {{#if this.formGroup}}{{{addAttributes this.formGroup 'class'}}}{{/if}}>
70
+ {{#if this.label}}
71
+ <label class="{{#xif "this.label.attributes && this.label.attributes.class !== 'step__title'"}}form-group__label{{/xif}}{{#xif 'this.label.attributes && this.label.attributes.class'}} {{this.label.attributes.class}}{{/xif}}" {{{addAttributes this.label 'class'}}}>
72
+ {{{this.label.text}}}
73
+ </label>
74
+ {{/if}}
75
+
76
+ {{ fileInclude 'src/accessible-components/steps/step-fields.html'
77
+ stepFields = this
78
+ }}
79
+
80
+ {{#if this.errorMessage}}<p id="error--{{#if this.attributes.id}}{{this.attributes.id}}{{else}}{{this.attributes.name}}{{/if}}" class="form-group__error-message">{{{this.errorMessage}}}</p>{{/if}}
81
+ {{#if this.showCityState}}<p class="form-group__city-state">City, State</p>{{/if}}
82
+ {{#if this.note}}<p class="form-group__note">{{{this.note}}}</p>{{/if}}
83
+ </div>
84
+ {{/each}}
85
+ </div>
86
+
87
+ {{#if this.stepContent.extraQuestionBlock}}
88
+ <div class="step__extra{{#if this.stepContent.extraQuestionBlock.attributes.class}} {{this.stepContent.extraQuestionBlock.attributes.class}}{{/if}}" {{{addAttributes this.stepContent.extraQuestionBlock 'class'}}}>
89
+ {{#if this.stepContent.extraQuestionBlock.title}}
90
+ <p class="step__title">
91
+ {{{this.stepContent.extraQuestionBlock.title.text}}}
92
+ </p>
93
+ {{/if}}
94
+ {{#if this.stepContent.extraQuestionBlock.subtitle}}
95
+ <div class="step__subtitle">
96
+ {{#if this.stepContent.extraQuestionBlock.subtitle.text}}
97
+ <p>{{{this.stepContent.extraQuestionBlock.subtitle.text}}}</p>
98
+ {{/if}}
99
+ </div>
100
+ {{/if}}
101
+ {{#each this.stepContent.extraQuestionBlock.fields}}
102
+ <div class="form-group{{#xif "this.formGroup && this.formGroup.attributes && this.formGroup.attributes.class"}} {{this.formGroup.attributes.class}}{{/xif}}{{#unless this.skipErrorClass}} parent-error{{/unless}}" {{#if this.formGroup}}{{{addAttributes this.formGroup 'class'}}}{{/if}}>
103
+ {{ fileInclude 'src/accessible-components/steps/step-fields.html'
104
+ stepFields = this
105
+ }}
106
+ </div>
107
+ {{/each}}
108
+ </div>
109
+ {{/if}}
110
+
111
+ {{#if this.stepContent.useRecaptcha}}
112
+ {{ fileInclude this.stepContent.useRecaptcha }}
113
+ {{/if}}
114
+
115
+ {{#xif "this.stepContent.tcpa && this.stepContent.tcpa.placement === 'above-cta'"}}
116
+ {{ fileInclude 'src/accessible-components/tcpa/tcpa.html'
117
+ tcpaText = @root.tcpaText
118
+ }}
119
+ {{/xif}}
120
+
121
+ {{#if this.stepContent.button}}
122
+ {{#if this.stepContent.button.backButton}}
123
+ <div class="step__buttons">
124
+ {{#unless this.stepContent.button.backButton.placement}}
125
+ {{ fileInclude 'src/accessible-components/button/back-button.html'
126
+ icon = this.stepContent.button.backButton.icon
127
+ iconOnly = this.stepContent.button.backButton.iconOnly
128
+ }}
129
+ {{/unless}}
130
+ {{/if}}
131
+ {{ fileInclude 'src/accessible-components/button/button.html'
132
+ button = this.stepContent.button
133
+ }}
134
+ {{#xif 'this.stepContent.button.backButton && this.stepContent.button.backButton.placement === "after-cta"'}}
135
+ {{ fileInclude 'src/accessible-components/button/back-button.html'
136
+ icon = this.stepContent.button.backButton.icon
137
+ iconOnly = this.stepContent.button.backButton.iconOnly
138
+ }}
139
+ {{/xif}}
140
+ {{#if this.stepContent.button.backButton}}
141
+ </div>
142
+ {{/if}}
143
+ {{/if}}
144
+
145
+ {{#if this.stepContent.secureText}}
146
+ <div class="step__secure-text{{#if this.stepContent.secureText.hasBorderStyle}} step__secure-text--border{{/if}}">
147
+ {{#unless this.stepContent.secureText.hideIcon}}
148
+ <i class="icon-fill-lock"></i>
149
+ {{/unless}}
150
+ {{{this.stepContent.secureText.text}}}
151
+ </div>
152
+ {{/if}}
153
+
154
+ {{#xif "this.stepContent.tcpa && this.stepContent.tcpa.placement === 'below-cta'"}}
155
+ {{ fileInclude 'src/accessible-components/tcpa/tcpa.html'
156
+ tcpaText = @root.tcpaText
157
+ }}
158
+ {{/xif}}
159
+ </div>
160
+
161
+ {{#if this.customStepBottomTemplate}}
162
+ {{ fileInclude this.customStepBottomTemplate
163
+ stepBottomOpt = this
164
+ }}
165
+ {{/if}}
166
+ </div>
167
+ </li>
168
+ {{/each}}
@@ -0,0 +1,49 @@
1
+ $tcpa-color: $color-charcoal4 !default;
2
+ $tcpa-font-size: .75rem !default;
3
+ $tcpa-font-weight: 400 !default;
4
+ $tcpa-line-height: 1.35 !default;
5
+ $tcpa-margin: 20px auto !default;
6
+ $tcpa-text-align: left !default;
7
+
8
+ $tcpa-link-color: $tcpa-color !default;
9
+ $tcpa-link-text-decoration: underline !default;
10
+ $tcpa-link-transition: $base-transition !default;
11
+ $tcpa-link-hover-color: darken($tcpa-color, 10%) !default;
12
+ $tcpa-link-focus-outline: 1px solid $tcpa-color !default;
13
+ $tcpa-link-focus-outline-offset: 2px !default;
14
+
15
+ .tcpa {
16
+ color: $tcpa-color;
17
+ font-size: $tcpa-font-size;
18
+ font-weight: $tcpa-font-weight;
19
+ line-height: $tcpa-line-height;
20
+ margin: $tcpa-margin;
21
+ text-align: $tcpa-text-align;
22
+
23
+ label {
24
+ font-weight: $tcpa-font-weight;
25
+ }
26
+
27
+ a {
28
+ color: $tcpa-link-color;
29
+ text-decoration: $tcpa-link-text-decoration;
30
+ transition: $tcpa-link-transition;
31
+
32
+ &:focus {
33
+ color: $tcpa-link-hover-color;
34
+ outline: $tcpa-link-focus-outline;
35
+ outline-offset: $tcpa-link-focus-outline-offset;
36
+ }
37
+ }
38
+ }
39
+
40
+ @include breakpoint-md {
41
+ .tcpa {
42
+ a {
43
+ &:hover,
44
+ &:active {
45
+ color: $tcpa-link-hover-color;
46
+ }
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,9 @@
1
+ <div class="tcpa form-tcpa">
2
+ <input name="leadToken" id="leadid_token" type="hidden" value=""/>
3
+ <label>
4
+ <input type="hidden" id="leadid_tcpa_disclosure" />
5
+ <span id="tcpa-copy" data-tcpa-loaded>
6
+ {{{tcpaText}}}
7
+ </span>
8
+ </label>
9
+ </div>
@@ -0,0 +1,117 @@
1
+ $tile-height: 100% !default;
2
+ $tile-width: 100% !default;
3
+ $tile-display: inline-flex !default;
4
+ $tile-flex-direction: column !default;
5
+ $tile-justify-content: center !default;
6
+
7
+ $tile-border-transition: border-color .15s ease-in-out !default;
8
+
9
+ $tile-bg-background-position: center 1px !default;
10
+ $tile-bg-border-radius: 5px !default;
11
+ $tile-bg-box-shadow: 0 3px 4px 0 rgba(#000, .2) !default;
12
+ $tile-bg-border-color: transparent !default;
13
+ $tile-bg-border-width: 2px !default;
14
+ $tile-bg-border-border-radius: 8px !default;
15
+ $tile-bg-hover-border-color: $color-charcoal3 !default;
16
+ $tile-bg-font-size: 1.125rem !default;
17
+ $tile-bg-font-weight: 700 !default;
18
+ $tile-bg-text-color: $color-white !default;
19
+ $tile-bg-text-transform: uppercase !default;
20
+
21
+ $tile-icon-border-color: darken($color-charcoal3, 5%) !default;
22
+ $tile-icon-hover-border-color: darken($tile-icon-border-color, 10%) !default;
23
+ $tile-icon-border-radius: 4px !default;
24
+ $tile-icon-border-width: 1px !default;
25
+ $tile-icon-box-shadow: 0 2px 4px 0 rgba(#000, .1) !default;
26
+ $tile-icon-font-size: .75rem !default;
27
+ $tile-icon-font-weight: 700 !default;
28
+ $tile-icon-text-color: $color-charcoal8 !default;
29
+ $tile-icon-img-width: 100% !default;
30
+ $tile-icon-img-height: 90px !default;
31
+
32
+ .tile {
33
+ display: $tile-display;
34
+ flex-direction: $tile-flex-direction;
35
+ height: $tile-height;
36
+ justify-content: $tile-justify-content;
37
+ width: $tile-width;
38
+
39
+ &--background-image {
40
+ .tile__background-image {
41
+ background-position: $tile-bg-background-position;
42
+ background-size: cover;
43
+ border-radius: $tile-bg-border-radius;
44
+ box-shadow: $tile-bg-box-shadow;
45
+ height: 100%;
46
+ left: 0;
47
+ position: absolute;
48
+ top: 0;
49
+ width: 100%;
50
+
51
+ &::before {
52
+ border: $tile-bg-border-width solid $tile-bg-border-color;
53
+ border-radius: $tile-bg-border-border-radius;
54
+ content: '';
55
+ height: calc(100% + 8px);
56
+ left: -4px;
57
+ position: absolute;
58
+ top: -4px;
59
+ transition: $tile-border-transition;
60
+ width: calc(100% + 8px);
61
+ z-index: -1;
62
+ }
63
+ }
64
+
65
+ .tile__text {
66
+ color: $tile-bg-text-color;
67
+ font-size: $tile-bg-font-size;
68
+ font-weight: $tile-bg-font-weight;
69
+ position: relative;
70
+ text-transform: $tile-bg-text-transform;
71
+ z-index: 2;
72
+ }
73
+
74
+ &:hover {
75
+ .tile__background-image {
76
+ &::before {
77
+ border-color: $tile-bg-hover-border-color;
78
+ }
79
+ }
80
+ }
81
+ }
82
+
83
+ &--icon {
84
+ .tile__icon {
85
+ height: $tile-icon-img-height;
86
+ width: $tile-icon-img-width;
87
+ }
88
+
89
+ .tile__text {
90
+ color: $tile-icon-text-color;
91
+ display: inline-block;
92
+ font-size: $tile-icon-font-size;
93
+ font-weight: $tile-icon-font-weight;
94
+
95
+ &::before {
96
+ border: $tile-icon-border-width solid $tile-icon-border-color;
97
+ border-radius: $tile-icon-border-radius;
98
+ box-shadow: $tile-icon-box-shadow;
99
+ content: '';
100
+ display: block;
101
+ height: 100%;
102
+ left: 0;
103
+ position: absolute;
104
+ top: 0;
105
+ transition: $tile-border-transition;
106
+ width: 100%;
107
+ }
108
+ }
109
+ &:hover {
110
+ .tile__text {
111
+ &::before {
112
+ border-color: $tile-icon-hover-border-color;
113
+ }
114
+ }
115
+ }
116
+ }
117
+ }
@@ -0,0 +1,14 @@
1
+ {{#if this.field}}
2
+ <div class="tile {{#if this.field.backgroundImage}}tile--background-image{{else}}tile--icon{{/if}}">
3
+ {{#if this.field.backgroundImage}}
4
+ <div class="tile__background-image {{#if this.field.backgroundImage.class}}{{this.field.backgroundImage.class}}{{/if}}" {{#if this.field.backgroundImage.url}}style="background-image: url('{{#if this.field.backgroundImage.useCDN}}https://{{x 'process.env.NODE_ENV'}}{{/if}}{{this.field.backgroundImage.url}}')"{{/if}}></div>
5
+ {{/if}}
6
+ {{#if this.field.picture}}
7
+ {{ fileInclude 'src/accessible-components/picture/picture.html'
8
+ picture = this.field.picture
9
+ class = 'tile__icon'
10
+ }}
11
+ {{/if}}
12
+ <span class="tile__text">{{{this.field.text}}}</span>
13
+ </div>
14
+ {{/if}}
@@ -0,0 +1,102 @@
1
+ $value-props-display: none !default;
2
+ $value-props-display-tablet: block !default;
3
+ $value-props-display-desktop: $value-props-display-tablet !default;
4
+ $value-props-backdrop-filter: blur(4px) !default;
5
+ $value-props-background-color: rgba($color-charcoal6,.85) !default;
6
+ $value-props-border-radius: 2px !default;
7
+ $value-props-border-radius-desktop: 2px 0 0 2px !default;
8
+ $value-props-color: $color-white !default;
9
+ $value-props-margin: 0 auto 20px !default;
10
+ $value-props-margin-tablet: 0 auto 30px !default;
11
+ $value-props-margin-desktop: 0 0 0 auto !default;
12
+ $value-props-max-width: 100% !default;
13
+ $value-props-padding: 30px 0 !default;
14
+ $value-props-padding-tablet: $value-props-padding !default;
15
+ $value-props-padding-desktop: $value-props-padding-tablet !default;
16
+
17
+ $value-props-wrapper-display: flex !default;
18
+ $value-props-wrapper-flex-direction: row !default;
19
+ $value-props-wrapper-justify-content: space-evenly !default;
20
+
21
+ $value-props-icon-height: 40px !default;
22
+ $value-props-icon-width: $value-props-icon-height !default;
23
+ $value-props-icon-height-desktop: $value-props-icon-height !default;
24
+ $value-props-icon-width-desktop: $value-props-icon-width !default;
25
+
26
+ $value-props-item-border-left: 0 !default;
27
+ $value-props-item-flex: 0 0 25% !default;
28
+ $value-props-item-padding: 0 15px !default;
29
+ $value-props-item-text-align: center !default;
30
+
31
+ $value-props-description-font-size: 12px !default;
32
+ $value-props-description-font-size-desktop: 16px !default;
33
+ $value-props-description-font-weight: normal !default;
34
+ $value-props-description-line-height: 1.25 !default;
35
+ $value-props-description-margin: 10px auto 0 !default;
36
+ $value-props-description-width: 100% !default;
37
+
38
+ .value-props {
39
+ backdrop-filter: $value-props-backdrop-filter;
40
+ background-color: $value-props-background-color;
41
+ border-radius: $value-props-border-radius;
42
+ color: $value-props-color;
43
+ display: $value-props-display;
44
+ margin: $value-props-margin;
45
+ max-width: $value-props-max-width;
46
+ padding: $value-props-padding;
47
+
48
+ &__wrapper {
49
+ display: $value-props-wrapper-display;
50
+ flex-direction: $value-props-wrapper-flex-direction;
51
+ justify-content: $value-props-wrapper-justify-content;
52
+ }
53
+
54
+ &__item {
55
+ flex: $value-props-item-flex;
56
+ padding: $value-props-item-padding;
57
+ text-align: $value-props-item-text-align;
58
+
59
+ ~ .value-props__item {
60
+ border-left: $value-props-item-border-left;
61
+ }
62
+ }
63
+
64
+ &__icon {
65
+ height: $value-props-icon-height;
66
+ width: $value-props-icon-width;
67
+ }
68
+
69
+ &__description {
70
+ font-size: $value-props-description-font-size;
71
+ font-weight: $value-props-description-font-weight;
72
+ line-height: $value-props-description-line-height;
73
+ margin: $value-props-description-margin;
74
+ width: $value-props-description-width;
75
+ }
76
+ }
77
+
78
+ @include breakpoint-md {
79
+ .value-props {
80
+ display: $value-props-display-tablet;
81
+ margin: $value-props-margin-tablet;
82
+ padding: $value-props-padding-tablet;
83
+
84
+ &__icon {
85
+ height: $value-props-icon-height-desktop;
86
+ width: $value-props-icon-width-desktop;
87
+ }
88
+
89
+ &__description {
90
+ font-size: $value-props-description-font-size-desktop;
91
+ }
92
+ }
93
+ }
94
+
95
+ @include breakpoint-lg {
96
+ .value-props {
97
+ border-radius: $value-props-border-radius-desktop;
98
+ display: $value-props-display-desktop;
99
+ margin: $value-props-margin-desktop;
100
+ padding: $value-props-padding-desktop;
101
+ }
102
+ }
@@ -0,0 +1,17 @@
1
+ {{#if this.props}}
2
+ <div class="value-props{{#if this.props.attributes.class}} {{this.props.attributes.class}}{{/if}}" {{{addAttributes this.props 'class'}}}>
3
+ <ul class="value-props__wrapper">
4
+ {{#each this.props.items}}
5
+ <li class="value-props__item">
6
+ {{#if this.picture}}
7
+ {{ fileInclude 'src/accessible-components/picture/picture.html'
8
+ picture = this.picture
9
+ class = 'value-props__icon'
10
+ }}
11
+ {{/if}}
12
+ {{#if this.description}}<p class="value-props__description" data-theme-template="vp">{{{this.description}}}</p>{{/if}}
13
+ </li>
14
+ {{/each}}
15
+ </ul>
16
+ </div>
17
+ {{/if}}