mod-build 4.0.21 → 4.0.22-beta.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 (165) hide show
  1. package/CHANGELOG.md +2 -2
  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/src/accessible-components/button/_button.scss +319 -0
  30. package/src/accessible-components/button/back-button.html +8 -0
  31. package/src/accessible-components/button/button.html +17 -0
  32. package/src/accessible-components/carousel/_carousel.scss +112 -0
  33. package/src/accessible-components/carousel/carousel.html +25 -0
  34. package/src/accessible-components/carousel/carousel.js +3426 -0
  35. package/src/accessible-components/carousel/carousel.js.map +1 -0
  36. package/src/accessible-components/carousel/carousel.min.js +6 -0
  37. package/src/accessible-components/carousel/carousel.min.js.map +1 -0
  38. package/src/accessible-components/checkbox/_checkbox.scss +153 -0
  39. package/src/accessible-components/checkbox/checkbox-group.html +18 -0
  40. package/src/accessible-components/checkbox/checkbox.html +8 -0
  41. package/src/accessible-components/expand-collapse/_expand-collapse.scss +129 -0
  42. package/src/accessible-components/expand-collapse/expand-collapse.html +14 -0
  43. package/src/accessible-components/expand-collapse/expand-collapse.js +52 -0
  44. package/src/accessible-components/expand-collapse/expand-collapse.min.js +2 -0
  45. package/src/accessible-components/expand-collapse/expand-collapse.min.js.map +1 -0
  46. package/src/accessible-components/featured-block/_featured-block.scss +221 -0
  47. package/src/accessible-components/featured-block/featured-block.html +54 -0
  48. package/src/accessible-components/foot-assets/foot-assets.html +112 -0
  49. package/src/accessible-components/footer/footer.html +2 -0
  50. package/src/accessible-components/gtm-body/gtm-body.html +4 -0
  51. package/src/accessible-components/head/head.html +187 -0
  52. package/src/accessible-components/header/_header.scss +289 -0
  53. package/src/accessible-components/header/header.html +66 -0
  54. package/src/accessible-components/hero/_hero.scss +405 -0
  55. package/src/accessible-components/hero/hero.html +53 -0
  56. package/src/accessible-components/how-it-works/_how-it-works.scss +217 -0
  57. package/src/accessible-components/how-it-works/how-it-works-carousel.html +12 -0
  58. package/src/accessible-components/how-it-works/how-it-works-static.html +12 -0
  59. package/src/accessible-components/how-it-works/how-it-works.html +14 -0
  60. package/src/accessible-components/information/_information.scss +96 -0
  61. package/src/accessible-components/information/information.html +32 -0
  62. package/src/accessible-components/input/_input.scss +204 -0
  63. package/src/accessible-components/input/input.html +22 -0
  64. package/src/accessible-components/input/textarea.html +9 -0
  65. package/src/accessible-components/partners/_partners.scss +234 -0
  66. package/src/accessible-components/partners/partners.html +56 -0
  67. package/src/accessible-components/picture/picture.html +19 -0
  68. package/src/accessible-components/preloader/_preloader.scss +61 -0
  69. package/src/accessible-components/preloader/preloader.html +23 -0
  70. package/src/accessible-components/progress-bar/_progress-bar.scss +140 -0
  71. package/src/accessible-components/progress-bar/progress-bar.html +21 -0
  72. package/src/accessible-components/progress-bar/progress-bar.js +37 -0
  73. package/src/accessible-components/progress-bar/progress-bar.min.js +2 -0
  74. package/src/accessible-components/progress-bar/progress-bar.min.js.map +1 -0
  75. package/src/accessible-components/radio-button/_radio-button.scss +586 -0
  76. package/src/accessible-components/radio-button/radio-button.html +33 -0
  77. package/src/accessible-components/reviews/_reviews.scss +180 -0
  78. package/src/accessible-components/reviews/reviews-carousel.html +12 -0
  79. package/src/accessible-components/reviews/reviews-static.html +12 -0
  80. package/src/accessible-components/reviews/reviews.html +37 -0
  81. package/src/accessible-components/select/_select.scss +87 -0
  82. package/src/accessible-components/select/select.html +10 -0
  83. package/src/accessible-components/steps/_steps.scss +640 -0
  84. package/src/accessible-components/steps/defaultFormFieldConfig.json +109 -0
  85. package/src/accessible-components/steps/step-fields.html +38 -0
  86. package/src/accessible-components/steps/steps.html +168 -0
  87. package/src/accessible-components/tcpa/_tcpa.scss +49 -0
  88. package/src/accessible-components/tcpa/tcpa.html +9 -0
  89. package/src/accessible-components/tile/_tile.scss +117 -0
  90. package/src/accessible-components/tile/tile.html +14 -0
  91. package/src/accessible-components/value-props/_value-props.scss +102 -0
  92. package/src/accessible-components/value-props/value-props.html +17 -0
  93. package/src/accessible-components/zip-control/_zip-control.scss +79 -0
  94. package/src/accessible-components/zip-control/zip-control.html +10 -0
  95. package/src/resources/data/tcpa.json +4 -0
  96. package/src/resources/templates/modals/about/index.hbs +9 -0
  97. package/src/resources/templates/modals/about/index.html +9 -0
  98. package/src/resources/templates/modals/contact-us/index.hbs +348 -0
  99. package/src/resources/templates/modals/contact-us/index.html +348 -0
  100. package/src/resources/templates/modals/faq/index.hbs +9 -0
  101. package/src/resources/templates/modals/faq/index.html +9 -0
  102. package/src/resources/templates/modals/privacy/index.hbs +236 -0
  103. package/src/resources/templates/modals/privacy/index.html +236 -0
  104. package/src/resources/templates/modals/terms/index.hbs +166 -0
  105. package/src/resources/templates/modals/terms/index.html +166 -0
  106. package/src/scripts/vendor/visual-website-optimizer.js +0 -1
  107. package/src/shared-components/card-button/_card-button.scss +49 -0
  108. package/src/shared-components/card-button/card-button.html +9 -0
  109. package/src/shared-components/carousel/_carousel.scss +106 -0
  110. package/src/shared-components/carousel/carousel.html +22 -0
  111. package/src/shared-components/carousel/carousel.js +3574 -0
  112. package/src/shared-components/carousel/carousel.js.map +1 -0
  113. package/src/shared-components/carousel/carousel.min.js +6 -0
  114. package/src/shared-components/carousel/carousel.min.js.map +1 -0
  115. package/src/shared-components/carousel/carousel.min.min.js +6 -0
  116. package/src/shared-components/carousel/carousel.min.min.js.map +1 -0
  117. package/src/shared-components/checkbox/_checkbox.scss +125 -0
  118. package/src/shared-components/checkbox/checkbox.html +10 -0
  119. package/src/shared-components/expand-collapse/_expand-collapse.scss +93 -0
  120. package/src/shared-components/expand-collapse/expand-collapse.html +8 -0
  121. package/src/shared-components/expand-collapse/expand-collapse.js +40 -0
  122. package/src/shared-components/expand-collapse/expand-collapse.min.js +2 -0
  123. package/src/shared-components/expand-collapse/expand-collapse.min.js.map +1 -0
  124. package/src/shared-components/featured-block/_featured-block.scss +191 -0
  125. package/src/shared-components/featured-block/featured-block.html +80 -0
  126. package/src/shared-components/foot-assets/foot-assets.html +107 -0
  127. package/src/shared-components/form-tcpa/form-tcpa.html +12 -0
  128. package/src/shared-components/gtm-body/gtm-body.html +4 -0
  129. package/src/shared-components/head/head.html +192 -0
  130. package/src/shared-components/header/_header.scss +200 -0
  131. package/src/shared-components/header/header.html +73 -0
  132. package/src/shared-components/hero/_hero.scss +253 -0
  133. package/src/shared-components/hero/hero.html +126 -0
  134. package/src/shared-components/how-it-works/_how-it-works.scss +138 -0
  135. package/src/shared-components/how-it-works/how-it-works.html +19 -0
  136. package/src/shared-components/input/_input.scss +242 -0
  137. package/src/shared-components/input/input.html +30 -0
  138. package/src/shared-components/preloader/_preloader.scss +61 -0
  139. package/src/shared-components/preloader/preloader.html +49 -0
  140. package/src/shared-components/progress-bar/_progress-bar.scss +142 -0
  141. package/src/shared-components/progress-bar/progress-bar.html +20 -0
  142. package/src/shared-components/progress-bar/progress-bar.js +25 -0
  143. package/src/shared-components/progress-bar/progress-bar.min.js +2 -0
  144. package/src/shared-components/progress-bar/progress-bar.min.js.map +1 -0
  145. package/src/shared-components/radio-button/_radio-button.scss +554 -0
  146. package/src/shared-components/radio-button/radio-button.html +25 -0
  147. package/src/shared-components/reviews/_reviews.scss +79 -0
  148. package/src/shared-components/reviews/reviews.html +27 -0
  149. package/src/shared-components/select/_select.scss +61 -0
  150. package/src/shared-components/select/select.html +8 -0
  151. package/src/shared-components/steps/_steps.scss +414 -0
  152. package/src/shared-components/steps/defaultFormFieldConfig.json +64 -0
  153. package/src/shared-components/steps/step-fields.html +36 -0
  154. package/src/shared-components/steps/steps.html +131 -0
  155. package/src/shared-components/textarea/_textarea.scss +96 -0
  156. package/src/shared-components/textarea/textarea.html +13 -0
  157. package/src/shared-components/theme-toggle/_theme-toggle.scss +68 -0
  158. package/src/shared-components/theme-toggle/theme-toggle.html +34 -0
  159. package/src/shared-components/tile/_tile.scss +117 -0
  160. package/src/shared-components/tile/tile.html +27 -0
  161. package/src/shared-components/value-props/_value-props.scss +98 -0
  162. package/src/shared-components/value-props/value-props.html +17 -0
  163. package/src/shared-components/zip-control/_zip-control.scss +42 -0
  164. package/src/shared-components/zip-control/zip-control.html +21 -0
  165. package/tasks/grab-shared-scripts.js +11 -1
@@ -0,0 +1,131 @@
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.stepClassName}}{{this.stepClassName}}{{/if}} {{#if @first}}step--active swiper-slide-active{{/if}}{{#if this.trade }} {{this.trade}}{{/if}}" data-bind="step" {{#if @first}}data-slide="active"{{/if}} {{#if this.stepName}} data-step-name="{{this.stepName}}"{{/if}}{{#if this.trade }} data-trade="{{this.trade}}"{{/if}}>
3
+ <div class="step-inner{{#if this.stepInnerClass}} {{this.stepInnerClass}}{{/if}}">
4
+ {{#if this.customStepTopTemplate}}
5
+ {{ fileInclude this.customStepTopTemplate
6
+ stepTopOpt = this
7
+ }}
8
+ {{/if}}
9
+
10
+ {{#if this.stepHeader}}
11
+ <div class="step__title-container{{#if this.stepHeader.classModifierFlag}} step__title-container{{this.stepHeader.classModifierFlag}}{{/if}}">
12
+ {{#if this.stepHeader.supertitle}}
13
+ <div class="step__supertitle{{#if this.stepHeader.showAnimatedArrow}} step__supertitle--show-animated-arrow{{/if}}" {{{this.stepHeader.supertitleAttributes}}} data-theme-template="formtitle">
14
+ {{#if this.stepHeader.mobileSupertitle}}
15
+ <span class="hidden-xs">{{{this.stepHeader.supertitle}}}</span>
16
+ <span class="visible-xs">{{{this.stepHeader.mobileSupertitle}}}</span>
17
+ {{else}}
18
+ {{{this.stepHeader.supertitle}}}
19
+ {{/if}}
20
+ </div>
21
+ {{/if}}
22
+ {{#if this.stepHeader.title}}
23
+ <div class="step__title">
24
+ {{#if this.stepHeader.mobileTitle}}
25
+ <span class="hidden-xs">{{{this.stepHeader.title}}}</span>
26
+ <span class="visible-xs">{{{this.stepHeader.mobileTitle}}}</span>
27
+ {{else}}
28
+ {{{this.stepHeader.title}}}
29
+ {{/if}}
30
+ </div>
31
+ {{/if}}
32
+
33
+ {{#if this.stepHeader.subtitle}}
34
+ <div class="step__subtitle">
35
+ {{#if this.stepHeader.subtitle.text}}{{{this.stepHeader.subtitle.text}}}{{/if}}
36
+ {{#if this.stepHeader.subtitle.list}}
37
+ <ul class="step__subtitle-list">
38
+ {{#each this.stepHeader.subtitle.list}}
39
+ <li>
40
+ <span>{{{this}}}</span>
41
+ </li>
42
+ {{/each}}
43
+ </ul>
44
+ {{/if}}
45
+ </div>
46
+ {{/if}}
47
+ {{#if this.stepHeader.overview}}
48
+ {{#unless this.moveOverviewUnderHeader}}
49
+ <div class="step__overview row">
50
+ {{#each this.stepHeader.overview}}
51
+ <span class="{{#unless this.class}}col-xs-4{{/unless}}">
52
+ <span class="step__overview-number">{{this.number}}</span> {{{this.text}}}
53
+ </span>
54
+ {{/each}}
55
+ </div>
56
+ {{/unless}}
57
+ {{/if}}
58
+ </div>
59
+ {{/if}}
60
+
61
+ {{#if this.moveOverviewUnderHeader}}
62
+ {{#if this.stepHeader.overview}}
63
+ <div class="step__overview row">
64
+ {{#each this.stepHeader.overview}}
65
+ <span class="{{#unless this.class}}col-xs-4{{/unless}}">
66
+ <span class="step__overview-number">{{this.number}}</span> {{{this.text}}}
67
+ </span>
68
+ {{/each}}
69
+ </div>
70
+ {{/if}}
71
+ {{/if}}
72
+
73
+ <div class="step__fields{{#if this.fieldsWrapperClass}} {{this.fieldsWrapperClass}}{{/if}}">
74
+ {{#each this.fields}}
75
+ <div class="form-group{{#if this.wrapper.class}} {{this.wrapper.class}}{{/if}}{{#unless this.skipErrorClass}} parent-error{{/unless}}" {{#if this.wrapper.id}}id="{{this.wrapper.id}}"{{/if}} {{#if this.wrapper.style}}style="{{this.wrapper.style}}"{{/if}}>
76
+ {{#if this.label}}
77
+ <label class="form-group__label">
78
+ {{{this.label}}}
79
+ {{#if this.labelToolTip}}
80
+ <span class="form-group__label-tooltip" data-bind="tooltip-icon">
81
+ <i class="{{#if this.labelToolTipIcon}}{{this.labelToolTipIcon}}{{else}}icon-stroke-warning{{/if}}" {{#if this.labelTooltipName}}data-tooltip-name="{{this.labelTooltipName}}"{{/if}}></i>
82
+ <span class="form-group__label-tooltip-text">
83
+ {{{this.labelToolTip}}}
84
+ </span>
85
+ </span>
86
+ {{/if}}
87
+ {{#if this.labelNote}}<span class="form-group__note">{{{this.labelNote}}}</span>{{/if}}
88
+ </label>
89
+ {{/if}}
90
+
91
+ {{ fileInclude 'src/shared-components/steps/step-fields.html'
92
+ stepFields = this
93
+ }}
94
+
95
+ {{#if this.errorMessage}}<div class="form-group__error-message">{{{this.errorMessage}}}</div>{{/if}}
96
+ {{#if this.showCityState}}<div class="form-group__city-state">City, State</div>{{/if}}
97
+ {{#if this.note}}<span class="form-group__note">{{{this.note}}}</span>{{/if}}
98
+ </div>
99
+ {{/each}}
100
+ </div>
101
+
102
+ {{#if this.extraQuestionBlock}}
103
+ <div {{#if this.extraQuestionBlock.id}}id="{{this.extraQuestionBlock.id}}"{{/if}} class="step__extra{{#if this.extraQuestionBlock.class}} {{this.extraQuestionBlock.class}}{{/if}}">
104
+ {{#if this.extraQuestionBlock.title}}
105
+ <div class="step__title">
106
+ {{{this.extraQuestionBlock.title}}}
107
+ </div>
108
+ {{/if}}
109
+ {{#if this.extraQuestionBlock.subtitle}}
110
+ <div class="step__subtitle">
111
+ {{#if this.extraQuestionBlock.subtitle.text}}
112
+ {{{this.extraQuestionBlock.subtitle.text}}}
113
+ {{/if}}
114
+ </div>
115
+ {{/if}}
116
+ {{#each this.extraQuestionBlock.fields}}
117
+ {{ fileInclude 'src/shared-components/steps/step-fields.html'
118
+ stepFields = this
119
+ }}
120
+ {{/each}}
121
+ </div>
122
+ {{/if}}
123
+
124
+ {{#if this.customStepBottomTemplate}}
125
+ {{ fileInclude this.customStepBottomTemplate
126
+ stepBottomOpt = this
127
+ }}
128
+ {{/if}}
129
+ </div>
130
+ </li>
131
+ {{/each}}
@@ -0,0 +1,96 @@
1
+ $form-textarea-bg-color: $color-white !default;
2
+ $form-textarea-border: 1px solid $color-charcoal1 !default;
3
+ $form-textarea-border-radius: 4px !default;
4
+ $form-textarea-box-shadow: inset 2px 1px 2px 0 rgba($color-black, .08), inset -2px 0px 2px 0 rgba($color-black, .08) !default;
5
+ $form-textarea-color: $color-charcoal5 !default;
6
+ $form-textarea-font-size: 16px !default;
7
+ $form-textarea-font-weight: 400 !default;
8
+ $form-textarea-height: 120px !default;
9
+ $form-textarea-line-height: 1.1875 !default;
10
+ $form-textarea-margin: 0 0 15px !default;
11
+ $form-textarea-padding: 15px !default;
12
+ $form-textarea-placeholder-color: $color-charcoal2 !default;
13
+ $form-textarea-placeholder-color-desktop: $form-textarea-placeholder-color !default;
14
+ $form-textarea-resize: none !default;
15
+ $form-textarea-transition-time: .15s !default;
16
+ $form-textarea-zip-width: 200px !default;
17
+
18
+ $form-textarea-focus-bg-color: $form-textarea-bg-color !default;
19
+ $form-textarea-focus-border: 1px solid $color-charcoal2 !default;
20
+
21
+ $form-textarea-error-color: $color-red5 !default;
22
+ $form-textarea-error-border: 1px solid $form-textarea-error-color !default;
23
+ $form-textarea-error-box-shadow: inset 0 1px 1px rgba($color-black, .08) !default;
24
+ $form-textarea-error-focus-border-color: #E34B2B !default;
25
+ $form-textarea-error-focus-box-shadow: inset 0 1px 1px rgba($color-black, .08), 0 0 6px #F5BEB2 !default;
26
+ $form-textarea-icon-error-bg-color: $color-red2 !default;
27
+ $form-textarea-icon-error-color: $color-red5 !default;
28
+ $form-textarea-group-error-border-width: 0 !default;
29
+ $form-textarea-group-input-error-border: $form-textarea-error-border !default;
30
+
31
+ .form-textarea {
32
+ background-color: $form-textarea-bg-color;
33
+ border: $form-textarea-border;
34
+ border-radius: $form-textarea-border-radius;
35
+ box-shadow: $form-textarea-box-shadow;
36
+ color: $form-textarea-color;
37
+ font-size: $form-textarea-font-size;
38
+ font-weight: $form-textarea-font-weight;
39
+ height: $form-textarea-height;
40
+ line-height: $form-textarea-line-height;
41
+ margin: $form-textarea-margin;
42
+ padding: $form-textarea-padding;
43
+ position: relative;
44
+ resize: $form-textarea-resize;
45
+ transition: background-color $form-textarea-transition-time ease-in-out, border-color $form-textarea-transition-time ease-in-out, box-shadow $form-textarea-transition-time ease-in-out;
46
+ width: 100%;
47
+
48
+ &::-webkit-input-placeholder {
49
+ color: $form-textarea-placeholder-color;
50
+ }
51
+
52
+ &::-ms-input-placeholder {
53
+ color: $form-textarea-placeholder-color;
54
+ }
55
+
56
+ &::placeholder {
57
+ color: $form-textarea-placeholder-color;
58
+ }
59
+
60
+ &:focus {
61
+ background-color: $form-textarea-focus-bg-color;
62
+ border: $form-textarea-focus-border;
63
+ box-shadow: none;
64
+ }
65
+
66
+ &.zip {
67
+ width: $form-textarea-zip-width;
68
+ }
69
+ }
70
+
71
+ .has-error .form-textarea {
72
+ border: $form-textarea-error-border;
73
+ box-shadow: $form-textarea-error-box-shadow;
74
+ color: $form-textarea-error-color;
75
+
76
+ &:focus {
77
+ border-color: $form-textarea-error-focus-border-color;
78
+ box-shadow: $form-textarea-error-focus-box-shadow;
79
+ }
80
+ }
81
+
82
+ @include breakpoint-sm {
83
+ .form-textarea {
84
+ &::-webkit-input-placeholder {
85
+ color: $form-textarea-placeholder-color-desktop;
86
+ }
87
+
88
+ &::-ms-input-placeholder {
89
+ color: $form-textarea-placeholder-color-desktop;
90
+ }
91
+
92
+ &::placeholder {
93
+ color: $form-textarea-placeholder-color-desktop;
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,13 @@
1
+ <textarea
2
+ id="{{#if this.field.id}}{{this.field.id}}{{else}}{{this.field.name}}{{/if}}"
3
+ class="form-textarea {{this.field.class}}"
4
+ name="{{this.field.name}}"
5
+ {{#if this.field.placeholder}}placeholder="{{this.field.placeholder}}"{{/if}}
6
+ {{#if this.field.maxLength}}maxlength="{{this.field.maxLength}}"{{/if}}
7
+ {{#if this.field.required}}data-required="{{this.field.required}}"{{/if}}
8
+ {{#if this.field.value}}value="{{this.field.value}}"{{/if}}
9
+ {{#if this.field.min}}data-{{this.field.required}}-min="{{this.field.min}}"{{/if}}
10
+ {{#if this.field.saveField}}data-save{{/if}}
11
+ {{#if this.field.readonly}}readonly{{/if}}
12
+ {{#if this.field.extraAttributes}}{{#each this.field.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}
13
+ ></textarea>
@@ -0,0 +1,68 @@
1
+ .toggle-wrapper {
2
+ align-items: center;
3
+ color: $color-charcoal1;
4
+ display: flex;
5
+ font-size: 12px;
6
+ font-weight: bold;
7
+ float: right;
8
+ justify-content: space-evenly;
9
+ max-width: 160px;
10
+ text-transform: uppercase;
11
+ width: 100%;
12
+
13
+
14
+ input[type="checkbox"] {
15
+ &.theme-toggle {
16
+ opacity: 0;
17
+ position: absolute;
18
+
19
+ & + label {
20
+ background-color: $color-charcoal1;
21
+ border: 1px solid $color-white;
22
+ border-radius: 100px;
23
+ cursor: pointer;
24
+ display: inline-block;
25
+ height: 26px;
26
+ position: relative;
27
+ transition: all .4s ease;
28
+ user-select: none;
29
+ width: 56px;
30
+
31
+ &::before {
32
+ content: "";
33
+ border-radius: 30px;
34
+ display: block;
35
+ height: 100%;
36
+ left: 0;
37
+ position: absolute;
38
+ top: 0;
39
+ transition: .2s cubic-bezier(.24, 0, .5, 1);
40
+ width: 100%;
41
+ }
42
+
43
+ &::after {
44
+ background: $color-orange5;
45
+ border-radius: 100px;
46
+ content: "";
47
+ display: block;
48
+ left: 3px;
49
+ height: 18px;
50
+ position: absolute;
51
+ top: 3px;
52
+ transition: .35s cubic-bezier(.54, 1.60, .5, 1);
53
+ width: 18px;
54
+ }
55
+ }
56
+
57
+ &:checked {
58
+ & + label::before {
59
+ background-color: $color-charcoal7;
60
+ }
61
+ & + label::after {
62
+ background: $color-blue5;
63
+ left: 33px
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,34 @@
1
+ <div class="toggle-wrapper hidden-xs hidden-sm hidden-md">
2
+ <span>Light</span>
3
+ <input type="checkbox" id="theme-toggle" name="theme-toggle" class="theme-toggle" />
4
+ <label for="theme-toggle"></label>
5
+ <span>Dark</span>
6
+ </div>
7
+ <script>
8
+ (function () {
9
+ const themeToggle = document.getElementById('theme-toggle');
10
+ const body = document.body;
11
+ if (themeToggle) {
12
+ const toggleDarkClass = function (event) {
13
+ event ? body.classList.add('dark') : body.classList.remove('dark');
14
+ };
15
+
16
+ themeToggle.addEventListener('click', function(){
17
+ toggleDarkClass(this.checked)
18
+ });
19
+
20
+ if ('matchMedia' in window) {
21
+ const colorScheme = window.matchMedia('(prefers-color-scheme: dark)');
22
+ const isDarkColorScheme = colorScheme.matches;
23
+
24
+ toggleDarkClass(isDarkColorScheme)
25
+ themeToggle.checked = isDarkColorScheme
26
+
27
+ colorScheme.addEventListener('change',function(e){
28
+ toggleDarkClass(e.matches)
29
+ themeToggle.checked = e.matches
30
+ })
31
+ }
32
+ }
33
+ })();
34
+ </script>
@@ -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: 3px !default;
14
+ $tile-bg-border-border-radius: 8px !default;
15
+ $tile-bg-hover-border-color: $color-blue5 !default;
16
+ $tile-bg-font-size: 18px !default;
17
+ $tile-bg-font-weight: 700 !default;
18
+ $tile-bg-text-color: #FFF !default;
19
+ $tile-bg-text-transform: uppercase !default;
20
+
21
+ $tile-icon-border-color: $color-charcoal1 !default;
22
+ $tile-icon-hover-border-color: $color-charcoal2 !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: 12px !default;
27
+ $tile-icon-font-weight: 700 !default;
28
+ $tile-icon-text-color: $color-charcoal4 !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% + 10px);
56
+ left: -5px;
57
+ position: absolute;
58
+ top: -5px;
59
+ transition: $tile-border-transition;
60
+ width: calc(100% + 10px);
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,27 @@
1
+ <div class="tile {{#if this.field.backgroundImageUrl}}tile--background-image{{/if}}{{#xif "this.field.svgSpriteIconUrl || this.field.imageIconUrl || this.field.localSVGPath || this.field.localSvgSpriteIconUrl || this.field.localImageIconUrl"}}tile--icon{{/xif}}">
2
+ {{#if this.field.backgroundImageUrl}}
3
+ <div class="tile__background-image {{#if this.field.backgroundImageClass}}{{this.field.backgroundImageClass}}{{/if}}" {{#xif "this.field.backgroundImageUrl != 'none'"}}style="background-image: url('https://{{x 'process.env.NODE_ENV'}}{{this.field.backgroundImageUrl}}')"{{/xif}}></div>
4
+ {{/if}}
5
+ {{#if this.field.imageIconUrl}}
6
+ <img class="tile__icon" src="https://{{x 'process.env.NODE_ENV'}}{{this.field.imageIconUrl}}" alt="{{this.field.text}}">
7
+ {{/if}}
8
+ {{#if this.field.localImageIconUrl}}
9
+ <img class="tile__icon" src="{{this.field.localImageIconUrl}}" alt="{{this.field.text}}">
10
+ {{/if}}
11
+ {{#if this.field.svgSpriteIconUrl}}
12
+ <svg class="tile__icon" role="img">
13
+ <use href="{{#xif 'isLocal === "true"'}}/temp/assets{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets{{/xif}}{{this.field.svgSpriteIconUrl}}"></use>
14
+ </svg>
15
+ {{/if}}
16
+ {{#if this.field.localSvgSpriteIconUrl}}
17
+ <svg class="tile__icon" role="img">
18
+ <use href="{{this.field.localSvgSpriteIconUrl}}"></use>
19
+ </svg>
20
+ {{/if}}
21
+ {{#if this.field.localSVGPath}}
22
+ <div class="tile__icon">
23
+ {{ fileInclude this.field.localSVGPath }}
24
+ </div>
25
+ {{/if}}
26
+ <span class="tile__text">{{{this.field.text}}}</span>
27
+ </div>
@@ -0,0 +1,98 @@
1
+ $value-props-display-mobile: none !default;
2
+ $value-props-display: block !default;
3
+ $value-props-backdrop-filter: blur(4px) !default;
4
+ $value-props-background-color: rgba($color-blue5,.85) !default;
5
+ $value-props-color: $color-white !default;
6
+ $value-props-margin: 0 !default;
7
+ $value-props-margin-mobile: $value-props-margin !default;
8
+ $value-props-max-width: 100% !default;
9
+ $value-props-padding: 30px 0 !default;
10
+ $value-props-padding-mobile: $value-props-padding !default;
11
+
12
+ $value-props-wrapper-display: flex !default;
13
+ $value-props-wrapper-flex-direction: row !default;
14
+ $value-props-wrapper-justify-content: space-evenly !default;
15
+
16
+ $value-props-icon-height: 40px !default;
17
+ $value-props-icon-width: $value-props-icon-height !default;
18
+ $value-props-icon-height-mobile: $value-props-icon-height !default;
19
+ $value-props-icon-width-mobile: $value-props-icon-width !default;
20
+
21
+ $value-props-item-border-left: 0 !default;
22
+ $value-props-item-flex: 0 0 25% !default;
23
+ $value-props-item-padding: 0 15px !default;
24
+ $value-props-item-text-align: center !default;
25
+
26
+ $value-props-description-font-size: 16px !default;
27
+ $value-props-description-font-size-tablet: $value-props-description-font-size !default;
28
+ $value-props-description-font-size-mobile: $value-props-description-font-size !default;
29
+ $value-props-description-font-weight: normal !default;
30
+ $value-props-description-line-height: 1.2 !default;
31
+ $value-props-description-line-height-mobile: $value-props-description-line-height !default;
32
+ $value-props-description-margin: 10px auto 0 !default;
33
+ $value-props-description-width: 80% !default;
34
+
35
+ .value-props {
36
+ backdrop-filter: $value-props-backdrop-filter;
37
+ background: $value-props-background-color;
38
+ color: $value-props-color;
39
+ display: $value-props-display-mobile;
40
+ margin: $value-props-margin-mobile;
41
+ max-width: $value-props-max-width;
42
+ padding: $value-props-padding-mobile;
43
+
44
+ &__wrapper {
45
+ display: $value-props-wrapper-display;
46
+ flex-direction: $value-props-wrapper-flex-direction;
47
+ justify-content: $value-props-wrapper-justify-content;
48
+ }
49
+
50
+ &__item {
51
+ flex: $value-props-item-flex;
52
+ padding: $value-props-item-padding;
53
+ text-align: $value-props-item-text-align;
54
+
55
+ ~ .value-props__item {
56
+ border-left: $value-props-item-border-left;
57
+ }
58
+ }
59
+
60
+ &__icon {
61
+ height: $value-props-icon-height-mobile;
62
+ width: $value-props-icon-width-mobile;
63
+ }
64
+
65
+ &__description {
66
+ font-size: $value-props-description-font-size-mobile;
67
+ font-weight: $value-props-description-font-weight;
68
+ line-height: $value-props-description-line-height-mobile;
69
+ margin: $value-props-description-margin;
70
+ width: $value-props-description-width;
71
+ }
72
+ }
73
+
74
+ @include breakpoint-sm {
75
+ .value-props {
76
+ display: $value-props-display;
77
+ margin: $value-props-margin;
78
+ padding: $value-props-padding;
79
+
80
+ &__icon {
81
+ height: $value-props-icon-height;
82
+ width: $value-props-icon-width;
83
+ }
84
+
85
+ &__description {
86
+ font-size: $value-props-description-font-size-tablet;
87
+ line-height: $value-props-description-line-height;
88
+ }
89
+ }
90
+ }
91
+
92
+ @include breakpoint-md {
93
+ .value-props {
94
+ &__description {
95
+ font-size: $value-props-description-font-size;
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,17 @@
1
+ <div class="value-props{{#if this.props.class}} {{this.props.class}}{{/if}}">
2
+ <ul class="value-props__wrapper">
3
+ {{#each this.props.items}}
4
+ <li class="value-props__item">
5
+ {{#if this.icon}}
6
+ <svg class="value-props__icon" role="img">
7
+ <use href="{{this.icon}}"></use>
8
+ </svg>
9
+ {{/if}}
10
+ {{#if this.imageIcon}}
11
+ <img class="value-props__icon" src="{{this.imageIcon}}">
12
+ {{/if}}
13
+ {{#if this.description}}<p class="value-props__description" data-theme-template="vp">{{{this.description}}}</p>{{/if}}
14
+ </li>
15
+ {{/each}}
16
+ </ul>
17
+ </div>
@@ -0,0 +1,42 @@
1
+ $zip-control-color: $color-blue5 !default;
2
+ $zip-control-hover-color: $zip-control-color !default;
3
+ $zip-control-font-size: 12px !default;
4
+ $zip-control-font-weight: 700 !default;
5
+ $zip-control-line-height: 1.25 !default;
6
+ $zip-control-margin: 0 !default;
7
+ $zip-control-text-align: right !default;
8
+
9
+ $zip-control-edit-color: $zip-control-color !default;
10
+ $zip-control-edit-hover-color: $zip-control-edit-color !default;
11
+ $zip-control-edit-margin-left: 0 !default;
12
+ $zip-control-edit-text-decoration: none !default;
13
+
14
+ .zip-control {
15
+ font-size: $zip-control-font-size;
16
+ font-weight: $zip-control-font-weight;
17
+ line-height: $zip-control-line-height;
18
+ margin: $zip-control-margin;
19
+ text-align: $zip-control-text-align;
20
+
21
+ &__location,
22
+ &__zipcode {
23
+ color: $zip-control-color;
24
+ }
25
+
26
+ &__location {
27
+ &:hover {
28
+ color: $zip-control-hover-color;
29
+ }
30
+ }
31
+
32
+ &__edit,
33
+ &__icon {
34
+ color: $zip-control-edit-color;
35
+ margin-left: $zip-control-edit-margin-left;
36
+ text-decoration: $zip-control-edit-text-decoration;
37
+
38
+ &:hover {
39
+ color: $zip-control-edit-hover-color;
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,21 @@
1
+ {{#if this.field.notEditableOnMobile}}
2
+ <div class="zip-control visible-xs" id="zip-control">
3
+ <span class="zip-control__location user-location">City, State</span>
4
+ {{#if this.field.includeInitialZipCode}}
5
+ <span class="zip-control__zipcode user-zipcode"></span>
6
+ {{/if}}
7
+ </div>
8
+ {{/if}}
9
+ <div class="zip-control{{#if this.field.notEditableOnMobile}} hidden-xs{{/if}}" id="zip-control">
10
+ <a class="zip-control__button" id="zip-control__button" role="button">
11
+ <span class="zip-control__location user-location">City, State</span>
12
+ {{#if this.field.includeInitialZipCode}}
13
+ <span class="zip-control__zipcode user-zipcode"></span>
14
+ {{/if}}
15
+ {{#if this.field.editText}}
16
+ <span class="zip-control__edit">{{this.field.editText}}</span>
17
+ {{else}}
18
+ <i class="zip-control__icon icon-fill-edit"></i>
19
+ {{/if}}
20
+ </a>
21
+ </div>