mod-build 4.0.9 → 4.0.10

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 (106) hide show
  1. package/package.json +1 -1
  2. package/public/resources/scripts/abandonment/abandonment-1df90ee155f6c0893d90.min.js +2 -0
  3. package/public/resources/scripts/abandonment/abandonment.min.js +2 -0
  4. package/public/resources/scripts/callrail/callrail-5c7c537f04af468600cf.min.js +2 -0
  5. package/public/resources/scripts/callrail/callrail.min.js +2 -0
  6. package/public/resources/scripts/footer/footer-component-7b5e263f64568573ecc0.min.js +2 -0
  7. package/public/resources/scripts/footer/footer-component.min.js +2 -0
  8. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js +2 -0
  9. package/public/resources/scripts/helpers/initNumericOnlyFields.min.js.map +1 -0
  10. package/public/resources/scripts/helpers/isZipCodeValid.min.js +2 -0
  11. package/public/resources/scripts/helpers/isZipCodeValid.min.js.map +1 -0
  12. package/public/resources/scripts/jornaya.hbs +35 -0
  13. package/public/resources/scripts/jornaya.html +35 -0
  14. package/public/resources/scripts/mod-alytics/modalytics-0ac7d7a5a72ea67a0f47.min.js +2 -0
  15. package/public/resources/scripts/mod-alytics/modalytics.min.js +2 -0
  16. package/public/resources/scripts/mod-form/form/homeowner-62292fdc874b2d2f5c82.min.js +2 -0
  17. package/public/resources/scripts/mod-form/form/homeowner.min.js +2 -0
  18. package/public/resources/scripts/mod-utils/modutils-15069d7b728a555fb3f7.min.js +2 -0
  19. package/public/resources/scripts/mod-utils/modutils.min.js +2 -0
  20. package/public/resources/scripts/trusted-form.hbs +38 -0
  21. package/public/resources/scripts/trusted-form.html +38 -0
  22. package/public/resources/styles/components/abandonment/abandonment-a8571a9e32ed6ef9acb4.min.css +1 -0
  23. package/public/resources/styles/components/abandonment/abandonment.min.css +1 -0
  24. package/public/resources/styles/components/footer/mod-footer-1fb2cec3278f29df57d0.min.css +1 -0
  25. package/public/resources/styles/components/footer/mod-footer.min.css +1 -0
  26. package/public/resources/styles/components/footer/qs-footer-9a3b0ab00428b03e6e9e.min.css +1 -0
  27. package/public/resources/styles/components/footer/qs-footer.min.css +1 -0
  28. package/src/accessible-components/button/_button.scss +319 -0
  29. package/src/accessible-components/button/back-button.html +8 -0
  30. package/src/accessible-components/button/button.html +17 -0
  31. package/src/accessible-components/carousel/_carousel.scss +112 -0
  32. package/src/accessible-components/carousel/carousel.html +25 -0
  33. package/src/accessible-components/carousel/carousel.js +3426 -0
  34. package/src/accessible-components/carousel/carousel.js.map +1 -0
  35. package/src/accessible-components/carousel/carousel.min.js +6 -0
  36. package/src/accessible-components/carousel/carousel.min.js.map +1 -0
  37. package/src/accessible-components/checkbox/_checkbox.scss +153 -0
  38. package/src/accessible-components/checkbox/checkbox-group.html +18 -0
  39. package/src/accessible-components/checkbox/checkbox.html +8 -0
  40. package/src/accessible-components/expand-collapse/_expand-collapse.scss +129 -0
  41. package/src/accessible-components/expand-collapse/expand-collapse.html +14 -0
  42. package/src/accessible-components/expand-collapse/expand-collapse.js +52 -0
  43. package/src/accessible-components/expand-collapse/expand-collapse.min.js +2 -0
  44. package/src/accessible-components/expand-collapse/expand-collapse.min.js.map +1 -0
  45. package/src/accessible-components/featured-block/_featured-block.scss +221 -0
  46. package/src/accessible-components/featured-block/featured-block.html +54 -0
  47. package/src/accessible-components/foot-assets/foot-assets.html +112 -0
  48. package/src/accessible-components/footer/footer.html +2 -0
  49. package/src/accessible-components/gtm-body/gtm-body.html +4 -0
  50. package/src/accessible-components/head/head.html +187 -0
  51. package/src/accessible-components/header/_header.scss +289 -0
  52. package/src/accessible-components/header/header.html +66 -0
  53. package/src/accessible-components/hero/_hero.scss +405 -0
  54. package/src/accessible-components/hero/hero.html +53 -0
  55. package/src/accessible-components/how-it-works/_how-it-works.scss +217 -0
  56. package/src/accessible-components/how-it-works/how-it-works-carousel.html +12 -0
  57. package/src/accessible-components/how-it-works/how-it-works-static.html +12 -0
  58. package/src/accessible-components/how-it-works/how-it-works.html +14 -0
  59. package/src/accessible-components/information/_information.scss +96 -0
  60. package/src/accessible-components/information/information.html +32 -0
  61. package/src/accessible-components/input/_input.scss +204 -0
  62. package/src/accessible-components/input/input.html +22 -0
  63. package/src/accessible-components/input/textarea.html +9 -0
  64. package/src/accessible-components/partners/_partners.scss +234 -0
  65. package/src/accessible-components/partners/partners.html +56 -0
  66. package/src/accessible-components/picture/picture.html +19 -0
  67. package/src/accessible-components/preloader/_preloader.scss +61 -0
  68. package/src/accessible-components/preloader/preloader.html +23 -0
  69. package/src/accessible-components/progress-bar/_progress-bar.scss +140 -0
  70. package/src/accessible-components/progress-bar/progress-bar.html +21 -0
  71. package/src/accessible-components/progress-bar/progress-bar.js +37 -0
  72. package/src/accessible-components/progress-bar/progress-bar.min.js +2 -0
  73. package/src/accessible-components/progress-bar/progress-bar.min.js.map +1 -0
  74. package/src/accessible-components/radio-button/_radio-button.scss +586 -0
  75. package/src/accessible-components/radio-button/radio-button.html +33 -0
  76. package/src/accessible-components/reviews/_reviews.scss +180 -0
  77. package/src/accessible-components/reviews/reviews-carousel.html +12 -0
  78. package/src/accessible-components/reviews/reviews-static.html +12 -0
  79. package/src/accessible-components/reviews/reviews.html +37 -0
  80. package/src/accessible-components/select/_select.scss +87 -0
  81. package/src/accessible-components/select/select.html +10 -0
  82. package/src/accessible-components/steps/_steps.scss +640 -0
  83. package/src/accessible-components/steps/defaultFormFieldConfig.json +109 -0
  84. package/src/accessible-components/steps/step-fields.html +38 -0
  85. package/src/accessible-components/steps/steps.html +168 -0
  86. package/src/accessible-components/tcpa/_tcpa.scss +49 -0
  87. package/src/accessible-components/tcpa/tcpa.html +9 -0
  88. package/src/accessible-components/tile/_tile.scss +117 -0
  89. package/src/accessible-components/tile/tile.html +14 -0
  90. package/src/accessible-components/value-props/_value-props.scss +102 -0
  91. package/src/accessible-components/value-props/value-props.html +17 -0
  92. package/src/accessible-components/zip-control/_zip-control.scss +79 -0
  93. package/src/accessible-components/zip-control/zip-control.html +10 -0
  94. package/src/resources/data/tcpa.json +4 -0
  95. package/src/resources/templates/modals/about/index.hbs +9 -0
  96. package/src/resources/templates/modals/about/index.html +9 -0
  97. package/src/resources/templates/modals/contact-us/index.hbs +348 -0
  98. package/src/resources/templates/modals/contact-us/index.html +348 -0
  99. package/src/resources/templates/modals/faq/index.hbs +9 -0
  100. package/src/resources/templates/modals/faq/index.html +9 -0
  101. package/src/resources/templates/modals/privacy/index.hbs +236 -0
  102. package/src/resources/templates/modals/privacy/index.html +236 -0
  103. package/src/resources/templates/modals/terms/index.hbs +166 -0
  104. package/src/resources/templates/modals/terms/index.html +166 -0
  105. package/src/scripts/default/update-link-paths.js +11 -4
  106. package/src/scripts/globals.js +1 -1
@@ -0,0 +1,153 @@
1
+ $checkbox-background-color: transparent !default;
2
+ $checkbox-border: 0 !default;
3
+ $checkbox-border-radius: 4px !default;
4
+ $checkbox-color: $color-charcoal8 !default;
5
+ $checkbox-font-size: 1rem !default;
6
+ $checkbox-font-size-desktop: $checkbox-font-size !default;
7
+ $checkbox-font-weight: normal !default;
8
+ $checkbox-line-height: 1 !default;
9
+ $checkbox-margin: 15px 0 !default;
10
+ $checkbox-max-width: 100% !default;
11
+ $checkbox-padding: 0 !default;
12
+ $checkbox-text-align: left !default;
13
+ $checkbox-transition: color .15s ease-in-out !default;
14
+
15
+ $checkbox-label-margin: 0 !default;
16
+ $checkbox-label-padding-left: 30px !default;
17
+ $checkbox-label-width: auto !default;
18
+
19
+ $checkbox-input-background-color: $color-white !default;
20
+ $checkbox-input-border: 1px solid $color-charcoal4 !default;
21
+ $checkbox-input-border-radius: 2px !default;
22
+ $checkbox-input-box-shadow: 0 !default;
23
+ $checkbox-input-checked-background-color: $color-charcoal6 !default;
24
+ $checkbox-input-checked-border: 1px solid $checkbox-input-checked-background-color !default;
25
+ $checkbox-input-checked-color: $color-white !default;
26
+ $checkbox-input-cursor: pointer !default;
27
+ $checkbox-input-font-size: 1.125rem !default;
28
+ $checkbox-input-margin: 0 !default;
29
+ $checkbox-input-position-left: 0 !default;
30
+ $checkbox-input-position-top: -2px !default;
31
+ $checkbox-input-size: 1.25rem !default;
32
+
33
+ $checkbox-disclaimer-color: $checkbox-color !default;
34
+ $checkbox-disclaimer-display: block !default;
35
+ $checkbox-disclaimer-font-size: $checkbox-font-size !default;
36
+ $checkbox-disclaimer-font-size-desktop: $checkbox-font-size-desktop !default;
37
+ $checkbox-disclaimer-font-style: normal !default;
38
+ $checkbox-disclaimer-font-weight: $checkbox-font-weight !default;
39
+ $checkbox-disclaimer-line-height: 1.35 !default;
40
+ $checkbox-disclaimer-margin: 15px 0 0 !default;
41
+
42
+ // Focus
43
+ $checkbox-focus-outline: 1px solid rgba($color-charcoal4, .5) !default;
44
+ $checkbox-focus-outline-offset: 5px !default;
45
+
46
+ // Checkbox Group
47
+ $checkbox-group-legend-text-align: center !default;
48
+ $checkbox-group-label-display: block !default;
49
+ $checkbox-group-font-size: $checkbox-font-size !default;
50
+ $checkbox-group-font-size-desktop: $checkbox-group-font-size !default;
51
+ $checkbox-group-max-width: 100% !default;
52
+
53
+ .checkbox {
54
+ background-color: $checkbox-background-color;
55
+ border: $checkbox-border;
56
+ border-radius: $checkbox-border-radius;
57
+ color: $checkbox-color;
58
+ margin: $checkbox-margin;
59
+ max-width: $checkbox-max-width;
60
+ padding: $checkbox-padding;
61
+ text-align: $checkbox-text-align;
62
+
63
+ label {
64
+ display: inline-block;
65
+ font-size: $checkbox-font-size;
66
+ font-weight: $checkbox-font-weight;
67
+ line-height: $checkbox-line-height;
68
+ margin: $checkbox-label-margin;
69
+ padding-left: $checkbox-label-padding-left;
70
+ position: relative;
71
+ width: $checkbox-label-width;
72
+
73
+ &:focus-within {
74
+ outline: $checkbox-focus-outline;
75
+ outline-offset: $checkbox-focus-outline-offset;
76
+ }
77
+
78
+ input[type=checkbox] {
79
+ background: transparent;
80
+ border-color: $color-white;
81
+ border-radius: 0;
82
+ cursor: $checkbox-input-cursor;
83
+ left: $checkbox-input-position-left;
84
+ margin: $checkbox-input-margin;
85
+ position: absolute;
86
+ top: $checkbox-input-position-top;
87
+
88
+ &::before {
89
+ @include icon-fill;
90
+ background: $checkbox-input-background-color;
91
+ border: $checkbox-input-border;
92
+ border-radius: $checkbox-input-border-radius;
93
+ box-shadow: $checkbox-input-box-shadow;
94
+ color: $checkbox-input-background-color;
95
+ content: '\e920';
96
+ display: block;
97
+ height: $checkbox-input-size;
98
+ text-align: center;
99
+ transition: $checkbox-transition;
100
+ width: $checkbox-input-size;
101
+ }
102
+
103
+ &:checked::before { // sass-lint:disable-line
104
+ background-color: $checkbox-input-checked-background-color;
105
+ border: $checkbox-input-checked-border;
106
+ color: $checkbox-input-checked-color;
107
+ font-size: $checkbox-input-font-size;
108
+ line-height: $checkbox-line-height;
109
+ }
110
+ }
111
+ }
112
+
113
+ &__disclaimer {
114
+ color: $checkbox-disclaimer-color;
115
+ display: $checkbox-disclaimer-display;
116
+ font-size: $checkbox-disclaimer-font-size;
117
+ font-style: $checkbox-disclaimer-font-style;
118
+ font-weight: $checkbox-disclaimer-font-weight;
119
+ line-height: $checkbox-disclaimer-line-height;
120
+ margin: $checkbox-disclaimer-margin;
121
+ }
122
+
123
+ &--group {
124
+ max-width: $checkbox-group-max-width;
125
+
126
+ legend {
127
+ text-align: $checkbox-group-legend-text-align;
128
+ }
129
+
130
+ label {
131
+ display: $checkbox-group-label-display;
132
+ font-size: $checkbox-group-font-size;
133
+ }
134
+ }
135
+ }
136
+
137
+ @include breakpoint-md {
138
+ .checkbox {
139
+ label {
140
+ font-size: $checkbox-font-size-desktop;
141
+ }
142
+
143
+ &__disclaimer {
144
+ font-size: $checkbox-disclaimer-font-size-desktop;
145
+ }
146
+
147
+ &--group {
148
+ label {
149
+ font-size: $checkbox-group-font-size-desktop;
150
+ }
151
+ }
152
+ }
153
+ }
@@ -0,0 +1,18 @@
1
+ {{#if this.field}}
2
+ <fieldset class="checkbox checkbox--group{{#if this.field.attributes.class}} {{this.field.attributes.class}}{{/if}}" {{{addAttributes this.field 'class'}}}>
3
+ {{#if this.field.legend}}
4
+ <legend {{{addAttributes this.field.legend}}}>
5
+ {{{this.field.legend.text}}}
6
+ {{#if this.field.legend.disclaimer}}
7
+ <span class="checkbox__disclaimer">{{{this.field.legend.disclaimer}}}</span>
8
+ {{/if}}
9
+ </legend>
10
+ {{/if}}
11
+ {{#each this.field.options}}
12
+ <label>
13
+ <input type="checkbox" {{{addAttributes this 'type'}}} />
14
+ {{{this.text}}}
15
+ </label>
16
+ {{/each}}
17
+ </fieldset>
18
+ {{/if}}
@@ -0,0 +1,8 @@
1
+ {{#if this.field}}
2
+ <div class="checkbox">
3
+ <label>
4
+ <input type="checkbox" {{{addAttributes this.field 'type'}}} />
5
+ {{{this.field.text}}}
6
+ </label>
7
+ </div>
8
+ {{/if}}
@@ -0,0 +1,129 @@
1
+ $expand-collapse-transition: $base-transition !default;
2
+
3
+ $expand-collapse-toggle-wrapper-box-shadow: none !default;
4
+
5
+ $expand-collapse-toggle-background-color: transparent !default;
6
+ $expand-collapse-toggle-border: 0 !default;
7
+ $expand-collapse-toggle-border-radius: 0 !default;
8
+ $expand-collapse-toggle-color: $color-charcoal4 !default;
9
+ $expand-collapse-toggle-font-size: 1rem !default;
10
+ $expand-collapse-toggle-font-weight: 400 !default;
11
+ $expand-collapse-toggle-letter-spacing: 0 !default;
12
+ $expand-collapse-toggle-margin: 0 auto 45px !default;
13
+ $expand-collapse-toggle-padding: 0 !default;
14
+ $expand-collapse-toggle-text-transform: capitalize !default;
15
+
16
+ $expand-collapse-icon-background-color: $color-white !default;
17
+ $expand-collapse-icon-border: 1px solid $color-charcoal1 !default;
18
+ $expand-collapse-icon-border-top: 0 !default;
19
+ $expand-collapse-icon-border-radius: 100px !default;
20
+ $expand-collapse-icon-color: $color-charcoal4 !default;
21
+ $expand-collapse-icon-display: block !default;
22
+ $expand-collapse-icon-font-size: 1.125rem !default;
23
+ $expand-collapse-icon-line-height: 1 !default;
24
+ $expand-collapse-icon-margin: -1px auto 0 !default;
25
+ $expand-collapse-icon-padding: 5px 0 9px !default;
26
+ $expand-collapse-icon-position: relative !default;
27
+ $expand-collapse-icon-width: 60px !default;
28
+ $expand-collapse-icon-z-index: 2 !default;
29
+
30
+ $expand-collapse-label-display: inline-block !default;
31
+ $expand-collapse-label-margin: 20px auto 0 !default;
32
+ $expand-collapse-label-text-decoration: underline !default;
33
+ $expand-collapse-label-transition: background-color .15s ease-in-out !default;
34
+
35
+ $expand-collapse-target-max-height: 2000px !default;
36
+ $expand-collapse-target-transition: .5s !default;
37
+
38
+ // Focus
39
+ $expand-collapse-toggle-focus-outline: 1px solid rgba($expand-collapse-toggle-color, .5) !default;
40
+ $expand-collapse-toggle-focus-outline-offset: 2px !default;
41
+
42
+ // Hover
43
+ $expand-collapse-label-hover-background-color: transparent !default;
44
+ $expand-collapse-toggle-hover-color: darken($expand-collapse-toggle-color, 10%) !default;
45
+ $expand-collapse-icon-hover-color: darken($expand-collapse-icon-color, 10%) !default;
46
+
47
+ .expand-collapse {
48
+ &__toggle-wrapper {
49
+ box-shadow: $expand-collapse-toggle-wrapper-box-shadow;
50
+ }
51
+
52
+ &__toggle {
53
+ background-color: $expand-collapse-toggle-background-color;
54
+ border: $expand-collapse-toggle-border;
55
+ border-radius: $expand-collapse-toggle-border-radius;
56
+ color: $expand-collapse-toggle-color;
57
+ cursor: pointer;
58
+ font-size: $expand-collapse-toggle-font-size;
59
+ font-weight: $expand-collapse-toggle-font-weight;
60
+ letter-spacing: $expand-collapse-toggle-letter-spacing;
61
+ margin: $expand-collapse-toggle-margin;
62
+ padding: $expand-collapse-toggle-padding;
63
+ text-transform: $expand-collapse-toggle-text-transform;
64
+ transition: $expand-collapse-transition;
65
+
66
+ &:focus {
67
+ outline: $expand-collapse-toggle-focus-outline;
68
+ outline-offset: $expand-collapse-toggle-focus-outline-offset;
69
+ }
70
+ }
71
+
72
+ &__icon {
73
+ background-color: $expand-collapse-icon-background-color;
74
+ border: $expand-collapse-icon-border;
75
+ border-top: $expand-collapse-icon-border-top;
76
+ border-bottom-left-radius: $expand-collapse-icon-border-radius;
77
+ border-bottom-right-radius: $expand-collapse-icon-border-radius;
78
+ color: $expand-collapse-icon-color;
79
+ display: $expand-collapse-icon-display;
80
+ font-size: $expand-collapse-icon-font-size;
81
+ line-height: $expand-collapse-icon-line-height;
82
+ margin: $expand-collapse-icon-margin;
83
+ padding: $expand-collapse-icon-padding;
84
+ position: $expand-collapse-icon-position;
85
+ transition: $expand-collapse-transition;
86
+ width: $expand-collapse-icon-width;
87
+ z-index: $expand-collapse-icon-z-index;
88
+ }
89
+
90
+ &__label {
91
+ display: $expand-collapse-label-display;
92
+ margin: $expand-collapse-label-margin;
93
+ text-decoration: $expand-collapse-label-text-decoration;
94
+ transition: $expand-collapse-label-transition;
95
+ }
96
+
97
+ &__target {
98
+ max-height: $expand-collapse-target-max-height;
99
+ overflow: hidden;
100
+ transition: $expand-collapse-target-transition;
101
+
102
+ &.collapsed {
103
+ max-height: 0;
104
+ opacity: 0;
105
+ visibility: collapse;
106
+ }
107
+ }
108
+ }
109
+
110
+ @include breakpoint-md {
111
+ .expand-collapse {
112
+ &__toggle {
113
+ &:focus,
114
+ &:hover {
115
+ color: $expand-collapse-toggle-hover-color;
116
+
117
+ .expand-collapse {
118
+ &__label {
119
+ background-color: $expand-collapse-label-hover-background-color;
120
+ }
121
+
122
+ &__icon {
123
+ color: $expand-collapse-icon-hover-color;
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,14 @@
1
+ {{#if this.expandCollapse.wrapper}}
2
+ <div class="expand-collapse__toggle-wrapper{{#xif 'this.expandCollapse.wrapper.attributes && this.expandCollapse.wrapper.attributes.class'}} {{this.expandCollapse.wrapper.attributes.class}}{{/xif}}" {{{addAttributes this.expandCollapse.wrapper 'class'}}}>
3
+ {{/if}}
4
+ <button class="expand-collapse__toggle{{#xif 'this.expandCollapse.attributes && this.expandCollapse.attributes.class'}} {{this.expandCollapse.attributes.class}}{{/xif}}{{#xif 'this.expandCollapse.scrollToTop === true'}} scroll-to-top{{/xif}}" {{{addAttributes this.expandCollapse 'class'}}}>
5
+ {{#if this.expandCollapse.icon}}
6
+ <span class="expand-collapse__icon">
7
+ <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>
8
+ </span>
9
+ {{/if}}
10
+ <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>
11
+ </button>
12
+ {{#if this.expandCollapse.wrapper}}
13
+ </div>
14
+ {{/if}}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ function scrollToElement(element, position, callback) {
4
+ element.scrollIntoView({
5
+ behavior: 'smooth',
6
+ block: position
7
+ });
8
+ if (callback && typeof callback === 'function') {
9
+ callback();
10
+ }
11
+ }
12
+ window.expandCollapseToggle = document.querySelectorAll('.expand-collapse__toggle');
13
+ expandCollapseToggle.forEach(function (toggle) {
14
+ var toggleId = toggle.id,
15
+ ariaExpanded = toggle.getAttribute('aria-expanded'),
16
+ ariaControls = toggle.getAttribute('aria-controls'),
17
+ expandCollapseTarget = document.getElementById(ariaControls),
18
+ scrollToTop = toggle.classList.contains('scroll-to-top');
19
+ expandCollapseTarget.classList.add('expand-collapse__target');
20
+ if (ariaExpanded === 'false' && !expandCollapseTarget.classList.contains('collapsed')) {
21
+ expandCollapseTarget.classList.add('collapsed');
22
+ }
23
+ document.getElementById(toggleId).addEventListener('click', function () {
24
+ var shouldExpand = this.getAttribute('aria-expanded') !== 'true',
25
+ expandCollapseLabel = this.querySelector('.expand-collapse__label'),
26
+ expandCollapseIcon = this.querySelector('.expand-collapse__icon i'),
27
+ focusOnElement = shouldExpand ? ariaControls : toggleId;
28
+ this.setAttribute('aria-expanded', shouldExpand);
29
+ if (expandCollapseLabel) {
30
+ expandCollapseLabel.innerHTML = expandCollapseLabel.dataset[shouldExpand ? 'expandedLabel' : 'collapsedLabel'];
31
+ }
32
+ if (expandCollapseIcon) {
33
+ expandCollapseIcon.className = expandCollapseIcon.dataset[shouldExpand ? 'expandedIcon' : 'collapsedIcon'];
34
+ }
35
+ if (ariaExpanded === 'false' || expandCollapseTarget.classList.contains('collapsed')) {
36
+ expandCollapseTarget.classList.toggle('collapsed');
37
+ } else {
38
+ expandCollapseTarget.classList.add('collapsed');
39
+ }
40
+ if (scrollToTop) {
41
+ var scrollPosition = shouldExpand ? 'start' : 'center',
42
+ element = document.getElementById(toggleId);
43
+ setTimeout(function () {
44
+ scrollToElement(element, scrollPosition, function () {
45
+ setTimeout(function () {
46
+ document.getElementById(focusOnElement).focus();
47
+ }, 400);
48
+ });
49
+ }, 200);
50
+ }
51
+ });
52
+ });
@@ -0,0 +1,2 @@
1
+ "use strict";function scrollToElement(e,t,l){e.scrollIntoView({behavior:"smooth",block:t}),l&&"function"==typeof l&&l()}window.expandCollapseToggle=document.querySelectorAll(".expand-collapse__toggle"),expandCollapseToggle.forEach(function(e){var t=e.id,l=e.getAttribute("aria-expanded"),a=e.getAttribute("aria-controls"),s=document.getElementById(a),o=e.classList.contains("scroll-to-top");s.classList.add("expand-collapse__target"),"false"!==l||s.classList.contains("collapsed")||s.classList.add("collapsed"),document.getElementById(t).addEventListener("click",function(){var e="true"!==this.getAttribute("aria-expanded"),n=this.querySelector(".expand-collapse__label"),c=this.querySelector(".expand-collapse__icon i"),d=e?a:t;if(this.setAttribute("aria-expanded",e),n&&(n.innerHTML=n.dataset[e?"expandedLabel":"collapsedLabel"]),c&&(c.className=c.dataset[e?"expandedIcon":"collapsedIcon"]),"false"===l||s.classList.contains("collapsed")?s.classList.toggle("collapsed"):s.classList.add("collapsed"),o){var i=e?"start":"center",r=document.getElementById(t);setTimeout(function(){scrollToElement(r,i,function(){setTimeout(function(){document.getElementById(d).focus()},400)})},200)}})});
2
+ //# sourceMappingURL=expand-collapse.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["accessible-components/expand-collapse/expand-collapse.js"],"names":["scrollToElement","element","position","callback","scrollIntoView","behavior","block","window","expandCollapseToggle","document","querySelectorAll","forEach","toggle","toggleId","id","ariaExpanded","getAttribute","ariaControls","expandCollapseTarget","getElementById","scrollToTop","classList","contains","add","addEventListener","shouldExpand","this","expandCollapseLabel","querySelector","expandCollapseIcon","focusOnElement","setAttribute","innerHTML","dataset","className","scrollPosition","setTimeout","focus"],"mappings":"YAAA,SAASA,iBAAgBC,EAASC,EAAUC,GAC3CF,EAAQG,gBACPC,SAAU,SACVC,MAAOJ,IAEJC,GAAgC,kBAAbA,IACtBA,IAIFI,OAAOC,qBAAuBC,SAASC,iBAAiB,4BACxDF,qBAAqBG,QAAQ,SAASC,GACrC,GAAIC,GAAWD,EAAOE,GACrBC,EAAeH,EAAOI,aAAa,iBACnCC,EAAeL,EAAOI,aAAa,iBACnCE,EAAuBT,SAASU,eAAeF,GAC/CG,EAAcR,EAAOS,UAAUC,SAAS,gBACzCJ,GAAqBG,UAAUE,IAAI,2BACd,UAAjBR,GAA6BG,EAAqBG,UAAUC,SAAS,cACxEJ,EAAqBG,UAAUE,IAAI,aAEpCd,SAASU,eAAeN,GAAUW,iBAAiB,QAAS,WAC3D,GAAIC,GAAsD,SAAvCC,KAAKV,aAAa,iBACpCW,EAAsBD,KAAKE,cAAc,2BACzCC,EAAqBH,KAAKE,cAAc,4BACxCE,EAAiBL,EAAeR,EAAeJ,CAahD,IAZAa,KAAKK,aAAa,gBAAiBN,GAC/BE,IACHA,EAAoBK,UAAYL,EAAoBM,QAAQR,EAAe,gBAAkB,mBAE1FI,IACHA,EAAmBK,UAAYL,EAAmBI,QAAQR,EAAe,eAAiB,kBAEtE,UAAjBV,GAA4BG,EAAqBG,UAAUC,SAAS,aACvEJ,EAAqBG,UAAUT,OAAO,aAEtCM,EAAqBG,UAAUE,IAAI,aAEhCH,EAAa,CAChB,GAAIe,GAAiBV,EAAe,QAAU,SAC7CxB,EAAUQ,SAASU,eAAeN,EACnCuB,YAAW,WACVpC,gBAAgBC,EAASkC,EAAgB,WACxCC,WAAW,WACV3B,SAASU,eAAeW,GAAgBO,SACtC,QAEF","file":"expand-collapse.min.js","sourcesContent":["function scrollToElement(element, position, callback) {\n\telement.scrollIntoView({\n\t\tbehavior: 'smooth',\n\t\tblock: position\n\t});\n\tif (callback && typeof callback === 'function') {\n\t\tcallback();\n\t}\n}\n\nwindow.expandCollapseToggle = document.querySelectorAll('.expand-collapse__toggle');\nexpandCollapseToggle.forEach(function(toggle) {\n\tvar 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\texpandCollapseTarget.classList.add('expand-collapse__target');\n\tif (ariaExpanded === 'false' && !expandCollapseTarget.classList.contains('collapsed')) {\n\t\texpandCollapseTarget.classList.add('collapsed');\n\t}\n\tdocument.getElementById(toggleId).addEventListener('click', function() {\n\t\tvar 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\t\t\tfocusOnElement = shouldExpand ? ariaControls : toggleId;\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\t\tif (expandCollapseIcon) {\n\t\t\texpandCollapseIcon.className = expandCollapseIcon.dataset[shouldExpand ? 'expandedIcon' : 'collapsedIcon'];\n\t\t}\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\t\tif (scrollToTop) {\n\t\t\tvar scrollPosition = shouldExpand ? 'start' : 'center',\n\t\t\t\telement = document.getElementById(toggleId);\n\t\t\tsetTimeout(function() {\n\t\t\t\tscrollToElement(element, scrollPosition, function() {\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tdocument.getElementById(focusOnElement).focus();\n\t\t\t\t\t}, 400);\n\t\t\t\t});\n\t\t\t}, 200);\n\t\t}\n\t});\n});\n"]}
@@ -0,0 +1,221 @@
1
+ $featured-block-background: $color-white !default;
2
+ $featured-block-padding: 40px 0 !default;
3
+ $featured-block-padding-tablet: 60px 0 !default;
4
+ $featured-block-padding-desktop: 80px 0 !default;
5
+ $featured-block-text-align: center !default;
6
+ $featured-block-text-align-desktop: left !default;
7
+
8
+ $featured-block-content-align-items: center !default;
9
+ $featured-block-content-display: flex !default;
10
+ $featured-block-content-justify-content: space-between !default;
11
+ $featured-block-content-margin: 0 -15px !default;
12
+
13
+ $featured-block-content-max-width-tablet: 550px !default;
14
+ $featured-block-content-max-width-desktop: 100% !default;
15
+
16
+ $featured-block-column-left-flex-desktop: 0 0 48% !default;
17
+ $featured-block-column-right-flex-desktop: 0 0 48% !default;
18
+ $featured-block-column-padding: 0 15px !default;
19
+
20
+ $featured-block-title-color: $color-charcoal8 !default;
21
+ $featured-block-title-font-family: inherit !default;
22
+ $featured-block-title-font-size: 1.375rem !default;
23
+ $featured-block-title-font-size-desktop: 1.5rem !default;
24
+ $featured-block-title-font-weight: 700 !default;
25
+ $featured-block-title-line-height: 1.25 !default;
26
+ $featured-block-title-margin: 0 0 15px !default;
27
+
28
+ $featured-block-subtitle-color: $color-charcoal8 !default;
29
+ $featured-block-subtitle-font-size: 1rem !default;
30
+ $featured-block-subtitle-font-size-desktop: 1.125rem !default;
31
+ $featured-block-subtitle-font-weight: 400 !default;
32
+ $featured-block-subtitle-line-height: 1.35 !default;
33
+ $featured-block-subtitle-margin: 0 !default;
34
+ $featured-block-subtitle-text-align: left !default;
35
+
36
+ $featured-block-description-color: $color-charcoal8 !default;
37
+ $featured-block-description-font-size: $featured-block-subtitle-font-size !default;
38
+ $featured-block-description-font-size-desktop: $featured-block-subtitle-font-size-desktop !default;
39
+ $featured-block-description-font-weight: $featured-block-subtitle-font-weight !default;
40
+ $featured-block-description-line-height: $featured-block-subtitle-line-height !default;
41
+ $featured-block-description-margin: $featured-block-subtitle-margin !default;
42
+ $featured-block-description-text-align: $featured-block-subtitle-text-align !default;
43
+
44
+ $featured-block-partner-margin: 20px 0 !default;
45
+ $featured-block-partner-img-display: inline-block !default;
46
+ $featured-block-partner-img-margin: 0 10px !default;
47
+ $featured-block-partner-img-height: auto !default;
48
+ $featured-block-partner-img-width: 100px !default;
49
+
50
+ $featured-block-img-border-radius: 0 !default;
51
+ $featured-block-img-display: inline-block !default;
52
+ $featured-block-img-margin: 0 auto 25px !default;
53
+ $featured-block-img-margin-desktop: 0 !default;
54
+ $featured-block-img-max-width: 100% !default;
55
+ $featured-block-img-width: 100% !default;
56
+
57
+ $featured-block-btn-display: block !default;
58
+ $featured-block-btn-margin: 25px auto 0 !default;
59
+ $featured-block-btn-margin-desktop: 25px 0 0 !default;
60
+ $featured-block-btn-max-width: 250px !default;
61
+
62
+ $featured-block-inprogress-display: none !default;
63
+
64
+ .featured-block {
65
+ background: $featured-block-background;
66
+ padding: $featured-block-padding;
67
+ text-align: $featured-block-text-align;
68
+
69
+ &__column {
70
+ padding: $featured-block-column-padding;
71
+ }
72
+
73
+ &__title {
74
+ color: $featured-block-title-color;
75
+ font-family: $featured-block-title-font-family;
76
+ font-size: $featured-block-title-font-size;
77
+ font-weight: $featured-block-title-font-weight;
78
+ line-height: $featured-block-title-line-height;
79
+ margin: $featured-block-title-margin;
80
+ }
81
+
82
+ &__subtitle {
83
+ color: $featured-block-subtitle-color;
84
+ font-size: $featured-block-subtitle-font-size;
85
+ font-weight: $featured-block-subtitle-font-weight;
86
+ line-height: $featured-block-subtitle-line-height;
87
+ margin: $featured-block-subtitle-margin;
88
+ text-align: $featured-block-subtitle-text-align;
89
+ }
90
+
91
+ &__description {
92
+ color: $featured-block-description-color;
93
+ font-size: $featured-block-description-font-size;
94
+ font-weight: $featured-block-description-font-weight;
95
+ line-height: $featured-block-description-line-height;
96
+ margin: $featured-block-description-margin;
97
+ text-align: $featured-block-description-text-align;
98
+ }
99
+
100
+ &__partners {
101
+ margin: $featured-block-partner-margin;
102
+
103
+ img {
104
+ display: $featured-block-partner-img-display;
105
+ height: $featured-block-partner-img-height;
106
+ margin: $featured-block-partner-img-margin;
107
+ vertical-align: middle;
108
+ width: $featured-block-partner-img-width;
109
+ }
110
+ }
111
+
112
+ &__image {
113
+ img {
114
+ border-radius: $featured-block-img-border-radius;
115
+ display: $featured-block-img-display;
116
+ height: auto;
117
+ margin: $featured-block-img-margin;
118
+ max-width: $featured-block-img-max-width;
119
+ width: $featured-block-img-width;
120
+ }
121
+ }
122
+
123
+ &__btn {
124
+ display: $featured-block-btn-display;
125
+ margin: $featured-block-btn-margin;
126
+ max-width: $featured-block-btn-max-width;
127
+ }
128
+ }
129
+
130
+ .form-in-progress {
131
+ .featured-block {
132
+ display: $featured-block-inprogress-display;
133
+ }
134
+ }
135
+
136
+ @include breakpoint-md {
137
+ .featured-block {
138
+ padding: $featured-block-padding-tablet;
139
+
140
+ &__content {
141
+ margin: 0 auto;
142
+ max-width: $featured-block-content-max-width-tablet;
143
+ }
144
+ &__title {
145
+ font-size: $featured-block-title-font-size-desktop;
146
+ }
147
+
148
+ &__subtitle {
149
+ font-size: $featured-block-subtitle-font-size-desktop;
150
+ }
151
+
152
+ &__description {
153
+ font-size: $featured-block-description-font-size-desktop;
154
+ }
155
+
156
+ &--flex-md {
157
+ text-align: $featured-block-text-align;
158
+
159
+ .featured-block {
160
+ &__content {
161
+ align-items: $featured-block-content-align-items;
162
+ display: $featured-block-content-display;
163
+ justify-content: $featured-block-content-justify-content;
164
+ margin: $featured-block-content-margin;
165
+ max-width: $featured-block-content-max-width-desktop;
166
+ }
167
+
168
+ &__column {
169
+ flex: $featured-block-column-left-flex-desktop;
170
+
171
+ ~ .featured-block__column {
172
+ flex: $featured-block-column-right-flex-desktop;
173
+ }
174
+ }
175
+
176
+ &__image {
177
+ img {
178
+ margin: $featured-block-img-margin-desktop;
179
+ }
180
+ }
181
+
182
+ &__btn {
183
+ margin: $featured-block-btn-margin-desktop;
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+
190
+ @include breakpoint-lg {
191
+ .featured-block {
192
+ padding: $featured-block-padding-desktop;
193
+ text-align: $featured-block-text-align-desktop;
194
+
195
+ &__content {
196
+ align-items: $featured-block-content-align-items;
197
+ display: $featured-block-content-display;
198
+ justify-content: $featured-block-content-justify-content;
199
+ margin: $featured-block-content-margin;
200
+ max-width: $featured-block-content-max-width-desktop;
201
+ }
202
+
203
+ &__column {
204
+ flex: $featured-block-column-left-flex-desktop;
205
+
206
+ ~ .featured-block__column {
207
+ flex: $featured-block-column-right-flex-desktop;
208
+ }
209
+ }
210
+
211
+ &__image {
212
+ img {
213
+ margin: $featured-block-img-margin-desktop;
214
+ }
215
+ }
216
+
217
+ &__btn {
218
+ margin: $featured-block-btn-margin-desktop;
219
+ }
220
+ }
221
+ }
@@ -0,0 +1,54 @@
1
+ <section class="featured-block{{#xif 'this.block.attributes && this.block.attributes.class'}} {{this.block.attributes.class}}{{/xif}}" {{{addAttributes this.block 'class'}}}>
2
+ <div class="featured-block__container container">
3
+ {{#if this.block.title}}
4
+ <h2 class="featured-block__title{{#xif 'this.block.title.attributes && this.block.title.attributes.class'}} {{this.block.title.attributes.class}}{{/xif}}" {{{addAttributes this.block.title 'class'}}}>{{{this.block.title.text}}}</h2>
5
+ {{/if}}
6
+ {{#xif "this.block.columns.length > 1"}}<div class="featured-block__content row">{{/xif}}
7
+ {{#each this.block.columns}}
8
+ <div class="featured-block__column{{#xif 'this.attributes && this.attributes.class'}} {{this.attributes.class}}{{/xif}}" {{{addAttributes this 'class'}}}>
9
+ {{#if this.title}}
10
+ <h2 class="featured-block__title{{#xif 'this.title.attributes && this.title.attributes.class'}} {{this.title.attributes.class}}{{/xif}}" {{{addAttributes this.title 'class'}}}>{{{this.title.text}}}</h2>
11
+ {{/if}}
12
+ {{#if this.subtitle}}
13
+ <p class="featured-block__subtitle{{#xif 'this.subtitle.attributes && this.subtitle.attributes.class'}} {{this.subtitle.attributes.class}}{{/xif}}" {{{addAttributes this.subtitle 'class'}}}>{{{this.subtitle.text}}}</p>
14
+ {{/if}}
15
+ {{#if this.description}}
16
+ {{#unless this.description.placeUnderLogos}}
17
+ <p class="featured-block__description{{#xif 'this.description.attributes && this.description.attributes.class'}} {{this.description.attributes.class}}{{/xif}}" {{{addAttributes this.description 'class'}}}>{{{this.description.text}}}</p>
18
+ {{/unless}}
19
+ {{/if}}
20
+ {{#if this.picture}}
21
+ <div class="featured-block__image">
22
+ {{ fileInclude 'src/accessible-components/picture/picture.html'
23
+ picture = this.picture
24
+ }}
25
+ </div>
26
+ {{/if}}
27
+ {{#if this.customContentTemplate}}
28
+ {{ fileInclude this.customContentTemplate
29
+ content = this
30
+ }}
31
+ {{/if}}
32
+ {{#if this.featuredPartnerLogos}}
33
+ <div class="featured-block__partners">
34
+ {{#each this.featuredPartnerLogos}}
35
+ {{ fileInclude 'src/accessible-components/picture/picture.html'
36
+ picture = this.picture
37
+ }}
38
+ {{/each}}
39
+ </div>
40
+ {{/if}}
41
+ {{#if this.description.placeUnderLogos}}
42
+ <p class="featured-block__description{{#xif 'this.description.attributes && this.description.attributes.class'}} {{this.description.attributes.class}}{{/xif}}" {{{addAttributes this.description 'class'}}}>{{{this.description.text}}}</p>
43
+ {{/if}}
44
+ {{#if this.button}}
45
+ {{ fileInclude 'src/accessible-components/button/button.html'
46
+ button = this.button
47
+ class = 'featured-block__btn'
48
+ }}
49
+ {{/if}}
50
+ </div>
51
+ {{/each}}
52
+ {{#xif "this.block.columns.length > 1"}}</div>{{/xif}}
53
+ </div>
54
+ </section>