mod-build 3.6.71 → 4.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc +18 -0
  3. package/CHANGELOG.md +2 -240
  4. package/README.md +16 -263
  5. package/gulp-tasks/build.js +1 -1
  6. package/package.json +21 -69
  7. package/siteconfig.js +38 -0
  8. package/src/accessible-components/button/_button.scss +195 -0
  9. package/src/accessible-components/button/back-button.html +4 -0
  10. package/src/accessible-components/button/button.html +17 -0
  11. package/src/accessible-components/carousel/_carousel.scss +112 -0
  12. package/src/accessible-components/carousel/carousel.html +25 -0
  13. package/src/accessible-components/checkbox/_checkbox.scss +96 -0
  14. package/src/accessible-components/checkbox/checkbox.html +8 -0
  15. package/src/accessible-components/expand-collapse/_expand-collapse.scss +122 -0
  16. package/src/accessible-components/expand-collapse/expand-collapse.html +8 -0
  17. package/src/accessible-components/expand-collapse/expand-collapse.js +52 -0
  18. package/src/accessible-components/expand-collapse/expand-collapse.min.js +2 -0
  19. package/src/accessible-components/expand-collapse/expand-collapse.min.js.map +1 -0
  20. package/src/accessible-components/featured-block/_featured-block.scss +219 -0
  21. package/src/accessible-components/featured-block/featured-block.html +54 -0
  22. package/src/accessible-components/foot-assets/foot-assets.html +92 -0
  23. package/src/accessible-components/footer/footer.html +2 -0
  24. package/src/{templates/_partials/scripts/gtm-editorials/body/google-tag-manager-body.html → accessible-components/gtm-body/gtm-body.html} +1 -2
  25. package/src/accessible-components/head/head.html +188 -0
  26. package/src/accessible-components/header/_header.scss +289 -0
  27. package/src/accessible-components/header/header.html +66 -0
  28. package/src/accessible-components/hero/_hero.scss +371 -0
  29. package/src/accessible-components/hero/hero.html +53 -0
  30. package/src/accessible-components/how-it-works/_how-it-works.scss +217 -0
  31. package/src/accessible-components/how-it-works/how-it-works-carousel.html +12 -0
  32. package/src/accessible-components/how-it-works/how-it-works-static.html +12 -0
  33. package/src/accessible-components/how-it-works/how-it-works.html +14 -0
  34. package/src/accessible-components/information/_information.scss +92 -0
  35. package/src/accessible-components/information/information.html +26 -0
  36. package/src/accessible-components/input/_input.scss +202 -0
  37. package/src/accessible-components/input/input.html +22 -0
  38. package/src/accessible-components/input/textarea.html +9 -0
  39. package/src/accessible-components/partners/_partners.scss +232 -0
  40. package/src/accessible-components/partners/partners.html +56 -0
  41. package/src/accessible-components/picture/picture.html +19 -0
  42. package/src/accessible-components/preloader/_preloader.scss +61 -0
  43. package/src/accessible-components/preloader/preloader.html +23 -0
  44. package/src/accessible-components/progress-bar/_progress-bar.scss +119 -0
  45. package/src/accessible-components/progress-bar/progress-bar.html +21 -0
  46. package/src/accessible-components/progress-bar/progress-bar.js +37 -0
  47. package/src/accessible-components/progress-bar/progress-bar.min.js +2 -0
  48. package/src/accessible-components/progress-bar/progress-bar.min.js.map +1 -0
  49. package/src/accessible-components/radio-button/_radio-button.scss +537 -0
  50. package/src/accessible-components/radio-button/radio-button.html +34 -0
  51. package/src/accessible-components/reviews/_reviews.scss +175 -0
  52. package/src/accessible-components/reviews/reviews-carousel.html +12 -0
  53. package/src/accessible-components/reviews/reviews-static.html +12 -0
  54. package/src/accessible-components/reviews/reviews.html +37 -0
  55. package/src/accessible-components/select/_select.scss +69 -0
  56. package/src/accessible-components/select/select.html +10 -0
  57. package/src/accessible-components/steps/_steps.scss +524 -0
  58. package/src/accessible-components/steps/defaultFormFieldConfig.json +109 -0
  59. package/src/accessible-components/steps/step-fields.html +33 -0
  60. package/src/accessible-components/steps/steps.html +150 -0
  61. package/src/accessible-components/tcpa/_tcpa.scss +49 -0
  62. package/src/accessible-components/tcpa/tcpa.html +9 -0
  63. package/src/accessible-components/tile/_tile.scss +117 -0
  64. package/src/accessible-components/tile/tile.html +14 -0
  65. package/src/accessible-components/value-props/_value-props.scss +100 -0
  66. package/src/accessible-components/value-props/value-props.html +17 -0
  67. package/src/accessible-components/zip-control/_zip-control.scss +78 -0
  68. package/src/accessible-components/zip-control/zip-control.html +10 -0
  69. package/src/data/footer.js +117 -0
  70. package/src/data/seasons.js +5 -7
  71. package/src/data/theme.json +164 -0
  72. package/src/index.html +18 -0
  73. package/src/main.js +45 -0
  74. package/src/resources/scripts/abandonment/abandonment-1df90ee155f6c0893d90.min.js +2 -0
  75. package/src/resources/scripts/abandonment/abandonment.min.js +2 -0
  76. package/src/resources/scripts/footer/footer-component-7b5e263f64568573ecc0.min.js +2 -0
  77. package/src/resources/scripts/footer/footer-component.min.js +2 -0
  78. package/src/resources/scripts/helpers/initNumericOnlyFields.min.js +2 -0
  79. package/src/resources/scripts/helpers/initNumericOnlyFields.min.js.map +1 -0
  80. package/src/resources/scripts/helpers/isZipCodeValid.min.js +2 -0
  81. package/src/resources/scripts/helpers/isZipCodeValid.min.js.map +1 -0
  82. package/src/resources/scripts/mod-alytics/modalytics-0ac7d7a5a72ea67a0f47.min.js +2 -0
  83. package/src/resources/scripts/mod-alytics/modalytics.min.js +2 -0
  84. package/src/resources/scripts/mod-form/form/homeowner-77a4dd439b8db412678b.min.js +2 -0
  85. package/src/resources/scripts/mod-form/form/homeowner.min.js +2 -0
  86. package/src/resources/scripts/mod-utils/modutils-8ba40d21f559171ddd36.min.js +2 -0
  87. package/src/resources/scripts/mod-utils/modutils.min.js +2 -0
  88. package/src/resources/styles/components/abandonment/abandonment-ae63aca828944411eff7.min.css +1 -0
  89. package/src/resources/styles/components/abandonment/abandonment.min.css +1 -0
  90. package/src/resources/styles/components/footer/mod-footer-3717faf57147c62c1777.min.css +1 -0
  91. package/src/resources/styles/components/footer/mod-footer.min.css +1 -0
  92. package/src/resources/styles/components/footer/qs-footer-12bf078dc614ff221c3c.min.css +1 -0
  93. package/src/resources/styles/components/footer/qs-footer.min.css +1 -0
  94. package/src/resources/templates/modals/about/index.html +9 -0
  95. package/src/resources/templates/modals/contact-us/index.html +348 -0
  96. package/src/resources/templates/modals/faq/index.html +9 -0
  97. package/src/resources/templates/modals/privacy/index.html +236 -0
  98. package/src/resources/templates/modals/terms/index.html +166 -0
  99. package/src/scripts/has-qs-params.js +6 -5
  100. package/src/scripts/url-cleaner.js +3 -3
  101. package/src/scripts/utils.js +178 -0
  102. package/src/styles/home.scss +1 -0
  103. package/src/temp/scripts/maxmind-geoip2.js +104 -0
  104. package/src/templates/_partials/scripts/deferred-styles.html +16 -16
  105. package/src/templates/_partials/scripts/vwo-redirect-callback.html +43 -45
  106. package/src/templates/components/head.html +70 -0
  107. package/tasks/clean.js +13 -0
  108. package/tasks/grab-cdn.js +107 -0
  109. package/tasks/grab-form-helpers.js +94 -0
  110. package/tasks/grab-shared-components.js +81 -0
  111. package/tasks/grab-shared-scripts.js +267 -0
  112. package/tasks/serve.js +15 -0
  113. package/tasks/templates.js +168 -0
  114. package/template.js +801 -0
  115. package/vite.config.js +56 -0
  116. package/.eslintrc.yml +0 -59
  117. package/src/data/common.js +0 -704
  118. package/src/data/components/qs-footer.js +0 -55
  119. package/src/data/components/quote-footer.js +0 -73
  120. package/src/scripts/apt-block.js +0 -919
  121. package/src/scripts/components/custom-selects.js +0 -48
  122. package/src/scripts/components/radio-panels.js +0 -45
  123. package/src/scripts/es6-1.js +0 -6
  124. package/src/scripts/es6-2.js +0 -2
  125. package/src/scripts/qs-form.js +0 -839
  126. package/src/scripts/vendor/maxmind-geoip2.js +0 -2
  127. package/src/scripts/vendor/swiper.min.js +0 -13
  128. package/src/styles/apt-block.scss +0 -888
  129. package/src/templates/_partials/apt-block.html +0 -30
  130. package/src/templates/_partials/scripts/analytics.html +0 -4
  131. package/src/templates/_partials/scripts/go-page-hiding-snippet.html +0 -8
  132. package/src/templates/_partials/scripts/google-maps.html +0 -1
  133. package/src/templates/_partials/scripts/google-optimize.html +0 -12
  134. package/src/templates/_partials/scripts/gtm-editorials/head/google-tag-manager-head.html +0 -10
  135. package/src/templates/_partials/scripts/gtm-hil/body/google-tag-manager-body.html +0 -5
  136. package/src/templates/_partials/scripts/gtm-hil/head/google-tag-manager-head.html +0 -10
  137. package/src/templates/_partials/scripts/gtm-pro/body/google-tag-manager-body.html +0 -5
  138. package/src/templates/_partials/scripts/gtm-pro/head/google-tag-manager-head.html +0 -10
  139. package/src/templates/_partials/scripts/gtm-quote/body/google-tag-manager-body.html +0 -5
  140. package/src/templates/_partials/scripts/gtm-quote/head/google-tag-manager-head.html +0 -9
  141. package/src/templates/_partials/scripts/gtm-whitelabel/body/mod-google-tag-manager-body.html +0 -5
  142. package/src/templates/_partials/scripts/gtm-whitelabel/body/non-mod-google-tag-manager-body.html +0 -5
  143. package/src/templates/_partials/scripts/gtm-whitelabel/head/mod-google-tag-manager-head.html +0 -10
  144. package/src/templates/_partials/scripts/gtm-whitelabel/head/non-mod-google-tag-manager-head.html +0 -9
  145. package/src/templates/_partials/scripts/gtm-wordpress/body/google-tag-manager-body.html +0 -5
  146. package/src/templates/_partials/scripts/gtm-wordpress/head/google-tag-manager-head.html +0 -9
  147. package/src/templates/_partials/scripts/visual-website-optimizer.html +0 -5
  148. package/src/templates/index.html +0 -46
  149. /package/{src → public}/favicon.ico +0 -0
@@ -0,0 +1,537 @@
1
+ $radio-overflow: visible !default;
2
+ $radio-margin: 0 0 10px !default;
3
+
4
+ $radio-button-label-cursor: pointer !default;
5
+ $radio-button-label-display: block !default;
6
+ $radio-button-input-position: absolute !default;
7
+ $radio-button-input-opacity: 0 !default;
8
+
9
+ // Default Styling (radioOptionType = none)
10
+ $radio-button-background-color: $color-white !default;
11
+ $radio-button-border-color: darken($color-charcoal3, 5%)!default;
12
+ $radio-button-border-radius: 4px !default;
13
+ $radio-button-border-width: 1px !default;
14
+ $radio-button-color: $color-charcoal8 !default;
15
+ $radio-button-font-size: 1rem !default;
16
+ $radio-button-font-size-desktop: 1.125rem !default;
17
+ $radio-button-font-weight: 400 !default;
18
+ $radio-button-line-height: 1.25 !default;
19
+ $radio-button-margin: 0 0 10px !default;
20
+ $radio-button-min-height: 48px !default;
21
+ $radio-button-padding: 17px 16px 17px 40px !default;
22
+ $radio-button-text-align: left !default;
23
+ // Checked
24
+ $radio-button-checked-background-color: rgba($color-charcoal1, .4) !default;
25
+ $radio-button-checked-border-color: $color-charcoal5 !default;
26
+ $radio-button-checked-border-width: 2px !default;
27
+ $radio-button-checked-box-shadow: none !default;
28
+ $radio-button-checked-color: $radio-button-color !default;
29
+ $radio-button-checked-font-weight: $radio-button-font-weight !default;
30
+ // Focus
31
+ $radio-button-focus-box-shadow: 0 0 10px 0 rgba(darken($radio-button-checked-background-color, 10%), .5) !default;
32
+ // Hover
33
+ $radio-button-hover-background-color: $radio-button-checked-background-color !default;
34
+ $radio-button-hover-border-color: $radio-button-border-color !default;
35
+ $radio-button-hover-border-width: $radio-button-border-width !default;
36
+ $radio-button-hover-color: $radio-button-checked-color !default;
37
+ // Error
38
+ $radio-button-error-color: $color-a11y-red !default;
39
+
40
+ // Radio Select (Circle)
41
+ $radio-button-select-background-color: $color-white !default;
42
+ $radio-button-select-border: 1px solid darken($color-charcoal3, 5%) !default;
43
+ $radio-button-select-box-shadow: none !default;
44
+ $radio-button-select-size: 20px !default;
45
+ $radio-button-select-position-top: 17px !default;
46
+ $radio-button-select-position-left: 13px !default;
47
+ $radio-button-select-inner-circle-color: $color-charcoal5 !default;
48
+ $radio-button-select-inner-circle-display: block !default;
49
+ $radio-button-select-inner-circle-position: absolute !default;
50
+ $radio-button-select-inner-circle-position-left: 3px !default;
51
+ $radio-button-select-inner-circle-position-top: $radio-button-select-inner-circle-position-left !default;
52
+ $radio-button-select-inner-circle-size: 10px !default;
53
+ // Checked Radio Select (Circle)
54
+ $radio-button-select-checked-background-color: $color-white !default;
55
+ $radio-button-select-checked-border: 2px solid $color-charcoal5 !default;
56
+ $radio-button-select-checked-box-shadow: none !default;
57
+
58
+ $radio-border-transition: border-color .15s ease-in-out !default;
59
+
60
+ // Radio Button (radioOptionType = 'group')
61
+ $radio-group-border-color: $radio-button-border-color !default;
62
+ $radio-group-border-width: 1px !default;
63
+ $radio-group-border-radius: $radio-button-border-radius !default;
64
+ $radio-group-box-shadow: none !default;
65
+ $radio-group-button-font-size: 1rem !default;
66
+ $radio-group-button-height: 70px !default;
67
+ $radio-group-button-color: $radio-button-color !default;
68
+ // Checked
69
+ $radio-group-button-checked-background-color: $radio-button-checked-background-color !default;
70
+ $radio-group-button-checked-border: 2px solid $radio-button-checked-border-color !default;
71
+ $radio-group-button-checked-box-shadow: none !default;
72
+ $radio-group-button-checked-font-weight: 700 !default;
73
+ $radio-group-button-checked-color: $radio-group-button-color !default;
74
+ // Hover
75
+ $radio-group-button-hover-background-color: $radio-button-hover-background-color !default;
76
+ $radio-group-button-hover-color: $radio-group-button-color !default;
77
+
78
+ // Radio Button (radioOptionType = 'icon')
79
+ $radio-icon-checked-border-color: $radio-button-checked-border-color !default;
80
+ $radio-icon-border-radius: $radio-button-border-radius !default;
81
+ $radio-icon-checked-border-width: $radio-button-checked-border-width !default;
82
+ $radio-icon-height: 135px !default;
83
+ $radio-icon-margin: 0 3px 10px 0 !default;
84
+ $radio-icon-width: 32% !default;
85
+
86
+ // Radio Button (radioOptionType = 'backgroundImage')
87
+ $radio-background-color-checked-border-color: $radio-button-checked-border-color !default;
88
+ $radio-background-color-border-radius: 5px !default;
89
+ $radio-background-color-default-background-color: $color-charcoal4 !default;
90
+ $radio-background-color-height: 77px !default;
91
+ $radio-background-color-margin: 5px 4px !default;
92
+ $radio-background-color-margin-desktop: 5px 4px 13px !default;
93
+ $radio-background-color-width: calc(31% - 5px) !default;
94
+
95
+ // Radio Button (radioOptionType = 'custom')
96
+ $radio-custom-icon-background-color: $radio-button-checked-border-color !default;
97
+ $radio-custom-icon-border-radius: 50% !default;
98
+ $radio-custom-icon-color: $color-white !default;
99
+ $radio-custom-icon-content: '\e920' !default;
100
+ $radio-custom-icon-font-size: .875rem !default;
101
+ $radio-custom-icon-position: absolute !default;
102
+ $radio-custom-icon-position-left: 24px !default;
103
+ $radio-custom-icon-size: 30px !default;
104
+ $radio-custom-margin: 0 0 15px !default;
105
+ $radio-custom-min-height: 57px !default;
106
+ $radio-custom-min-height-desktop: 67px !default;
107
+ $radio-custom-padding: 5px 30px !default;
108
+ $radio-custom-text-align: center !default;
109
+
110
+ .radio {
111
+ margin: $radio-margin;
112
+ overflow: $radio-overflow;
113
+
114
+ &__button {
115
+ font-size: $radio-button-font-size;
116
+ margin: $radio-button-margin;
117
+ min-height: $radio-button-min-height;
118
+
119
+ label {
120
+ cursor: $radio-button-label-cursor;
121
+ display: $radio-button-label-display;
122
+ font-weight: $radio-button-font-weight;
123
+ line-height: $radio-button-line-height;
124
+ padding: $radio-button-padding;
125
+ position: relative;
126
+ text-align: $radio-button-text-align;
127
+
128
+ input[type=radio]{
129
+ position: $radio-button-input-position;
130
+ opacity: $radio-button-input-opacity;
131
+
132
+ + span {
133
+ background-color: $radio-button-select-background-color;
134
+ border: $radio-button-select-border;
135
+ border-radius: 50%;
136
+ box-shadow: $radio-button-select-box-shadow;
137
+ display: block;
138
+ height: $radio-button-select-size;
139
+ left: $radio-button-select-position-left;
140
+ position: absolute;
141
+ top: $radio-button-select-position-top;
142
+ width: $radio-button-select-size;
143
+ }
144
+
145
+ &:checked + span { // sass-lint:disable-line
146
+ background-color: $radio-button-select-checked-background-color;
147
+ border: $radio-button-select-checked-border;
148
+ box-shadow: $radio-button-select-checked-box-shadow;
149
+
150
+ &:empty {
151
+ transition: $base-transition;
152
+ }
153
+
154
+ &:after {
155
+ background: $radio-button-select-inner-circle-color;
156
+ border-radius: 50%;
157
+ content: '';
158
+ display: $radio-button-select-inner-circle-display;
159
+ position: $radio-button-select-inner-circle-position;
160
+ height: $radio-button-select-inner-circle-size;
161
+ left: $radio-button-select-inner-circle-position-left;
162
+ top: $radio-button-select-inner-circle-position-top;
163
+ width: $radio-button-select-inner-circle-size;
164
+ }
165
+
166
+ + span {
167
+ color: $radio-button-checked-color;
168
+ font-weight: $radio-button-checked-font-weight;
169
+
170
+ &::before {
171
+ background-color: $radio-button-checked-background-color;
172
+ border: $radio-button-checked-border-width solid $radio-button-checked-border-color;
173
+ box-shadow: $radio-button-checked-box-shadow;
174
+ }
175
+ }
176
+ }
177
+
178
+ &:focus {
179
+ + span + span {
180
+ &::before {
181
+ box-shadow: $radio-button-focus-box-shadow;
182
+ }
183
+ }
184
+ }
185
+ }
186
+
187
+ &:hover {
188
+ input:not(:checked) + span + .radio__button-text { // sass-lint:disable-line
189
+ color: $radio-button-hover-color;
190
+
191
+ &::before {
192
+ background-color: $radio-button-hover-background-color;
193
+ border: $radio-button-hover-border-width solid $radio-button-hover-border-color;
194
+ }
195
+ }
196
+ }
197
+ }
198
+
199
+ &:last-child {
200
+ margin-bottom: 0;
201
+ }
202
+ }
203
+
204
+ &__button-text {
205
+ color: $radio-button-color;
206
+ transition: $base-transition;
207
+
208
+ &::before {
209
+ background-color: $radio-button-background-color;
210
+ border: $radio-button-border-width solid $radio-button-border-color;
211
+ border-radius: $radio-button-border-radius;
212
+ content: '';
213
+ height: 100%;
214
+ left: 0;
215
+ position: absolute;
216
+ top: 0;
217
+ transition: $base-transition;
218
+ width: 100%;
219
+ z-index: -1;
220
+ }
221
+ }
222
+
223
+ &__group,
224
+ &--icon,
225
+ &--backgroundImage,
226
+ &--custom {
227
+ .radio__button {
228
+ label {
229
+ padding: 0;
230
+ text-align: $radio-custom-text-align;
231
+
232
+ input[type=radio] {
233
+ + span {
234
+ background: none;
235
+ border: 0;
236
+ border-radius: 0;
237
+ box-shadow: none;
238
+ display: block;
239
+ height: auto;
240
+ left: 0;
241
+ position: unset;
242
+ text-align: center;
243
+ top: unset;
244
+ width: auto;
245
+ }
246
+
247
+ &:checked {
248
+ + span {
249
+ background: none;
250
+ border: 0;
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+ }
257
+
258
+ &__group,
259
+ &--backgroundImage,
260
+ &--icon {
261
+ overflow: hidden;
262
+ user-select: none;
263
+
264
+ .radio__button {
265
+ border-radius: $radio-icon-border-radius;
266
+ display: inline-flex;
267
+ flex-direction: column;
268
+ justify-content: center;
269
+ margin: $radio-icon-margin;
270
+ position: relative;
271
+ text-align: center;
272
+ vertical-align: top;
273
+ width: $radio-icon-width;
274
+
275
+ label {
276
+ input[type=radio] {
277
+ + span {
278
+ &::before,
279
+ &::after {
280
+ display: none;
281
+ }
282
+ }
283
+ }
284
+ }
285
+
286
+ .radio__buton-text {
287
+ &::before {
288
+ display: none;
289
+ }
290
+ }
291
+ }
292
+ }
293
+
294
+ &__group {
295
+ border: $radio-group-border-width solid $radio-group-border-color;
296
+ border-radius: $radio-group-border-radius;
297
+ box-shadow: $radio-group-box-shadow;
298
+ display: flex;
299
+
300
+ .radio__button {
301
+ border: 0;
302
+ border-radius: 0;
303
+ height: $radio-group-button-height;
304
+ margin: 0;
305
+ width: 100%;
306
+
307
+ label {
308
+ height: 100%;
309
+ min-height: 0;
310
+
311
+ input[type=radio] {
312
+ + span {
313
+ align-items: center;
314
+ color: $radio-group-button-color;
315
+ display: flex;
316
+ font-size: $radio-group-button-font-size;
317
+ font-weight: normal;
318
+ height: 100%;
319
+ justify-content: center;
320
+ transition: all .15s linear;
321
+ }
322
+
323
+ &:checked {
324
+ + span {
325
+ background-color: $radio-group-button-checked-background-color;
326
+ border: $radio-group-button-checked-border;
327
+ box-shadow: $radio-group-button-checked-box-shadow;
328
+ color: $radio-group-button-checked-color;
329
+ font-weight: $radio-group-button-checked-font-weight;
330
+ }
331
+ }
332
+ }
333
+
334
+ &:hover {
335
+ input[type=radio]:not(:checked) + span { // sass-lint:disable-line
336
+ background-color: $radio-group-button-hover-background-color;
337
+ color: $radio-group-button-hover-color;
338
+ }
339
+ }
340
+ }
341
+
342
+ ~ .radio__button {
343
+ border-left: $radio-group-border-width solid $radio-group-border-color;
344
+ }
345
+ }
346
+ }
347
+
348
+ &--icon {
349
+ display: flex;
350
+ flex-wrap: wrap;
351
+ justify-content: space-between;
352
+
353
+ .radio__button {
354
+ border: 0;
355
+ height: $radio-icon-height;
356
+ line-height: 12px;
357
+ position: relative;
358
+
359
+ label {
360
+ display: inline-flex;
361
+ flex-direction: column;
362
+ height: 100%;
363
+ justify-content: center;
364
+
365
+ input[type=radio]:checked + .tile .tile__text::before { // sass-lint:disable-line
366
+ border: $radio-icon-checked-border-width solid $radio-icon-checked-border-color;
367
+ }
368
+ }
369
+ }
370
+ }
371
+
372
+ &--backgroundImage {
373
+ padding: 0 1px;
374
+
375
+ .radio__button {
376
+ background-color: $radio-background-color-default-background-color;
377
+ border-radius: $radio-background-color-border-radius;
378
+ height: $radio-background-color-height;
379
+ margin: $radio-background-color-margin;
380
+ width: $radio-background-color-width;
381
+
382
+ input:checked {
383
+ + .tile .tile__background-image {
384
+ &::before {
385
+ border-color: $radio-background-color-checked-border-color;
386
+ }
387
+ }
388
+ }
389
+
390
+ label {
391
+ align-items: center;
392
+ display: flex;
393
+ height: 100%;
394
+ justify-content: center;
395
+ }
396
+ }
397
+ }
398
+
399
+ &--custom {
400
+ .radio__button {
401
+ min-height: $radio-custom-min-height;
402
+
403
+ label {
404
+ align-items: center;
405
+ display: flex;
406
+ justify-content: center;
407
+ min-height: inherit;
408
+ padding: $radio-custom-padding;
409
+ position: relative;
410
+
411
+ input[type=radio] {
412
+ + span {
413
+ color: $radio-button-color;
414
+ line-height: $radio-button-line-height;
415
+
416
+ &::before {
417
+ background-color: $radio-button-background-color;
418
+ border: $radio-button-border-width solid $radio-button-border-color;
419
+ border-radius: $radio-button-border-radius;
420
+ height: 100%;
421
+ left: 0;
422
+ opacity: 1;
423
+ position: absolute;
424
+ top: 0;
425
+ transition: $base-transition;
426
+ width: 100%;
427
+ z-index: -1;
428
+ }
429
+
430
+ &::after {
431
+ display: none;
432
+ }
433
+
434
+ + span {
435
+ background-color: $radio-custom-icon-background-color;
436
+ border-radius: $radio-custom-icon-border-radius;
437
+ height: $radio-custom-icon-size;
438
+ left: $radio-custom-icon-position-left;
439
+ opacity: 0;
440
+ position: $radio-custom-icon-position;
441
+ transition: $base-transition;
442
+ width: $radio-custom-icon-size;
443
+
444
+ &::before {
445
+ @include icon-fill;
446
+ background: transparent;
447
+ border: 0;
448
+ color: $radio-custom-icon-color;
449
+ content: $radio-custom-icon-content;
450
+ display: block;
451
+ font-size: $radio-custom-icon-font-size;
452
+ line-height: $radio-custom-icon-size;
453
+ z-index: 2;
454
+ }
455
+ }
456
+ }
457
+
458
+ &:checked {
459
+ + span {
460
+ color: $radio-button-checked-color;
461
+ font-weight: $radio-button-checked-font-weight;
462
+
463
+ &::before {
464
+ background-color: $radio-button-checked-background-color;
465
+ border: $radio-button-checked-border-width solid $radio-button-checked-border-color;
466
+ }
467
+
468
+ + span {
469
+ opacity: 1;
470
+ }
471
+ }
472
+ }
473
+
474
+ &:focus {
475
+ + span {
476
+ &::before {
477
+ box-shadow: $radio-button-focus-box-shadow;
478
+ }
479
+
480
+ + span {
481
+ &:before {
482
+ box-shadow: none;
483
+ }
484
+ }
485
+ }
486
+ }
487
+ }
488
+
489
+ &:hover {
490
+ input:not(:checked) + span {
491
+ color: $radio-button-hover-color;
492
+
493
+ &::before {
494
+ background-color: $radio-button-hover-background-color;
495
+ border: $radio-button-hover-border-width solid $radio-button-hover-border-color;
496
+ }
497
+
498
+ + span {
499
+ opacity: 1;
500
+ }
501
+ }
502
+ }
503
+ }
504
+ }
505
+ }
506
+ }
507
+
508
+ .has-error, .has-error label:hover { // sass-lint:disable-line
509
+ input:not(:checked) + span + .radio__button-text { // sass-lint:disable-line
510
+ color: $radio-button-error-color;
511
+
512
+ &::before {
513
+ border-color: $radio-button-error-color;
514
+ }
515
+ }
516
+ }
517
+
518
+ @include breakpoint-md {
519
+ .radio {
520
+ &--custom {
521
+ .radio__button {
522
+ min-height: $radio-custom-min-height-desktop;
523
+ }
524
+ }
525
+
526
+ &--backgroundImage {
527
+ .radio__button {
528
+ margin: $radio-background-color-margin-desktop;
529
+ }
530
+ }
531
+
532
+ &__button {
533
+ font-size: $radio-button-font-size-desktop;
534
+ }
535
+ }
536
+ }
537
+
@@ -0,0 +1,34 @@
1
+ {{#if this.field}}
2
+ <fieldset class="radio{{#if this.field.radioOptionType}} radio--{{this.field.radioOptionType}}{{/if}}{{#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}}}>{{{this.field.legend.text}}}</legend>
5
+ {{/if}}
6
+ {{#xif "this.field.radioOptionType === 'group'"}}
7
+ <div class="radio__group">
8
+ {{/xif}}
9
+ {{#each this.field.options}}
10
+ <div class="radio__button{{#xif "this.wrapper && this.wrapper.attributes && this.wrapper.attributes.class"}} {{this.wrapper.attributes.class}}{{/xif}}" {{#if this.wrapper}}{{{addAttributes this.wrapper 'class'}}}{{/if}}>
11
+ <label class="radio__button-label" for="{{this.attributes.id}}">
12
+ <input id="{{this.attributes.id}}" type="radio"
13
+ {{{addAttributes this 'id' 'type'}}} />
14
+ {{#unless ../this.field.radioOptionType}}
15
+ <span class="radio__button-select"></span>
16
+ {{/unless}}
17
+ {{#xif "this.backgroundImage || this.picture"}}
18
+ {{fileInclude 'src/accessible-components/tile/tile.html'
19
+ field = this
20
+ }}
21
+ {{else}}
22
+ <span class="radio__button-text">{{{this.text}}}</span>
23
+ {{#if ../this.field.radioOptionType}}
24
+ <span class="radio__custom-select"></span>
25
+ {{/if}}
26
+ {{/xif}}
27
+ </label>
28
+ </div>
29
+ {{/each}}
30
+ {{#xif "this.field.radioOptionType === 'group'"}}
31
+ </div>
32
+ {{/xif}}
33
+ </fieldset>
34
+ {{/if}}