mod-build 3.6.71 → 4.0.0-alpha.1

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 (149) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc +18 -0
  3. package/CHANGELOG.md +2 -240
  4. package/README.md +16 -263
  5. package/gulp-tasks/build.js +1 -1
  6. package/package.json +21 -69
  7. package/siteconfig.js +38 -0
  8. package/src/accessible-components/button/_button.scss +195 -0
  9. package/src/accessible-components/button/back-button.html +4 -0
  10. package/src/accessible-components/button/button.html +17 -0
  11. package/src/accessible-components/carousel/_carousel.scss +112 -0
  12. package/src/accessible-components/carousel/carousel.html +25 -0
  13. package/src/accessible-components/checkbox/_checkbox.scss +96 -0
  14. package/src/accessible-components/checkbox/checkbox.html +8 -0
  15. package/src/accessible-components/expand-collapse/_expand-collapse.scss +122 -0
  16. package/src/accessible-components/expand-collapse/expand-collapse.html +8 -0
  17. package/src/accessible-components/expand-collapse/expand-collapse.js +52 -0
  18. package/src/accessible-components/expand-collapse/expand-collapse.min.js +2 -0
  19. package/src/accessible-components/expand-collapse/expand-collapse.min.js.map +1 -0
  20. package/src/accessible-components/featured-block/_featured-block.scss +219 -0
  21. package/src/accessible-components/featured-block/featured-block.html +54 -0
  22. package/src/accessible-components/foot-assets/foot-assets.html +92 -0
  23. package/src/accessible-components/footer/footer.html +2 -0
  24. package/src/{templates/_partials/scripts/gtm-editorials/body/google-tag-manager-body.html → accessible-components/gtm-body/gtm-body.html} +1 -2
  25. package/src/accessible-components/head/head.html +188 -0
  26. package/src/accessible-components/header/_header.scss +289 -0
  27. package/src/accessible-components/header/header.html +66 -0
  28. package/src/accessible-components/hero/_hero.scss +371 -0
  29. package/src/accessible-components/hero/hero.html +53 -0
  30. package/src/accessible-components/how-it-works/_how-it-works.scss +217 -0
  31. package/src/accessible-components/how-it-works/how-it-works-carousel.html +12 -0
  32. package/src/accessible-components/how-it-works/how-it-works-static.html +12 -0
  33. package/src/accessible-components/how-it-works/how-it-works.html +14 -0
  34. package/src/accessible-components/information/_information.scss +92 -0
  35. package/src/accessible-components/information/information.html +26 -0
  36. package/src/accessible-components/input/_input.scss +202 -0
  37. package/src/accessible-components/input/input.html +22 -0
  38. package/src/accessible-components/input/textarea.html +9 -0
  39. package/src/accessible-components/partners/_partners.scss +232 -0
  40. package/src/accessible-components/partners/partners.html +56 -0
  41. package/src/accessible-components/picture/picture.html +19 -0
  42. package/src/accessible-components/preloader/_preloader.scss +61 -0
  43. package/src/accessible-components/preloader/preloader.html +23 -0
  44. package/src/accessible-components/progress-bar/_progress-bar.scss +119 -0
  45. package/src/accessible-components/progress-bar/progress-bar.html +21 -0
  46. package/src/accessible-components/progress-bar/progress-bar.js +37 -0
  47. package/src/accessible-components/progress-bar/progress-bar.min.js +2 -0
  48. package/src/accessible-components/progress-bar/progress-bar.min.js.map +1 -0
  49. package/src/accessible-components/radio-button/_radio-button.scss +537 -0
  50. package/src/accessible-components/radio-button/radio-button.html +34 -0
  51. package/src/accessible-components/reviews/_reviews.scss +175 -0
  52. package/src/accessible-components/reviews/reviews-carousel.html +12 -0
  53. package/src/accessible-components/reviews/reviews-static.html +12 -0
  54. package/src/accessible-components/reviews/reviews.html +37 -0
  55. package/src/accessible-components/select/_select.scss +69 -0
  56. package/src/accessible-components/select/select.html +10 -0
  57. package/src/accessible-components/steps/_steps.scss +524 -0
  58. package/src/accessible-components/steps/defaultFormFieldConfig.json +109 -0
  59. package/src/accessible-components/steps/step-fields.html +33 -0
  60. package/src/accessible-components/steps/steps.html +150 -0
  61. package/src/accessible-components/tcpa/_tcpa.scss +49 -0
  62. package/src/accessible-components/tcpa/tcpa.html +9 -0
  63. package/src/accessible-components/tile/_tile.scss +117 -0
  64. package/src/accessible-components/tile/tile.html +14 -0
  65. package/src/accessible-components/value-props/_value-props.scss +100 -0
  66. package/src/accessible-components/value-props/value-props.html +17 -0
  67. package/src/accessible-components/zip-control/_zip-control.scss +78 -0
  68. package/src/accessible-components/zip-control/zip-control.html +10 -0
  69. package/src/data/footer.js +117 -0
  70. package/src/data/seasons.js +5 -7
  71. package/src/data/theme.json +164 -0
  72. package/src/index.html +18 -0
  73. package/src/main.js +45 -0
  74. package/src/resources/scripts/abandonment/abandonment-1df90ee155f6c0893d90.min.js +2 -0
  75. package/src/resources/scripts/abandonment/abandonment.min.js +2 -0
  76. package/src/resources/scripts/footer/footer-component-7b5e263f64568573ecc0.min.js +2 -0
  77. package/src/resources/scripts/footer/footer-component.min.js +2 -0
  78. package/src/resources/scripts/helpers/initNumericOnlyFields.min.js +2 -0
  79. package/src/resources/scripts/helpers/initNumericOnlyFields.min.js.map +1 -0
  80. package/src/resources/scripts/helpers/isZipCodeValid.min.js +2 -0
  81. package/src/resources/scripts/helpers/isZipCodeValid.min.js.map +1 -0
  82. package/src/resources/scripts/mod-alytics/modalytics-0ac7d7a5a72ea67a0f47.min.js +2 -0
  83. package/src/resources/scripts/mod-alytics/modalytics.min.js +2 -0
  84. package/src/resources/scripts/mod-form/form/homeowner-77a4dd439b8db412678b.min.js +2 -0
  85. package/src/resources/scripts/mod-form/form/homeowner.min.js +2 -0
  86. package/src/resources/scripts/mod-utils/modutils-8ba40d21f559171ddd36.min.js +2 -0
  87. package/src/resources/scripts/mod-utils/modutils.min.js +2 -0
  88. package/src/resources/styles/components/abandonment/abandonment-ae63aca828944411eff7.min.css +1 -0
  89. package/src/resources/styles/components/abandonment/abandonment.min.css +1 -0
  90. package/src/resources/styles/components/footer/mod-footer-3717faf57147c62c1777.min.css +1 -0
  91. package/src/resources/styles/components/footer/mod-footer.min.css +1 -0
  92. package/src/resources/styles/components/footer/qs-footer-12bf078dc614ff221c3c.min.css +1 -0
  93. package/src/resources/styles/components/footer/qs-footer.min.css +1 -0
  94. package/src/resources/templates/modals/about/index.html +9 -0
  95. package/src/resources/templates/modals/contact-us/index.html +348 -0
  96. package/src/resources/templates/modals/faq/index.html +9 -0
  97. package/src/resources/templates/modals/privacy/index.html +236 -0
  98. package/src/resources/templates/modals/terms/index.html +166 -0
  99. package/src/scripts/has-qs-params.js +6 -5
  100. package/src/scripts/url-cleaner.js +3 -3
  101. package/src/scripts/utils.js +178 -0
  102. package/src/styles/home.scss +1 -0
  103. package/src/temp/scripts/maxmind-geoip2.js +104 -0
  104. package/src/templates/_partials/scripts/deferred-styles.html +16 -16
  105. package/src/templates/_partials/scripts/vwo-redirect-callback.html +43 -45
  106. package/src/templates/components/head.html +70 -0
  107. package/tasks/clean.js +13 -0
  108. package/tasks/grab-cdn.js +107 -0
  109. package/tasks/grab-form-helpers.js +94 -0
  110. package/tasks/grab-shared-components.js +81 -0
  111. package/tasks/grab-shared-scripts.js +267 -0
  112. package/tasks/serve.js +15 -0
  113. package/tasks/templates.js +168 -0
  114. package/template.js +801 -0
  115. package/vite.config.js +56 -0
  116. package/.eslintrc.yml +0 -59
  117. package/src/data/common.js +0 -704
  118. package/src/data/components/qs-footer.js +0 -55
  119. package/src/data/components/quote-footer.js +0 -73
  120. package/src/scripts/apt-block.js +0 -919
  121. package/src/scripts/components/custom-selects.js +0 -48
  122. package/src/scripts/components/radio-panels.js +0 -45
  123. package/src/scripts/es6-1.js +0 -6
  124. package/src/scripts/es6-2.js +0 -2
  125. package/src/scripts/qs-form.js +0 -839
  126. package/src/scripts/vendor/maxmind-geoip2.js +0 -2
  127. package/src/scripts/vendor/swiper.min.js +0 -13
  128. package/src/styles/apt-block.scss +0 -888
  129. package/src/templates/_partials/apt-block.html +0 -30
  130. package/src/templates/_partials/scripts/analytics.html +0 -4
  131. package/src/templates/_partials/scripts/go-page-hiding-snippet.html +0 -8
  132. package/src/templates/_partials/scripts/google-maps.html +0 -1
  133. package/src/templates/_partials/scripts/google-optimize.html +0 -12
  134. package/src/templates/_partials/scripts/gtm-editorials/head/google-tag-manager-head.html +0 -10
  135. package/src/templates/_partials/scripts/gtm-hil/body/google-tag-manager-body.html +0 -5
  136. package/src/templates/_partials/scripts/gtm-hil/head/google-tag-manager-head.html +0 -10
  137. package/src/templates/_partials/scripts/gtm-pro/body/google-tag-manager-body.html +0 -5
  138. package/src/templates/_partials/scripts/gtm-pro/head/google-tag-manager-head.html +0 -10
  139. package/src/templates/_partials/scripts/gtm-quote/body/google-tag-manager-body.html +0 -5
  140. package/src/templates/_partials/scripts/gtm-quote/head/google-tag-manager-head.html +0 -9
  141. package/src/templates/_partials/scripts/gtm-whitelabel/body/mod-google-tag-manager-body.html +0 -5
  142. package/src/templates/_partials/scripts/gtm-whitelabel/body/non-mod-google-tag-manager-body.html +0 -5
  143. package/src/templates/_partials/scripts/gtm-whitelabel/head/mod-google-tag-manager-head.html +0 -10
  144. package/src/templates/_partials/scripts/gtm-whitelabel/head/non-mod-google-tag-manager-head.html +0 -9
  145. package/src/templates/_partials/scripts/gtm-wordpress/body/google-tag-manager-body.html +0 -5
  146. package/src/templates/_partials/scripts/gtm-wordpress/head/google-tag-manager-head.html +0 -9
  147. package/src/templates/_partials/scripts/visual-website-optimizer.html +0 -5
  148. package/src/templates/index.html +0 -46
  149. /package/{src → public}/favicon.ico +0 -0
@@ -0,0 +1,92 @@
1
+ $information-background-color: $color-white !default;
2
+ $information-border-top: 1px solid $color-charcoal1 !default;
3
+ $information-position: relative !default;
4
+ $information-text-align: center !default;
5
+
6
+ $information-block-margin: 10px 0 35px !default;
7
+
8
+ $information-content-margin: 0 auto !default;
9
+ $information-content-max-width: 100% !default;
10
+ $information-content-padding-bottom: 35px !default;
11
+ $information-content-text-align: left !default;
12
+
13
+ $information-title-color: $color-charcoal8 !default;
14
+ $information-title-font-size: 1.375rem !default;
15
+ $information-title-font-size-desktop: 1.5rem !default;
16
+ $information-title-font-weight: 700 !default;
17
+ $information-title-line-height: 1.25 !default;
18
+ $information-title-margin: 0 0 15px !default;
19
+
20
+ $information-summary-color: $information-title-color !default;
21
+ $information-summary-font-size: 1rem !default;
22
+ $information-summary-font-size-desktop: 1.125rem !default;
23
+ $information-summary-font-weight: 400 !default;
24
+ $information-summary-line-height: 1.35 !default;
25
+ $information-summary-margin: 0 0 15px !default;
26
+
27
+ $information-list-list-style: disc outside !default;
28
+ $information-list-padding: 0 0 0 25px !default;
29
+
30
+ $information-inprogress-display: none !default;
31
+
32
+ .information {
33
+ background-color: $information-background-color;
34
+ border-top: $information-border-top;
35
+ position: $information-position;
36
+ text-align: $information-text-align;
37
+
38
+ &__block {
39
+ margin: $information-block-margin;
40
+ }
41
+
42
+ &__content {
43
+ margin: $information-content-margin;
44
+ max-width: $information-content-max-width;
45
+ text-align: $information-content-text-align;
46
+
47
+ &:not(.collapsed) {
48
+ padding-bottom: $information-content-padding-bottom;
49
+ }
50
+ }
51
+
52
+ &__title {
53
+ color: $information-title-color;
54
+ font-size: $information-title-font-size;
55
+ font-weight: $information-title-font-weight;
56
+ line-height: $information-title-line-height;
57
+ margin: $information-title-margin;
58
+ }
59
+
60
+ &__list {
61
+ list-style: $information-list-list-style;
62
+ padding: $information-list-padding;
63
+ }
64
+
65
+ &__summary,
66
+ &__list-item {
67
+ color: $information-summary-color;
68
+ font-size: $information-summary-font-size;
69
+ font-weight: $information-summary-font-weight;
70
+ line-height: $information-summary-line-height;
71
+ margin: $information-summary-margin;
72
+ }
73
+ }
74
+
75
+ .form-in-progress {
76
+ .information {
77
+ display: $information-inprogress-display;
78
+ }
79
+ }
80
+
81
+ @include breakpoint-md {
82
+ .information {
83
+ &__title {
84
+ font-size: $information-title-font-size-desktop;
85
+ }
86
+
87
+ &__summary,
88
+ &__list-item {
89
+ font-size: $information-summary-font-size-desktop;
90
+ }
91
+ }
92
+ }
@@ -0,0 +1,26 @@
1
+ <section class="information{{#if this.information.expandCollapse}} expand-collapse{{/if}}{{#xif 'this.information.attributes && this.information.attributes.class'}} {{this.information.attributes.class}}{{/xif}}" {{{addAttributes this.information 'class'}}}>
2
+ {{#this.information.expandCollapse}}
3
+ {{ fileInclude 'src/accessible-components/expand-collapse/expand-collapse.html'
4
+ expandCollapse = this
5
+ }}
6
+ {{/this.information.expandCollapse}}
7
+ {{#if this.information.content}}
8
+ <div class="information__content {{#xif 'this.information.content.attributes && this.information.content.attributes.class'}} {{this.information.content.attributes.class}}{{/xif}}{{#if this.information.expandCollapse}} expand-collapse__content{{/if}}" {{{addAttributes this.information.content 'class'}}}>
9
+ {{#each this.information.content.items}}
10
+ <div class="information__block{{#xif 'this.attributes && this.attributes.class'}} {{this.attributes.class}}{{/xif}}" {{{addAttributes this 'class'}}}>
11
+ <h3 class="information__title{{#xif 'this.title.attributes && this.title.attributes.class'}} {{this.title.attributes.class}}{{/xif}}" {{{addAttributes this.title 'class'}}}>{{{this.title.text}}}</h3>
12
+ {{#each this.summary}}
13
+ <p class="information__summary{{#xif 'this.attributes && this.attributes.class'}} {{this.attributes.class}}{{/xif}}" {{{addAttributes this 'class'}}}>{{{this.text}}}</p>
14
+ {{/each}}
15
+ {{#if this.list}}
16
+ <ul class="information__list">
17
+ {{#each this.list}}
18
+ <li class="information__list-item{{#xif 'this.attributes && this.attributes.class'}} {{this.attributes.class}}{{/xif}}" {{{addAttributes this 'class'}}}>{{{this.text}}}</li>
19
+ {{/each}}
20
+ </ul>
21
+ {{/if}}
22
+ </div>
23
+ {{/each}}
24
+ </div>
25
+ {{/if}}
26
+ </section>
@@ -0,0 +1,202 @@
1
+ $form-input-background-color: $color-white !default;
2
+ $form-input-border: 1px solid darken($color-charcoal3, 5%) !default;
3
+ $form-input-border-radius: 4px !default;
4
+ $form-input-box-shadow: none !default;
5
+ $form-input-color: $color-charcoal8 !default;
6
+ $form-input-font-size: 1rem !default;
7
+ $form-input-font-size-desktop: 1.125rem !default;
8
+ $form-input-font-weight: 400 !default;
9
+ $form-input-height: 48px !default;
10
+ $form-input-line-height: 1.1875 !default;
11
+ $form-input-margin: 0 0 15px !default;
12
+ $form-input-padding: 15px !default;
13
+ $form-input-placeholder-color: $color-charcoal4 !default;
14
+ $form-input-placeholder-color-desktop: $form-input-placeholder-color !default;
15
+ $form-input-transition-time: .15s !default;
16
+
17
+ $form-input-focus-bg-color: $form-input-background-color !default;
18
+ $form-input-focus-border: 2px solid $color-charcoal5 !default;
19
+
20
+ $form-group-includes-label-background-color: transparent !default;
21
+ $form-group-includes-label-display: block !default;
22
+ $form-group-includes-label-input-height: 56px !default;
23
+ $form-group-includes-label-input-padding: 15px 15px 0 !default;
24
+
25
+ $form-group-label-in-input-focus-color: $color-charcoal5 !default;
26
+ $form-group-label-in-input-focus-font-size: .75rem !default;
27
+ $form-group-label-in-input-focus-font-weight: 700 !default;
28
+ $form-group-label-in-input-focus-top: 8px !default;
29
+ $form-group-label-in-input-error-color: $color-a11y-red !default;
30
+ $form-group-label-in-input-focus-z-index: 0 !default;
31
+
32
+ $form-input-error-color: $color-a11y-red !default;
33
+ $form-input-error-border: 1px solid $form-input-error-color !default;
34
+ $form-input-error-box-shadow: none !default;
35
+ $form-input-error-focus-border-color: $color-a11y-red !default;
36
+ $form-input-error-focus-box-shadow: none !default;
37
+ $form-input-group-error-border-width: 0 !default;
38
+ $form-input-group-input-error-border: $form-input-error-border !default;
39
+
40
+ $form-input-icon-color: darken($color-charcoal3, 5%) !default;
41
+ $form-input-icon-error-color: $color-a11y-red !default;
42
+ $form-input-icon-font-size: 1.25rem !default;
43
+ $form-input-icon-left: 15px !default;
44
+ $form-input-icon-position: absolute !default;
45
+ $form-input-icon-top: 18px !default;
46
+ $form-input-icon-z-index: 3 !default;
47
+
48
+ $form-input-textarea-min-height: 150px !default;
49
+ $form-input-textarea-font-family: inherit !default;
50
+ $form-input-textarea-focus-padding-top: 24px !default;
51
+
52
+ .form-input-group {
53
+ &--includes-label {
54
+ display: $form-group-includes-label-display;
55
+ position: relative;
56
+
57
+ .form-input {
58
+ background-color: $form-group-includes-label-background-color;
59
+ height: $form-group-includes-label-input-height;
60
+ padding: $form-group-includes-label-input-padding;
61
+
62
+ &::placeholder {
63
+ opacity: 0;
64
+ }
65
+
66
+ &:not(:placeholder-shown),
67
+ &:-webkit-autofill,
68
+ &:-webkit-autofill:hover,
69
+ &:-webkit-autofill:focus,
70
+ &:focus {
71
+ background-color: $form-input-focus-bg-color;
72
+ border: $form-input-focus-border;
73
+
74
+ + label {
75
+ color: $form-group-label-in-input-focus-color;
76
+ font-size: $form-group-label-in-input-focus-font-size;
77
+ font-weight: $form-group-label-in-input-focus-font-weight;
78
+ top: $form-group-label-in-input-focus-top;
79
+ z-index: $form-group-label-in-input-focus-z-index;
80
+ }
81
+
82
+ &.form-input--textarea {
83
+ padding-top: $form-input-textarea-focus-padding-top;
84
+ }
85
+ }
86
+
87
+ &--centered {
88
+ text-align: center;
89
+
90
+ + label {
91
+ left: 0;
92
+ right: 0;
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ &__icon {
99
+ color: $form-input-icon-color;
100
+ font-size: $form-input-icon-font-size;
101
+ left: $form-input-icon-left;
102
+ position: $form-input-icon-position;
103
+ top: $form-input-icon-top;
104
+ transition: $base-transition;
105
+ z-index: $form-input-icon-z-index;
106
+ }
107
+ }
108
+
109
+ .form-input {
110
+ background-color: $form-input-background-color;
111
+ border: $form-input-border;
112
+ border-radius: $form-input-border-radius;
113
+ box-shadow: $form-input-box-shadow;
114
+ color: $form-input-color;
115
+ font-size: $form-input-font-size;
116
+ font-weight: $form-input-font-weight;
117
+ height: $form-input-height;
118
+ line-height: $form-input-line-height;
119
+ margin: $form-input-margin;
120
+ padding: $form-input-padding;
121
+ position: relative;
122
+ transition: background-color $form-input-transition-time ease-in-out, border-color $form-input-transition-time ease-in-out, box-shadow $form-input-transition-time ease-in-out;
123
+ width: 100%;
124
+
125
+ &::-webkit-input-placeholder {
126
+ color: $form-input-placeholder-color;
127
+ }
128
+
129
+ &::-ms-input-placeholder {
130
+ color: $form-input-placeholder-color;
131
+ }
132
+
133
+ &::placeholder {
134
+ color: $form-input-placeholder-color;
135
+ }
136
+
137
+ &:focus {
138
+ background-color: $form-input-focus-bg-color;
139
+ border: $form-input-focus-border;
140
+ box-shadow: none;
141
+ }
142
+
143
+ &--textarea {
144
+ font-family: $form-input-textarea-font-family;
145
+ min-height: $form-input-textarea-min-height;
146
+ }
147
+
148
+ &--border-bottom-only {
149
+ border-left: 0 !important;
150
+ border-radius: 0;
151
+ border-right: 0 !important;
152
+ border-top: 0 !important;
153
+ }
154
+ }
155
+
156
+ .has-error {
157
+ .form-input {
158
+ border: $form-input-error-border;
159
+ box-shadow: $form-input-error-box-shadow;
160
+ color: $form-input-error-color;
161
+
162
+ &:focus {
163
+ border-color: $form-input-error-focus-border-color;
164
+ box-shadow: $form-input-error-focus-box-shadow;
165
+ }
166
+ }
167
+
168
+ .form-input-group {
169
+ &--includes-label {
170
+ .form-input {
171
+ &:not(:placeholder-shown),
172
+ &:focus {
173
+ + label {
174
+ color: $form-group-label-in-input-error-color;
175
+ }
176
+ }
177
+ }
178
+ }
179
+
180
+ &__icon {
181
+ color: $form-input-icon-error-color;
182
+ }
183
+ }
184
+ }
185
+
186
+ @include breakpoint-md {
187
+ .form-input {
188
+ font-size: $form-input-font-size-desktop;
189
+
190
+ &::-webkit-input-placeholder {
191
+ color: $form-input-placeholder-color-desktop;
192
+ }
193
+
194
+ &::-ms-input-placeholder {
195
+ color: $form-input-placeholder-color-desktop;
196
+ }
197
+
198
+ &::placeholder {
199
+ color: $form-input-placeholder-color-desktop;
200
+ }
201
+ }
202
+ }
@@ -0,0 +1,22 @@
1
+ {{#if this.field}}
2
+ {{#xif "this.field.icon || this.field.iconImageUrl || this.field.labelInInput"}}
3
+ <div class="form-input-group{{#xif 'this.field.icon || this.field.iconImageUrl'}} form-input-group--icon{{/xif}}{{#if this.field.labelInInput}} form-input-group--includes-label{{/if}}">
4
+ {{#if this.field.icon}}
5
+ <span class="form-input-group__icon">
6
+ <i class="{{this.field.icon}}" aria-hidden="true"></i>
7
+ </span>
8
+ {{/if}}
9
+ {{#if this.field.iconImageUrl}}
10
+ <span class="form-input-group__icon">
11
+ <img src="{{this.field.iconImageUrl}}" aria-hidden="true">
12
+ </span>
13
+ {{/if}}
14
+ {{/xif}}
15
+ <input
16
+ class="form-input{{#if this.field.attributes.class}} {{this.field.attributes.class}}{{/if}}"
17
+ {{{addAttributes this.field 'class'}}}
18
+ />
19
+ {{#if this.field.labelInInput}}<label for="{{this.field.attributes.id}}" class="form-group__label-input">{{{this.field.labelInInput}}}</label>{{/if}}
20
+ {{#xif "this.field.icon || this.field.iconImageUrl || this.field.labelInInput"}}</div>{{/xif}}
21
+ {{/if}}
22
+
@@ -0,0 +1,9 @@
1
+ {{#if this.field}}
2
+ {{#if this.field.labelInInput}}<div class="form-input-group form-input-group--includes-label">{{/if}}
3
+ <textarea
4
+ type="textarea"
5
+ class="form-input form-input--textarea{{#if this.field.attributes.class}} {{this.field.attributes.class}}{{/if}}"
6
+ {{{addAttributes this.field 'class' 'type'}}}
7
+ ></textarea>
8
+ {{#if this.field.labelInInput}}<label class="form-group__label-input">{{{this.field.labelInInput}}}</label></div>{{/if}}
9
+ {{/if}}
@@ -0,0 +1,232 @@
1
+ $partners-background: rgba($color-charcoal1, .2) !default;
2
+ $partners-border-bottom: 0 !default;
3
+ $partners-padding: 20px 0 !default;
4
+ $partners-padding-desktop: 35px 0 !default;
5
+ $partners-text-align: center !default;
6
+
7
+ $partners-header-max-width-xl: 400px !default;
8
+ $partners-header-text-align-xl: $partners-text-align !default;
9
+ $partners-container-align-items-xl: center !default;
10
+ $partners-container-display-xl: flex !default;
11
+ $partners-container-justify-content-xl: space-between !default;
12
+
13
+ $partners-title-color: $color-charcoal8 !default;
14
+ $partners-title-font-size: 1.375rem !default;
15
+ $partners-title-font-size-desktop: 1.5rem !default;
16
+ $partners-title-font-weight: 400 !default;
17
+ $partners-title-line-height: 1.25 !default;
18
+ $partners-title-margin: 0 0 5px !default;
19
+
20
+ $partners-subtitle-color: $color-charcoal4 !default;
21
+ $partners-subtitle-font-size: .75rem !default;
22
+ $partners-subtitle-font-size-desktop: $partners-subtitle-font-size !default;
23
+ $partners-subtitle-font-style: normal !default;
24
+ $partners-subtitle-font-weight: 400 !default;
25
+ $partners-subtitle-line-height: 1.35 !default;
26
+ $partners-subtitle-margin: 0 0 15px !default;
27
+
28
+ $partners-companies-align-items: center !default;
29
+ $partners-companies-display: flex !default;
30
+ $partners-companies-flex-wrap: wrap !default;
31
+ $partners-companies-justify-content: center !default;
32
+
33
+ $partners-logo-margin: 10px !default;
34
+ $partners-logo-margin-desktop: 10px 15px !default;
35
+
36
+ $partners-logo-image-height: 43px !default;
37
+ $partners-logo-image-max-width: 150px !default;
38
+
39
+ $partners-benefits-color: $partners-title-color !default;
40
+ $partners-benefits-font-size: .625rem !default;
41
+ $partners-benefits-font-weight: 400 !default;
42
+ $partners-benefits-line-height: 1.35 !default;
43
+ $partners-benefits-list-style: none !default;
44
+ $partners-benefits-text-align: left !default;
45
+
46
+ $partners-featured-padding-bottom: 20px !default;
47
+ $partners-featured-margin-bottom: $partners-featured-padding-bottom !default;
48
+ $partners-featured-padding-bottom-xl: 0 !default;
49
+ $partners-featured-margin-bottom-xl: $partners-featured-padding-bottom-xl !default;
50
+ $partners-featured-text-align: center !default;
51
+ $partners-featured-text-display: inline-block !default;
52
+ $partners-featured-text-display-xl: block !default;
53
+ $partners-featured-text-align-xl: $partners-featured-text-align !default;
54
+ $partners-featured-text-color: $color-charcoal8 !default;
55
+ $partners-featured-text-font-size: 1rem !default;
56
+ $partners-featured-text-margin: 0 5px 0 0 !default;
57
+ $partners-featured-text-margin-xl: 0 0 5px !default;
58
+ $partners-featured-image-max-width: 115px !default;
59
+ $partners-featured-border-color: $color-charcoal1 !default;
60
+ $partners-featured-border-width: 100vw !default;
61
+ $partners-featured-border-height: 1px !default;
62
+ $partners-featured-border-color-xl: $partners-featured-border-color !default;
63
+ $partners-featured-border-width-xl: $partners-featured-border-width !default;
64
+
65
+ $partners-more-brands-align-items: center !default;
66
+ $partners-more-brands-color: $partners-title-color !default;
67
+ $partners-more-brands-display: flex !default;
68
+ $partners-more-brands-font-size: 1rem !default;
69
+ $partners-more-brands-font-size-desktop: 1.125rem !default;
70
+ $partners-more-brands-font-weight: 400 !default;
71
+ $partners-more-brands-line-height: 1.25 !default;
72
+ $partners-more-brands-text-align: left !default;
73
+
74
+ $partners-more-brands-icon-font-size: 32px !default;
75
+ $partners-more-brands-icon-font-weight: bold !default;
76
+ $partners-more-brands-icon-margin: 0 15px 0 0 !default;
77
+
78
+ $partners-inprogress-display: none !default;
79
+
80
+ .partners {
81
+ background: $partners-background;
82
+ border-bottom: $partners-border-bottom;
83
+ padding: $partners-padding;
84
+ text-align: $partners-text-align;
85
+
86
+ &__title {
87
+ color: $partners-title-color;
88
+ font-size: $partners-title-font-size;
89
+ font-weight: $partners-title-font-weight;
90
+ line-height: $partners-title-line-height;
91
+ margin: $partners-title-margin;
92
+ }
93
+
94
+ &__subtitle,
95
+ &__disclaimer {
96
+ color: $partners-subtitle-color;
97
+ font-size: $partners-subtitle-font-size;
98
+ font-style: $partners-subtitle-font-style;
99
+ font-weight: $partners-subtitle-font-weight;
100
+ line-height: $partners-subtitle-line-height;
101
+ margin: $partners-subtitle-margin;
102
+ }
103
+
104
+ &__companies {
105
+ align-items: $partners-companies-align-items;
106
+ display: $partners-companies-display;
107
+ flex-wrap: $partners-companies-flex-wrap;
108
+ justify-content: $partners-companies-justify-content;
109
+ }
110
+
111
+ &__logo {
112
+ margin: $partners-logo-margin;
113
+
114
+ img {
115
+ height: $partners-logo-image-height;
116
+ max-width: $partners-logo-image-max-width;
117
+ }
118
+ }
119
+
120
+ &__benefits {
121
+ color: $partners-benefits-color;
122
+ font-size: $partners-benefits-font-size;
123
+ font-weight: $partners-benefits-font-weight;
124
+ line-height: $partners-benefits-line-height;
125
+ list-style: $partners-benefits-list-style;
126
+ text-align: $partners-benefits-text-align;
127
+ }
128
+
129
+ &__more-brands {
130
+ align-items: $partners-more-brands-align-items;
131
+ color: $partners-more-brands-color;
132
+ display: $partners-more-brands-display;
133
+ font-size: $partners-more-brands-font-size;
134
+ font-weight: $partners-more-brands-font-weight;
135
+ line-height: $partners-more-brands-line-height;
136
+ text-align: $partners-more-brands-text-align;
137
+
138
+ .icon-add {
139
+ font-size: $partners-more-brands-icon-font-size;
140
+ font-weight: $partners-more-brands-icon-font-weight;
141
+ margin: $partners-more-brands-icon-margin;
142
+ }
143
+ }
144
+
145
+ &__featured-in {
146
+ margin-bottom: $partners-featured-margin-bottom;
147
+ padding-bottom: $partners-featured-padding-bottom;
148
+ position: relative;
149
+ text-align: $partners-featured-text-align;
150
+
151
+ &:after {
152
+ content: '';
153
+ background-color: $partners-featured-border-color;
154
+ position: absolute;
155
+ bottom: 0;
156
+ height: $partners-featured-border-height;
157
+ width: $partners-featured-border-width;
158
+ left: 50%;
159
+ transform: translateX(-50%);
160
+ }
161
+
162
+ p {
163
+ color: $partners-featured-text-color;
164
+ display: $partners-featured-text-display;
165
+ font-size: $partners-featured-text-font-size;
166
+ margin: $partners-featured-text-margin;
167
+ }
168
+
169
+ img {
170
+ max-width: $partners-featured-image-max-width;
171
+ }
172
+ }
173
+ }
174
+
175
+ .form-in-progress {
176
+ .partners {
177
+ display: $partners-inprogress-display;
178
+ }
179
+ }
180
+
181
+ @include breakpoint-md {
182
+ .partners {
183
+ padding: $partners-padding-desktop;
184
+
185
+ &__title {
186
+ font-size: $partners-title-font-size-desktop;
187
+ }
188
+
189
+ &__logo {
190
+ margin: $partners-logo-margin-desktop;
191
+ }
192
+
193
+ &__subtitle,
194
+ &__disclaimer {
195
+ font-size: $partners-subtitle-font-size-desktop;
196
+ }
197
+
198
+ &__more-brands {
199
+ font-size: $partners-more-brands-font-size-desktop;
200
+ }
201
+ }
202
+ }
203
+
204
+ @include breakpoint-xl {
205
+ .partners {
206
+ &__container {
207
+ align-items: $partners-container-align-items-xl;
208
+ display: $partners-container-display-xl;
209
+ justify-content: $partners-container-justify-content-xl;
210
+ }
211
+
212
+ &__header {
213
+ max-width: $partners-header-max-width-xl;
214
+ text-align: $partners-header-text-align-xl;
215
+ }
216
+
217
+ &__featured-in {
218
+ margin-bottom: $partners-featured-padding-bottom-xl;
219
+ padding-bottom: $partners-featured-padding-bottom-xl;
220
+ text-align: $partners-featured-text-align-xl;
221
+
222
+ &:after {
223
+ display: none;
224
+ }
225
+
226
+ p {
227
+ display: $partners-featured-text-display-xl;
228
+ margin: $partners-featured-text-margin-xl;
229
+ }
230
+ }
231
+ }
232
+ }
@@ -0,0 +1,56 @@
1
+ <section class="partners{{#xif 'this.partners.attributes && this.partners.attributes.class'}} {{this.partners.attributes.class}}{{/xif}}" {{{addAttributes this.partners 'class'}}}>
2
+ <div class="partners__container container">
3
+ {{#if this.partners.featuredIn}}
4
+ <div class="partners__featured-in">
5
+ {{#if this.partners.featuredIn.text}}
6
+ <p>{{{this.partners.featuredIn.text}}}</p>
7
+ {{/if}}
8
+ {{#if this.partners.featuredIn.picture}}
9
+ {{ fileInclude 'src/accessible-components/picture/picture.html'
10
+ picture = this.partners.featuredIn.picture
11
+ }}
12
+ {{/if}}
13
+ </div>
14
+ {{/if}}
15
+ <div class="partners__header">
16
+ {{#if this.partners.title}}
17
+ <h2 class="partners__title{{#xif 'this.partners.title.attributes && this.partners.title.attributes.class'}} {{this.partners.title.attributes.class}}{{/xif}}" {{{addAttributes this.partners.title 'class'}}}>{{{this.partners.title.text}}}</h2>
18
+ {{/if}}
19
+ {{#if this.partners.subtitle}}
20
+ <p class="partners__subtitle{{#xif 'this.partners.subtitle.attributes && this.partners.subtitle.attributes.class'}} {{this.partners.subtitle.attributes.class}}{{/xif}}" {{{addAttributes this.partners.subtitle 'class'}}}>{{{this.partners.subtitle.text}}}</p>
21
+ {{/if}}
22
+ </div>
23
+ {{#if this.partners.companies}}
24
+ <ul class="partners__companies{{#xif 'this.partners.companies.attributes && this.partners.companies.attributes.class'}} {{this.partners.companies.attributes.class}}{{/xif}}" {{{addAttributes this.partners.companies 'class'}}}>
25
+ {{#each this.partners.companies.items}}
26
+ <li class="partners__logo{{#xif 'this.attributes && this.attributes.class'}} {{this.attributes.class}}{{/xif}}" {{{addAttributes this 'class'}}}>
27
+ {{#if this.picture}}
28
+ {{ fileInclude 'src/accessible-components/picture/picture.html'
29
+ picture = this.picture
30
+ }}
31
+ {{/if}}
32
+ {{#if this.benefits}}
33
+ <ul class="partners__benefits{{#xif 'this.benefits.attributes && this.benefits.attributes.class'}} {{this.benefits.attributes.class}}{{/xif}}" {{{addAttributes this.benefits 'class'}}}>
34
+ {{#each this.benefits.items}}
35
+ <li>{{{this}}}</li>
36
+ {{/each}}
37
+ </ul>
38
+ {{/if}}
39
+ </li>
40
+ {{/each}}
41
+ {{#if this.partners.companies.moreBrands}}
42
+ <li class="partners__logo partners__more-brands">
43
+ {{#if this.partners.companies.moreBrands.includePlusIcon}}
44
+ <i class="icon-add" aria-hidden="true"></i>
45
+ <span class="visually-hidden">Plus</span>
46
+ {{/if}}
47
+ {{{this.partners.companies.moreBrands.text}}}
48
+ </li>
49
+ {{/if}}
50
+ </ul>
51
+ {{/if}}
52
+ {{#if this.partners.disclaimer}}
53
+ <p class="partners__disclaimer{{#xif 'this.partners.disclaimer.attributes && this.partners.disclaimer.attributes.class'}} {{this.partners.disclaimer.attributes.class}}{{/xif}}" {{{addAttributes this.partners.disclaimer 'class'}}}>{{{this.partners.disclaimer.text}}}</p>
54
+ {{/if}}
55
+ </div>
56
+ </section>
@@ -0,0 +1,19 @@
1
+ {{#if this.picture}}
2
+ {{#if this.picture.source}}
3
+ <picture {{#xif "this.picture.attributes && this.picture.attributes.class || this.class"}}class="{{#if this.picture.attributes.class}}{{this.picture.attributes.class}} {{/if}}{{#if this.class}}{{this.class}}{{/if}}"{{/xif}} {{{addAttributes this.picture 'class'}}}>
4
+ {{#each this.picture.source}}
5
+ <source srcset="{{#if ../this.picture.useCDN}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.attributes.srcset}}{{else}}{{this.attributes.srcset}}{{/if}}" {{{addAttributes this 'srcset'}}}>
6
+ {{/each}}
7
+ <img src="{{#if this.picture.useCDN}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.picture.img.attributes.src}}{{else}}{{this.picture.img.attributes.src}}{{/if}}" {{{addAttributes this.picture.img 'src'}}}/>
8
+ </picture>
9
+ {{else if this.picture.svg}}
10
+ <svg {{#xif "this.picture.svg.attributes && this.picture.svg.attributes.class || this.class"}}class="{{#if this.picture.svg.attributes.class}}{{this.picture.svg.attributes.class}} {{/if}}{{#if this.class}}{{this.class}}{{/if}}"{{/xif}} {{{addAttributes this.picture.svg 'class'}}}>
11
+ {{#if this.picture.svg.title}}
12
+ <title {{{addAttributes this.picture.svg.title}}}>{{{this.picture.svg.title.text}}}</title>
13
+ {{/if}}
14
+ <use href="{{#if this.picture.useCDN}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.picture.svg.use.attributes.href}}{{else}}{{this.picture.svg.use.attributes.href}}{{/if}}" {{{addAttributes this.picture.svg.use 'href'}}}/>
15
+ </svg>
16
+ {{else}}
17
+ <img {{#xif "this.picture.img.attributes && this.picture.img.attributes.class || this.class"}}class="{{#if this.picture.img.attributes.class}}{{this.picture.img.attributes.class}} {{/if}}{{#if this.class}}{{this.class}}{{/if}}"{{/xif}} src="{{#if this.picture.useCDN}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{this.picture.img.attributes.src}}{{else}}{{this.picture.img.attributes.src}}{{/if}}" {{{addAttributes this.picture.img 'class' 'src'}}}/>
18
+ {{/if}}
19
+ {{/if}}