mod-build 4.0.21 → 4.0.22-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) 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/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/shared-components/card-button/_card-button.scss +49 -0
  107. package/src/shared-components/card-button/card-button.html +9 -0
  108. package/src/shared-components/carousel/_carousel.scss +106 -0
  109. package/src/shared-components/carousel/carousel.html +22 -0
  110. package/src/shared-components/carousel/carousel.js +3574 -0
  111. package/src/shared-components/carousel/carousel.js.map +1 -0
  112. package/src/shared-components/carousel/carousel.min.js +6 -0
  113. package/src/shared-components/carousel/carousel.min.js.map +1 -0
  114. package/src/shared-components/carousel/carousel.min.min.js +6 -0
  115. package/src/shared-components/carousel/carousel.min.min.js.map +1 -0
  116. package/src/shared-components/checkbox/_checkbox.scss +125 -0
  117. package/src/shared-components/checkbox/checkbox.html +10 -0
  118. package/src/shared-components/expand-collapse/_expand-collapse.scss +93 -0
  119. package/src/shared-components/expand-collapse/expand-collapse.html +8 -0
  120. package/src/shared-components/expand-collapse/expand-collapse.js +40 -0
  121. package/src/shared-components/expand-collapse/expand-collapse.min.js +2 -0
  122. package/src/shared-components/expand-collapse/expand-collapse.min.js.map +1 -0
  123. package/src/shared-components/featured-block/_featured-block.scss +191 -0
  124. package/src/shared-components/featured-block/featured-block.html +80 -0
  125. package/src/shared-components/foot-assets/foot-assets.html +107 -0
  126. package/src/shared-components/form-tcpa/form-tcpa.html +12 -0
  127. package/src/shared-components/gtm-body/gtm-body.html +4 -0
  128. package/src/shared-components/head/head.html +192 -0
  129. package/src/shared-components/header/_header.scss +200 -0
  130. package/src/shared-components/header/header.html +73 -0
  131. package/src/shared-components/hero/_hero.scss +253 -0
  132. package/src/shared-components/hero/hero.html +126 -0
  133. package/src/shared-components/how-it-works/_how-it-works.scss +138 -0
  134. package/src/shared-components/how-it-works/how-it-works.html +19 -0
  135. package/src/shared-components/input/_input.scss +242 -0
  136. package/src/shared-components/input/input.html +30 -0
  137. package/src/shared-components/preloader/_preloader.scss +61 -0
  138. package/src/shared-components/preloader/preloader.html +49 -0
  139. package/src/shared-components/progress-bar/_progress-bar.scss +142 -0
  140. package/src/shared-components/progress-bar/progress-bar.html +20 -0
  141. package/src/shared-components/progress-bar/progress-bar.js +25 -0
  142. package/src/shared-components/progress-bar/progress-bar.min.js +2 -0
  143. package/src/shared-components/progress-bar/progress-bar.min.js.map +1 -0
  144. package/src/shared-components/radio-button/_radio-button.scss +554 -0
  145. package/src/shared-components/radio-button/radio-button.html +25 -0
  146. package/src/shared-components/reviews/_reviews.scss +79 -0
  147. package/src/shared-components/reviews/reviews.html +27 -0
  148. package/src/shared-components/select/_select.scss +61 -0
  149. package/src/shared-components/select/select.html +8 -0
  150. package/src/shared-components/steps/_steps.scss +414 -0
  151. package/src/shared-components/steps/defaultFormFieldConfig.json +64 -0
  152. package/src/shared-components/steps/step-fields.html +36 -0
  153. package/src/shared-components/steps/steps.html +131 -0
  154. package/src/shared-components/textarea/_textarea.scss +96 -0
  155. package/src/shared-components/textarea/textarea.html +13 -0
  156. package/src/shared-components/theme-toggle/_theme-toggle.scss +68 -0
  157. package/src/shared-components/theme-toggle/theme-toggle.html +34 -0
  158. package/src/shared-components/tile/_tile.scss +117 -0
  159. package/src/shared-components/tile/tile.html +27 -0
  160. package/src/shared-components/value-props/_value-props.scss +98 -0
  161. package/src/shared-components/value-props/value-props.html +17 -0
  162. package/src/shared-components/zip-control/_zip-control.scss +42 -0
  163. package/src/shared-components/zip-control/zip-control.html +21 -0
  164. package/tasks/grab-shared-scripts.js +11 -1
@@ -0,0 +1,125 @@
1
+ $checkbox-bg-color: $color-white !default;
2
+ $checkbox-border: 1px solid $color-charcoal1 !default;
3
+ $checkbox-border-radius: 4px !default;
4
+ $checkbox-font-size: 16px !default;
5
+ $checkbox-font-weight: normal !default;
6
+ $checkbox-line-height: 15px !default;
7
+ $checkbox-text-color: $color-charcoal5 !default;
8
+ $checkbox-margin: 15px 0 !default;
9
+ $checkbox-padding: 15px 10px 10px 15px !default;
10
+ $checkbox-text-align: left !default;
11
+
12
+ $checkbox-label-padding-left: 35px !default;
13
+ $checkbox-label-width: auto !default;
14
+
15
+ $checkbox-input-bg-color: $color-white !default;
16
+ $checkbox-input-border: 1px solid $color-charcoal1 !default;
17
+ $checkbox-input-border-radius: 2px !default;
18
+ $checkbox-input-box-shadow: inset 0 1px 3px 0 rgba($color-black, .1) !default;
19
+ $checkbox-input-checked-bg-color: $color-blue5 !default;
20
+ $checkbox-input-checked-border: 1px solid $color-blue6 !default;
21
+ $checkbox-input-checked-color: $color-white !default;
22
+ $checkbox-input-checked-before-line-height: 17px !default;
23
+ $checkbox-input-font-size: 18px !default;
24
+ $checkbox-input-position-left: 25px !default;
25
+ $checkbox-input-position-top: -2px !default;
26
+ $checkbox-input-size: 20px !default;
27
+
28
+ $checkbox-border-margin: 15px 0 !default;
29
+ $checkbox-border-label-padding-left: 26px !default;
30
+ $checkbox-border-input-position-left: 16px !default;
31
+ $checkbox-border-input-position-top: $checkbox-input-position-top !default;
32
+ $checkbox-transition: color .15s ease !default;
33
+
34
+ $checkbox-img-max-width: 160px !default;
35
+ $checkbox-img-object-fit: scale-down !default;
36
+ $checkbox-img-object-position: center !default;
37
+
38
+ .checkbox {
39
+ background-color: transparent;
40
+ border: 0;
41
+ border-radius: $checkbox-border-radius;
42
+ color: $checkbox-text-color;
43
+ line-height: $checkbox-line-height;
44
+ margin: $checkbox-margin;
45
+ padding: 0;
46
+ text-align: $checkbox-text-align;
47
+
48
+ + .checkbox {
49
+ margin-top: 0;
50
+ }
51
+
52
+ label {
53
+ display: inline-block;
54
+ font-size: $checkbox-font-size;
55
+ font-weight: $checkbox-font-weight;
56
+ line-height: $checkbox-line-height;
57
+ padding-left: $checkbox-label-padding-left;
58
+ position: relative;
59
+ width: $checkbox-label-width;
60
+
61
+ input[type=checkbox] {
62
+ background: transparent;
63
+ border-color: $color-white;
64
+ border-radius: 0;
65
+ left: $checkbox-input-position-left;
66
+ margin-top: 0;
67
+ position: absolute;
68
+ top: $checkbox-input-position-top;
69
+
70
+ &::before {
71
+ @include icon-fill;
72
+ background: $checkbox-input-bg-color;
73
+ border: $checkbox-input-border;
74
+ border-radius: $checkbox-input-border-radius;
75
+ box-shadow: $checkbox-input-box-shadow;
76
+ color: $checkbox-input-bg-color;
77
+ content: '\e920';
78
+ display: block;
79
+ height: $checkbox-input-size;
80
+ text-align: center;
81
+ transition: $checkbox-transition;
82
+ width: $checkbox-input-size;
83
+ }
84
+
85
+ &:checked::before { // sass-lint:disable-line
86
+ background-color: $checkbox-input-checked-bg-color;
87
+ border: $checkbox-input-checked-border;
88
+ color: $checkbox-input-checked-color;
89
+ font-size: $checkbox-input-font-size;
90
+ line-height: $checkbox-input-checked-before-line-height;
91
+ }
92
+ }
93
+ }
94
+
95
+ &.checkbox--border {
96
+ background-color: $checkbox-bg-color;
97
+ border: $checkbox-border;
98
+ margin: $checkbox-margin;
99
+ padding: $checkbox-padding;
100
+
101
+ label {
102
+ padding-left: $checkbox-border-label-padding-left;
103
+
104
+ input[type=checkbox] {
105
+ left: $checkbox-border-input-position-left;
106
+ top: $checkbox-border-input-position-top;
107
+ }
108
+ }
109
+ }
110
+
111
+ &--img {
112
+ label {
113
+ input[type=checkbox] {
114
+ margin-top: 5px;
115
+ top: 0;
116
+
117
+ + img {
118
+ max-width: $checkbox-img-max-width;
119
+ object-fit: $checkbox-img-object-fit;
120
+ object-position: $checkbox-img-object-position;
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,10 @@
1
+ <div class="checkbox{{#if this.field.class}} {{this.field.class}}{{/if}} {{#if this.field.img}}checkbox--img{{/if}}">
2
+ <label>
3
+ <input type="checkbox" name="{{this.field.name}}" value="{{this.field.value}}" {{#if this.field.id}} id="{{this.field.id}}"{{/if}}{{#if this.field.checked}} checked="checked"{{/if}} {{#if this.field.saveField}}data-save{{/if}}{{#if this.extraAttributes}}{{#each this.extraAttributes}} {{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}} {{#if this.field.extraAttributes}}{{#each this.field.extraAttributes}} {{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}} />
4
+ {{#if this.field.img}}
5
+ <img src={{this.field.img.attributes.src}} alt={{this.field.img.attributes.alt}} class="{{#if this.field.img.attributes.class}}{{this.field.img.attributes.class}}{{/if}}" {{#if this.field.img.lazyLoad}}loading="lazy"{{/if}}>
6
+ {{else}}
7
+ {{{this.field.text}}}
8
+ {{/if}}
9
+ </label>
10
+ </div>
@@ -0,0 +1,93 @@
1
+ $expand-collapse-background-color: transparent !default;
2
+ $expand-collapse-border: 0 !default;
3
+ $expand-collapse-border-radius: 0 !default;
4
+ $expand-collapse-color: $color-charcoal4 !default;
5
+ $expand-collapse-color-hover: $expand-collapse-color !default;
6
+ $expand-collapse-font-size: 16px !default;
7
+ $expand-collapse-font-weight: 300 !default;
8
+ $expand-collapse-letter-spacing: 0 !default;
9
+ $expand-collapse-margin: 0 !default;
10
+ $expand-collapse-padding: 0 !default;
11
+ $expand-collapse-text-transform: none !default;
12
+ $expand-collapse-transition: all .15s ease !default;
13
+
14
+ $expand-collapse-icon-background-color: $color-white !default;
15
+ $expand-collapse-icon-border: 1px solid $color-charcoal1 !default;
16
+ $expand-collapse-icon-border-top: 0 !default;
17
+ $expand-collapse-icon-border-radius: 100px !default;
18
+ $expand-collapse-icon-color: $expand-collapse-color !default;
19
+ $expand-collapse-icon-display: block !default;
20
+ $expand-collapse-icon-font-size: $expand-collapse-font-size !default;
21
+ $expand-collapse-icon-line-height: 1 !default;
22
+ $expand-collapse-icon-margin: -2px auto 0 !default;
23
+ $expand-collapse-icon-padding: 5px 0 9px !default;
24
+ $expand-collapse-icon-position: relative !default;
25
+ $expand-collapse-icon-width: 60px !default;
26
+ $expand-collapse-icon-z-index: 2 !default;
27
+
28
+ $expand-collapse-label-display: inline-block !default;
29
+ $expand-collapse-label-margin: 0 !default;
30
+
31
+ $expand-collapse-target-max-height: 2000px !default;
32
+ $expand-collapse-target-transition: .5s !default;
33
+
34
+ .expand-collapse {
35
+ &__toggle {
36
+ background-color: $expand-collapse-background-color;
37
+ border: $expand-collapse-border;
38
+ border-radius: $expand-collapse-border-radius;
39
+ color: $expand-collapse-color;
40
+ cursor: pointer;
41
+ font-size: $expand-collapse-font-size;
42
+ font-weight: $expand-collapse-font-weight;
43
+ letter-spacing: $expand-collapse-letter-spacing;
44
+ margin: $expand-collapse-margin;
45
+ padding: $expand-collapse-padding;
46
+ text-transform: $expand-collapse-text-transform;
47
+ transition: $expand-collapse-transition;
48
+ }
49
+
50
+ &__icon {
51
+ background-color: $expand-collapse-icon-background-color;
52
+ border: $expand-collapse-icon-border;
53
+ border-top: $expand-collapse-icon-border-top;
54
+ border-bottom-left-radius: $expand-collapse-icon-border-radius;
55
+ border-bottom-right-radius: $expand-collapse-icon-border-radius;
56
+ color: $expand-collapse-icon-color;
57
+ display: $expand-collapse-icon-display;
58
+ font-size: $expand-collapse-icon-font-size;
59
+ line-height: $expand-collapse-icon-line-height;
60
+ margin: $expand-collapse-icon-margin;
61
+ padding: $expand-collapse-icon-padding;
62
+ position: $expand-collapse-icon-position;
63
+ width: $expand-collapse-icon-width;
64
+ z-index: $expand-collapse-icon-z-index;
65
+ }
66
+
67
+ &__label {
68
+ display: $expand-collapse-label-display;
69
+ margin: $expand-collapse-label-margin;
70
+ }
71
+
72
+ &__target {
73
+ max-height: $expand-collapse-target-max-height;
74
+ overflow: hidden;
75
+ transition: $expand-collapse-target-transition;
76
+
77
+ &.collapsed {
78
+ max-height: 0;
79
+ opacity: 0;
80
+ visibility: collapse;
81
+ }
82
+ }
83
+ }
84
+
85
+ @include breakpoint-md {
86
+ .expand-collapse {
87
+ &__toggle {
88
+ &:hover {
89
+ color: $expand-collapse-color-hover;
90
+ }
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,8 @@
1
+ <button {{#if this.expandCollapse.id}}id="{{this.expandCollapse.id}}"{{/if}} class="expand-collapse__toggle{{#if this.expandCollapse.class}} {{this.expandCollapse.class}}{{/if}}{{#xif 'this.expandCollapse.scrollToTop === true'}} scroll-to-top{{/xif}}" aria-controls="{{this.expandCollapse.targetId}}" aria-expanded="{{#xif 'this.expandCollapse.collapsedByDefault === true'}}false{{else}}true{{/xif}}">
2
+ {{#if this.expandCollapse.icon}}
3
+ <span class="expand-collapse__icon">
4
+ <i class="{{#xif 'this.expandCollapse.collapsedByDefault === true'}}{{this.expandCollapse.icon.collapsed}}{{else}}{{this.expandCollapse.icon.expanded}}{{/xif}}" data-expanded-icon="{{this.expandCollapse.icon.expanded}}" data-collapsed-icon="{{this.expandCollapse.icon.collapsed}}"></i>
5
+ </span>
6
+ {{/if}}
7
+ <span class="expand-collapse__label" data-expanded-label="{{this.expandCollapse.label.expanded}}" data-collapsed-label="{{this.expandCollapse.label.collapsed}}">{{#xif 'this.expandCollapse.collapsedByDefault === true'}}{{this.expandCollapse.label.collapsed}}{{else}}{{this.expandCollapse.label.expanded}}{{/xif}}</span>
8
+ </button>
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var expandCollapseToggle = document.querySelectorAll('.expand-collapse__toggle');
4
+ expandCollapseToggle.forEach(function (toggle) {
5
+ var toggleId = toggle.id,
6
+ ariaExpanded = toggle.getAttribute('aria-expanded'),
7
+ ariaControls = toggle.getAttribute('aria-controls'),
8
+ expandCollapseTarget = document.getElementById(ariaControls),
9
+ scrollToTop = toggle.classList.contains('scroll-to-top');
10
+ expandCollapseTarget.classList.add('expand-collapse__target');
11
+ if (ariaExpanded === 'false' && !expandCollapseTarget.classList.contains('collapsed')) {
12
+ expandCollapseTarget.classList.add('collapsed');
13
+ }
14
+ document.getElementById(toggleId).addEventListener('click', function () {
15
+ var shouldExpand = this.getAttribute('aria-expanded') !== 'true',
16
+ expandCollapseLabel = this.querySelector('.expand-collapse__label'),
17
+ expandCollapseIcon = this.querySelector('.expand-collapse__icon i');
18
+ this.setAttribute('aria-expanded', shouldExpand);
19
+ if (expandCollapseLabel) {
20
+ expandCollapseLabel.innerHTML = expandCollapseLabel.dataset[shouldExpand ? 'expandedLabel' : 'collapsedLabel'];
21
+ }
22
+ if (expandCollapseIcon) {
23
+ expandCollapseIcon.className = expandCollapseIcon.dataset[shouldExpand ? 'expandedIcon' : 'collapsedIcon'];
24
+ }
25
+ if (ariaExpanded === 'false' || expandCollapseTarget.classList.contains('collapsed')) {
26
+ expandCollapseTarget.classList.toggle('collapsed');
27
+ } else {
28
+ expandCollapseTarget.classList.add('collapsed');
29
+ }
30
+ if (scrollToTop) {
31
+ var scrollPosition = shouldExpand ? 'start' : 'center';
32
+ setTimeout(function () {
33
+ document.getElementById(toggleId).scrollIntoView({
34
+ behavior: 'smooth',
35
+ block: scrollPosition
36
+ });
37
+ }, 200);
38
+ }
39
+ });
40
+ });
@@ -0,0 +1,2 @@
1
+ "use strict";var expandCollapseToggle=document.querySelectorAll(".expand-collapse__toggle");expandCollapseToggle.forEach(function(e){var t=e.id,a=e.getAttribute("aria-expanded"),l=e.getAttribute("aria-controls"),s=document.getElementById(l),o=e.classList.contains("scroll-to-top");s.classList.add("expand-collapse__target"),"false"!==a||s.classList.contains("collapsed")||s.classList.add("collapsed"),document.getElementById(t).addEventListener("click",function(){var e="true"!==this.getAttribute("aria-expanded"),l=this.querySelector(".expand-collapse__label"),c=this.querySelector(".expand-collapse__icon i");if(this.setAttribute("aria-expanded",e),l&&(l.innerHTML=l.dataset[e?"expandedLabel":"collapsedLabel"]),c&&(c.className=c.dataset[e?"expandedIcon":"collapsedIcon"]),"false"===a||s.classList.contains("collapsed")?s.classList.toggle("collapsed"):s.classList.add("collapsed"),o){var d=e?"start":"center";setTimeout(function(){document.getElementById(t).scrollIntoView({behavior:"smooth",block:d})},200)}})});
2
+ //# sourceMappingURL=expand-collapse.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["shared-components/expand-collapse/expand-collapse.js"],"names":["expandCollapseToggle","document","querySelectorAll","forEach","toggle","toggleId","id","ariaExpanded","getAttribute","ariaControls","expandCollapseTarget","getElementById","scrollToTop","classList","contains","add","addEventListener","shouldExpand","this","expandCollapseLabel","querySelector","expandCollapseIcon","setAttribute","innerHTML","dataset","className","scrollPosition","setTimeout","scrollIntoView","behavior","block"],"mappings":"YAAA,IAAMA,sBAAuBC,SAASC,iBAAiB,2BACvDF,sBAAqBG,QAAQ,SAAAC,GAC5B,GAAMC,GAAWD,EAAOE,GACvBC,EAAeH,EAAOI,aAAa,iBACnCC,EAAeL,EAAOI,aAAa,iBACnCE,EAAuBT,SAASU,eAAeF,GAC/CG,EAAcR,EAAOS,UAAUC,SAAS,gBAEzCJ,GAAqBG,UAAUE,IAAI,2BACd,UAAjBR,GAA6BG,EAAqBG,UAAUC,SAAS,cACxEJ,EAAqBG,UAAUE,IAAI,aAGpCd,SAASU,eAAeN,GAAUW,iBAAiB,QAAS,WAC3D,GAAMC,GAAsD,SAAvCC,KAAKV,aAAa,iBACtCW,EAAsBD,KAAKE,cAAc,2BACzCC,EAAqBH,KAAKE,cAAc,2BAiBzC,IAfAF,KAAKI,aAAa,gBAAiBL,GAC/BE,IACHA,EAAoBI,UAAYJ,EAAoBK,QAAQP,EAAe,gBAAkB,mBAG1FI,IACHA,EAAmBI,UAAYJ,EAAmBG,QAAQP,EAAe,eAAiB,kBAGtE,UAAjBV,GAA4BG,EAAqBG,UAAUC,SAAS,aACvEJ,EAAqBG,UAAUT,OAAO,aAEtCM,EAAqBG,UAAUE,IAAI,aAGhCH,EAAa,CAChB,GAAMc,GAAiBT,EAAe,QAAU,QAChDU,YAAW,WACV1B,SAASU,eAAeN,GAAUuB,gBACjCC,SAAU,SACVC,MAAOJ,KAEN","file":"expand-collapse.min.js","sourcesContent":["const expandCollapseToggle = document.querySelectorAll('.expand-collapse__toggle');\nexpandCollapseToggle.forEach(toggle => {\n\tconst toggleId = toggle.id,\n\t\tariaExpanded = toggle.getAttribute('aria-expanded'),\n\t\tariaControls = toggle.getAttribute('aria-controls'),\n\t\texpandCollapseTarget = document.getElementById(ariaControls),\n\t\tscrollToTop = toggle.classList.contains('scroll-to-top');\n\n\texpandCollapseTarget.classList.add('expand-collapse__target');\n\tif (ariaExpanded === 'false' && !expandCollapseTarget.classList.contains('collapsed')) {\n\t\texpandCollapseTarget.classList.add('collapsed');\n\t}\n\n\tdocument.getElementById(toggleId).addEventListener('click', function() {\n\t\tconst shouldExpand = this.getAttribute('aria-expanded') !== 'true',\n\t\t\texpandCollapseLabel = this.querySelector('.expand-collapse__label'),\n\t\t\texpandCollapseIcon = this.querySelector('.expand-collapse__icon i');\n\n\t\tthis.setAttribute('aria-expanded', shouldExpand);\n\t\tif (expandCollapseLabel) {\n\t\t\texpandCollapseLabel.innerHTML = expandCollapseLabel.dataset[shouldExpand ? 'expandedLabel' : 'collapsedLabel'];\n\t\t}\n\n\t\tif (expandCollapseIcon) {\n\t\t\texpandCollapseIcon.className = expandCollapseIcon.dataset[shouldExpand ? 'expandedIcon' : 'collapsedIcon'];\n\t\t}\n\n\t\tif (ariaExpanded === 'false' || expandCollapseTarget.classList.contains('collapsed')) {\n\t\t\texpandCollapseTarget.classList.toggle('collapsed');\n\t\t} else {\n\t\t\texpandCollapseTarget.classList.add('collapsed');\n\t\t}\n\n\t\tif (scrollToTop) {\n\t\t\tconst scrollPosition = shouldExpand ? 'start' : 'center';\n\t\t\tsetTimeout(function() {\n\t\t\t\tdocument.getElementById(toggleId).scrollIntoView({\n\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\tblock: scrollPosition\n\t\t\t\t});\n\t\t\t}, 200);\n\t\t}\n\t});\n});\n"]}
@@ -0,0 +1,191 @@
1
+ $featured-block-padding-mobile: 50px 0 !default;
2
+ $featured-block-padding-desktop: 40px 0 !default;
3
+ $featured-block-padding-tablet: $featured-block-padding-desktop !default;
4
+ $featured-block-text-align-mobile: center !default;
5
+ $featured-block-text-align-desktop: left !default;
6
+
7
+ $featured-block-container-align-items: center !default;
8
+ $featured-block-container-display: flex !default;
9
+
10
+ $featured-block-title-color: $color-charcoal5 !default;
11
+ $featured-block-title-font-size: 26px !default;
12
+ $featured-block-title-font-size-mobile: 20px !default;
13
+ $featured-block-title-font-weight: 700 !default;
14
+ $featured-block-title-line-height: 1.3 !default;
15
+ $featured-block-title-margin: 0 0 10px !default;
16
+ $featured-block-title-text-transform: none !default;
17
+
18
+ $featured-block-subtitle-color: $color-charcoal5 !default;
19
+ $featured-block-subtitle-font-size: 16px !default;
20
+ $featured-block-subtitle-font-size-mobile: 15px !default;
21
+ $featured-block-subtitle-font-weight: 300 !default;
22
+ $featured-block-subtitle-line-height: 1.5 !default;
23
+ $featured-block-subtitle-margin: 0 !default;
24
+ $featured-block-subtitle-text-transform: none !default;
25
+
26
+ $featured-block-description-color: $color-charcoal5 !default;
27
+ $featured-block-description-font-size: $featured-block-subtitle-font-size !default;
28
+ $featured-block-description-font-size-mobile: $featured-block-subtitle-font-size-mobile !default;
29
+ $featured-block-description-font-weight: $featured-block-subtitle-font-weight !default;
30
+ $featured-block-description-line-height: $featured-block-subtitle-line-height !default;
31
+ $featured-block-description-margin: $featured-block-subtitle-margin !default;
32
+ $featured-block-description-text-transform: none !default;
33
+
34
+ $featured-block-partner-margin: 18px 0 !default;
35
+ $featured-block-partner-img-margin: 0 10px !default;
36
+ $featured-block-partner-img-height: auto !default;
37
+ $featured-block-partner-img-width: 100px !default;
38
+
39
+ $featured-block-img-width: 100% !default;
40
+
41
+ $featured-block-btn-background: #F6931D !default;
42
+ $featured-block-btn-border: 0 !default;
43
+ $featured-block-btn-border-radius: 100px !default;
44
+ $featured-block-btn-color: $color-white !default;
45
+ $featured-block-btn-display: block !default;
46
+ $featured-block-btn-font-family: $font-primary-regular !default;
47
+ $featured-block-btn-font-size: 15px !default;
48
+ $featured-block-btn-font-weight: 700 !default;
49
+ $featured-block-btn-height: 48px !default;
50
+ $featured-block-btn-line-height: 1.267 !default;
51
+ $featured-block-btn-margin: 28px 0 0 !default;
52
+ $featured-block-btn-max-width: 250px !default;
53
+ $featured-block-btn-padding: 14px 30px 15px !default;
54
+ $featured-block-btn-text-align: center !default;
55
+ $featured-block-btn-text-transform: uppercase !default;
56
+ $featured-block-btn-transition: all .15s ease !default;
57
+ $featured-block-btn-width: 100% !default;
58
+
59
+ $featured-block-btn-hover-background: #D77909 !default;
60
+ $featured-block-btn-hover-border: 0 !default;
61
+ $featured-block-btn-hover-color: $color-white !default;
62
+
63
+ $featured-block-btn-with-icon-display: inline-block !default;
64
+ $featured-block-btn-with-icon-padding: 14px 50px 15px 30px !default;
65
+ $featured-block-btn-with-icon-width: auto !default;
66
+ $featured-block-btn-icon-font-size: 19px !default;
67
+ $featured-block-btn-icon-position: absolute !default;
68
+ $featured-block-btn-icon-right: 15px !default;
69
+ $featured-block-btn-icon-top: 14px !default;
70
+
71
+ .featured-block {
72
+ padding: $featured-block-padding-mobile;
73
+ text-align: $featured-block-text-align-mobile;
74
+
75
+ &__title {
76
+ color: $featured-block-title-color;
77
+ font-size: $featured-block-title-font-size-mobile;
78
+ font-weight: $featured-block-title-font-weight;
79
+ line-height: $featured-block-title-line-height;
80
+ margin: $featured-block-title-margin;
81
+ text-transform: $featured-block-title-text-transform;
82
+ }
83
+
84
+ &__subtitle {
85
+ color: $featured-block-subtitle-color;
86
+ font-size: $featured-block-subtitle-font-size-mobile;
87
+ font-weight: $featured-block-subtitle-font-weight;
88
+ line-height: $featured-block-subtitle-line-height;
89
+ margin: $featured-block-subtitle-margin;
90
+ text-transform: $featured-block-subtitle-text-transform;
91
+ }
92
+
93
+ &__description {
94
+ color: $featured-block-description-color;
95
+ font-size: $featured-block-description-font-size-mobile;
96
+ font-weight: $featured-block-description-font-weight;
97
+ line-height: $featured-block-description-line-height;
98
+ margin: $featured-block-description-margin;
99
+ text-transform: $featured-block-description-text-transform;
100
+ }
101
+
102
+ &__partners {
103
+ margin: $featured-block-partner-margin;
104
+
105
+ img {
106
+ display: inline-block;
107
+ height: $featured-block-partner-img-height;
108
+ margin: $featured-block-partner-img-margin;
109
+ vertical-align: middle;
110
+ width: $featured-block-partner-img-width;
111
+ }
112
+ }
113
+
114
+ &__image {
115
+ img {
116
+ height: auto;
117
+ width: $featured-block-img-width;
118
+ }
119
+ }
120
+
121
+ &__btn {
122
+ background: $featured-block-btn-background;
123
+ border: $featured-block-btn-border;
124
+ border-radius: $featured-block-btn-border-radius;
125
+ color: $featured-block-btn-color;
126
+ display: $featured-block-btn-display;
127
+ font-family: $featured-block-btn-font-family;
128
+ font-size: $featured-block-btn-font-size;
129
+ font-weight: $featured-block-btn-font-weight;
130
+ height: $featured-block-btn-height;
131
+ line-height: $featured-block-btn-line-height;
132
+ margin: $featured-block-btn-margin;
133
+ max-width: $featured-block-btn-max-width;
134
+ padding: $featured-block-btn-padding;
135
+ text-align: $featured-block-btn-text-align;
136
+ text-transform: $featured-block-btn-text-transform;
137
+ transition: $featured-block-btn-transition;
138
+ width: $featured-block-btn-width;
139
+
140
+ &:hover{
141
+ background: $featured-block-btn-hover-background;
142
+ border: $featured-block-btn-hover-border;
143
+ color: $featured-block-btn-hover-color;
144
+ }
145
+
146
+
147
+ &--with-icon {
148
+ display: $featured-block-btn-with-icon-display;
149
+ padding: $featured-block-btn-with-icon-padding;
150
+ width: $featured-block-btn-with-icon-width;
151
+
152
+ i {
153
+ font-size: $featured-block-btn-icon-font-size;
154
+ position: $featured-block-btn-icon-position;
155
+ right: $featured-block-btn-icon-right;
156
+ top: $featured-block-btn-icon-top;
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ @include breakpoint-sm {
163
+ .featured-block {
164
+ padding: $featured-block-padding-tablet;
165
+ text-align: $featured-block-text-align-desktop;
166
+
167
+ &__content {
168
+ align-items: $featured-block-container-align-items;
169
+ display: $featured-block-container-display;
170
+
171
+ }
172
+
173
+ &__title {
174
+ font-size: $featured-block-title-font-size;
175
+ }
176
+
177
+ &__subtitle {
178
+ font-size: $featured-block-subtitle-font-size;
179
+ }
180
+
181
+ &__description {
182
+ font-size: $featured-block-description-font-size;
183
+ }
184
+ }
185
+ }
186
+
187
+ @include breakpoint-md {
188
+ .featured-block {
189
+ padding: $featured-block-padding-desktop;
190
+ }
191
+ }
@@ -0,0 +1,80 @@
1
+ <div class="featured-block{{#if this.block.class}} {{this.block.class}}{{/if}}"{{#if this.block.id}} id="{{this.block.id}}"{{/if}}>
2
+ {{#xif "this.block.includeContainerWrapper === true"}}<div class="container">{{/xif}}
3
+ {{#xif "this.block.columns.length > 1"}}<div class="featured-block__content row">{{/xif}}
4
+ {{#each this.block.columns}}
5
+ <div {{#if this.class}}class="{{this.class}}"{{/if}}{{#if this.id}} id="{{this.id}}"{{/if}}{{#if this.extraAttributes}}{{#each this.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>
6
+ {{#if this.title}}
7
+ <h2 class="featured-block__title{{#if this.title.class}} {{this.title.class}}{{/if}}"{{#if this.title.extraAttributes}}{{#each this.title.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>{{{this.title.text}}}</h2>
8
+ {{/if}}
9
+ {{#if this.subtitle}}
10
+ <p class="featured-block__subtitle{{#if this.subtitle.class}} {{this.subtitle.class}}{{/if}}"{{#if this.subtitle.extraAttributes}}{{#each this.subtitle.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>{{{this.subtitle.text}}}</p>
11
+ {{/if}}
12
+ {{#if this.description}}
13
+ {{#isArray this.description}}
14
+ {{#each this}}
15
+ {{#unless this.placeUnderLogos}}
16
+ <p class="featured-block__description{{#if this.class}} {{this.class}}{{/if}}"{{#if this.extraAttributes}}{{#each this.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>{{{this.text}}}</p>
17
+ {{/unless}}
18
+ {{/each}}
19
+ {{else}}
20
+ {{#unless this.placeUnderLogos}}
21
+ <p class="featured-block__description{{#if this.class}} {{this.class}}{{/if}}"{{#if this.extraAttributes}}{{#each this.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>{{{this.text}}}</p>
22
+ {{/unless}}
23
+ {{/isArray}}
24
+ {{/if}}
25
+ {{#if this.image}}
26
+ <div class="featured-block__image">
27
+ {{#xif "this.image.tag === 'img'"}}
28
+ <img src="{{#if this.image.localSrc}}{{this.image.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.image.src}}{{/if}}" alt="{{this.image.altText}}"{{#if this.image.class}} class="{{this.image.class}}"{{/if}}{{#xif "this.image.lazyload === true"}} loading="lazy"{{/xif}}{{#if this.image.width}} width="{{this.image.width}}"{{/if}}{{#if this.image.height}} height="{{this.image.height}}"{{/if}}>
29
+ {{/xif}}
30
+ {{#xif "this.image.tag === 'picture'"}}
31
+ <picture>
32
+ <source srcset="{{#if this.image.localSrcset}}{{this.image.localSrcset}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.image.srcset}}{{/if}}" {{{this.image.pictureSourceAttributes}}}>
33
+ <img src="{{#if this.image.localSrc}}{{this.image.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.image.src}}{{/if}}" alt="{{this.image.altText}}"{{#if this.image.class}} class="{{this.image.class}}"{{/if}}{{#xif "this.image.lazyload === true"}} loading="lazy"{{/xif}}{{#if this.image.width}} width="{{this.image.width}}"{{/if}}{{#if this.image.height}} height="{{this.image.height}}"{{/if}}>
34
+ </picture>
35
+ {{/xif}}
36
+ </div>
37
+ {{/if}}
38
+ {{#if this.customContentTemplate}}
39
+ {{ fileInclude this.customContentTemplate
40
+ content = this
41
+ }}
42
+ {{/if}}
43
+ {{#if this.featuredPartnerLogos}}
44
+ <div class="featured-block__partners">
45
+ {{#each this.featuredPartnerLogos}}
46
+ {{#xif "this.tag === 'img'"}}
47
+ <img src="{{#if this.localSrc}}{{this.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.src}}{{/if}}" alt="{{this.altText}}"{{#if this.class}} class="{{this.class}}"{{/if}}{{#xif "this.lazyload === true"}} loading="lazy"{{/xif}}{{#if this.width}} width="{{this.width}}"{{/if}}{{#if this.height}} height="{{this.height}}"{{/if}}>
48
+ {{/xif}}
49
+ {{#xif "this.tag === 'picture'"}}
50
+ <picture>
51
+ <source srcset="{{#if this.localSrcset}}{{this.localSrcset}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.srcset}}{{/if}}" {{{this.pictureSourceAttributes}}}>
52
+ <img src="{{#if this.localSrc}}{{this.localSrc}}{{else}}https://{{x 'process.env.NODE_ENV'}}/quote/resources/assets/{{this.src}}{{/if}}" alt="{{this.altText}}"{{#if this.class}} class="{{this.class}}"{{/if}}{{#xif "this.lazyload === true"}} loading="lazy"{{/xif}}{{#if this.width}} width="{{this.width}}"{{/if}}{{#if this.height}} height="{{this.height}}"{{/if}}>
53
+ </picture>
54
+ {{/xif}}
55
+ {{/each}}
56
+ </div>
57
+ {{/if}}
58
+ {{#if this.description}}
59
+ {{#isArray this.description}}
60
+ {{#each this}}
61
+ {{#if this.placeUnderLogos}}
62
+ <p class="featured-block__description{{#if this.class}} {{this.class}}{{/if}}"{{#if this.extraAttributes}}{{#each this.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>{{{this.text}}}</p>
63
+ {{/if}}
64
+ {{/each}}
65
+ {{else}}
66
+ {{#if this.placeUnderLogos}}
67
+ <p class="featured-block__description{{#if this.class}} {{this.class}}{{/if}}"{{#if this.extraAttributes}}{{#each this.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>{{{this.text}}}</p>
68
+ {{/if}}
69
+ {{/isArray}}
70
+ {{/if}}
71
+ {{#if this.button}}
72
+ <a href="{{this.button.href}}" class="featured-block__btn btn {{#if this.button.class}} {{this.button.class}}{{/if}}{{#if this.button.icon}} featured-block__btn--with-icon{{/if}}"{{#if this.button.extraAttributes}}{{#each this.button.extraAttributes}}{{{this.attributeName}}}="{{{this.attributeValue}}}"{{/each}}{{/if}}>
73
+ {{this.button.text}}{{#if this.button.icon}} <i class="{{this.button.icon}}"></i>{{/if}}
74
+ </a>
75
+ {{/if}}
76
+ </div>
77
+ {{/each}}
78
+ {{#xif "this.block.columns.length > 1"}}</div>{{/xif}}
79
+ {{#xif "this.block.includeContainerWrapper === true"}}</div>{{/xif}}
80
+ </div>