bhl-forms 0.11.12 → 0.11.14

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 (109) hide show
  1. package/dist/forms/accidentsAndInjuries.es.js +7 -7
  2. package/dist/forms/accidentsAndInjuries.iife.js +1 -1
  3. package/dist/forms/accidentsAndInjuries.json +1 -1
  4. package/dist/forms/applianceRepairMinimal.es.js +68 -74
  5. package/dist/forms/applianceRepairMinimal.iife.js +1 -1
  6. package/dist/forms/applianceRepairMinimal.json +1 -1
  7. package/dist/forms/business.es.js +15 -15
  8. package/dist/forms/business.iife.js +1 -1
  9. package/dist/forms/business.json +1 -1
  10. package/dist/forms/childAndFamily.es.js +15 -15
  11. package/dist/forms/childAndFamily.iife.js +1 -1
  12. package/dist/forms/childAndFamily.json +1 -1
  13. package/dist/forms/childAndFamilySingle.es.js +15 -15
  14. package/dist/forms/childAndFamilySingle.iife.js +1 -1
  15. package/dist/forms/childAndFamilySingle.json +1 -1
  16. package/dist/forms/civilLawsuit.es.js +15 -15
  17. package/dist/forms/civilLawsuit.iife.js +1 -1
  18. package/dist/forms/civilLawsuit.json +1 -1
  19. package/dist/forms/civilLawsuit1to1.es.js +7 -7
  20. package/dist/forms/civilLawsuit1to1.iife.js +1 -1
  21. package/dist/forms/civilLawsuit1to1.json +1 -1
  22. package/dist/forms/contracts.es.js +15 -15
  23. package/dist/forms/contracts.iife.js +1 -1
  24. package/dist/forms/contracts.json +1 -1
  25. package/dist/forms/criminal.es.js +15 -15
  26. package/dist/forms/criminal.iife.js +1 -1
  27. package/dist/forms/criminal.json +1 -1
  28. package/dist/forms/divorce.es.js +15 -15
  29. package/dist/forms/divorce.iife.js +1 -1
  30. package/dist/forms/divorce.json +1 -1
  31. package/dist/forms/employmentAndWorkplace.es.js +15 -15
  32. package/dist/forms/employmentAndWorkplace.iife.js +1 -1
  33. package/dist/forms/employmentAndWorkplace.json +1 -1
  34. package/dist/forms/foreclosure.es.js +8 -8
  35. package/dist/forms/foreclosure.iife.js +1 -1
  36. package/dist/forms/foreclosure.json +1 -1
  37. package/dist/forms/generalContractors.es.js +175 -129
  38. package/dist/forms/generalContractors.iife.js +1 -1
  39. package/dist/forms/generalContractors.json +1 -1
  40. package/dist/forms/generalHomeImprovement.es.js +184 -127
  41. package/dist/forms/generalHomeImprovement.iife.js +1 -1
  42. package/dist/forms/generalHomeImprovement.json +1 -1
  43. package/dist/forms/generalHomeImprovementThankYou.es.js +99 -121
  44. package/dist/forms/generalHomeImprovementThankYou.iife.js +1 -1
  45. package/dist/forms/generalHomeImprovementThankYou.json +1 -1
  46. package/dist/forms/generalLegal.es.js +15 -15
  47. package/dist/forms/generalLegal.iife.js +1 -1
  48. package/dist/forms/generalLegal.json +1 -1
  49. package/dist/forms/generalLegalJustAnswer.es.js +15 -15
  50. package/dist/forms/generalLegalJustAnswer.iife.js +1 -1
  51. package/dist/forms/generalLegalJustAnswer.json +1 -1
  52. package/dist/forms/generalLegalPopUnder.es.js +15 -15
  53. package/dist/forms/generalLegalPopUnder.iife.js +1 -1
  54. package/dist/forms/generalLegalPopUnder.json +1 -1
  55. package/dist/forms/generalLegalPopUnderSingle.es.js +15 -15
  56. package/dist/forms/generalLegalPopUnderSingle.iife.js +1 -1
  57. package/dist/forms/generalLegalPopUnderSingle.json +1 -1
  58. package/dist/forms/generalLegalSingle.es.js +15 -15
  59. package/dist/forms/generalLegalSingle.iife.js +1 -1
  60. package/dist/forms/generalLegalSingle.json +1 -1
  61. package/dist/forms/generalLegalSingle1to1.es.js +7 -7
  62. package/dist/forms/generalLegalSingle1to1.iife.js +1 -1
  63. package/dist/forms/generalLegalSingle1to1.json +1 -1
  64. package/dist/forms/generalLegalSingleMinimal.es.js +7 -7
  65. package/dist/forms/generalLegalSingleMinimal.iife.js +1 -1
  66. package/dist/forms/generalLegalSingleMinimal.json +1 -1
  67. package/dist/forms/generalLegalThankYou.es.js +7 -7
  68. package/dist/forms/generalLegalThankYou.iife.js +1 -1
  69. package/dist/forms/generalLegalThankYou.json +1 -1
  70. package/dist/forms/generalLegalThankYouConsultation.es.js +15 -15
  71. package/dist/forms/generalLegalThankYouConsultation.iife.js +1 -1
  72. package/dist/forms/generalLegalThankYouConsultation.json +1 -1
  73. package/dist/forms/harassmentAndDiscrimination.es.js +15 -15
  74. package/dist/forms/harassmentAndDiscrimination.iife.js +1 -1
  75. package/dist/forms/harassmentAndDiscrimination.json +1 -1
  76. package/dist/forms/landlordTenant.es.js +15 -15
  77. package/dist/forms/landlordTenant.iife.js +1 -1
  78. package/dist/forms/landlordTenant.json +1 -1
  79. package/dist/forms/malpractice.es.js +15 -15
  80. package/dist/forms/malpractice.iife.js +1 -1
  81. package/dist/forms/malpractice.json +1 -1
  82. package/dist/forms/mechanics.es.js +9 -7
  83. package/dist/forms/mechanics.iife.js +1 -1
  84. package/dist/forms/mechanics.json +1 -1
  85. package/dist/forms/patentsAndIP.es.js +15 -15
  86. package/dist/forms/patentsAndIP.iife.js +1 -1
  87. package/dist/forms/patentsAndIP.json +1 -1
  88. package/dist/forms/realEstate.es.js +15 -15
  89. package/dist/forms/realEstate.iife.js +1 -1
  90. package/dist/forms/realEstate.json +1 -1
  91. package/dist/forms/repossession.es.js +15 -15
  92. package/dist/forms/repossession.iife.js +1 -1
  93. package/dist/forms/repossession.json +1 -1
  94. package/dist/forms/ssdi.es.js +7 -7
  95. package/dist/forms/ssdi.iife.js +1 -1
  96. package/dist/forms/ssdi.json +1 -1
  97. package/dist/forms/testForm.es.js +7 -7
  98. package/dist/forms/testForm.iife.js +1 -1
  99. package/dist/forms/testForm.json +1 -1
  100. package/dist/forms/willsAndTrusts.es.js +15 -15
  101. package/dist/forms/willsAndTrusts.iife.js +1 -1
  102. package/dist/forms/willsAndTrusts.json +1 -1
  103. package/dist/forms/windows.es.js +67 -65
  104. package/dist/forms/windows.iife.js +1 -1
  105. package/dist/forms/windows.json +1 -1
  106. package/dist/forms/workersCompensation.es.js +8 -8
  107. package/dist/forms/workersCompensation.iife.js +1 -1
  108. package/dist/forms/workersCompensation.json +1 -1
  109. package/package.json +1 -1
@@ -9,13 +9,13 @@ function HomeImprovementRedirectUrl() {
9
9
  const DEFAULT_COMMENTS_LABEL = "Please briefly describe your issue in a few words:";
10
10
  const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC =
11
11
  '$getKey($meta, "commentsPlaceholders." + $get(Category).value, $meta.defaultCommentsPlaceholder)';
12
- const DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL =
13
- '$getKey($meta, "finalHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalHeadline)';
14
- const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL =
15
- '$getKey($meta, "finalSubHeadlines." + $get(Type_Of_Legal_Problem).value, $meta.defaultFinalSubHeadline)';
12
+ const DEFAULT_FINAL_HEADLINE_DYNAMIC =
13
+ '$getKey($meta, "finalHeadlines." + ($get(Type_Of_Legal_Problem).value || $get(Category).value), $meta.defaultFinalHeadline)';
14
+ const DEFAULT_FINAL_SUBHEADLINE_DYNAMIC =
15
+ '$getKey($meta, "finalSubHeadlines." + ($get(Type_Of_Legal_Problem).value || $get(Category).value), $meta.defaultFinalSubHeadline)';
16
16
 
17
17
  const DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC_HOME_IMPROVEMENT = DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC;
18
- const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Contractors!";
18
+ const DEFAULT_FINAL_HEADLINE_HOME_IMPROVEMENT = "We Found Matching Contractors!";
19
19
  const DEFAULT_FINAL_SUBHEADLINE_HOME_IMPROVEMENT = "Compare quotes and save. Verify contact info:";
20
20
  // This version has a link to a providers page, starting without that
21
21
  // export const TCPA_LANGUAGE_HOME_IMPROVEMENT =
@@ -271,14 +271,11 @@ const address$1 = (scope, vertical, updates = {}) => {
271
271
  })
272
272
  };
273
273
 
274
- const email = (scope, vertical, updates = {}) => {
275
- const func = vertical ? verticalText : sbsText;
276
- const label = vertical ? updates.label : "Email Address:";
277
- return func({
278
- $formkit: "email",
274
+ const emailFL = (scope, updates = {}) => {
275
+ return text({
276
+ $formkit: "FloatingLabelText",
279
277
  name: scope ? scope + ":" + "Email" : "Email",
280
- label,
281
- placeholder: "email@domain.com",
278
+ placeholder: "Email Address",
282
279
  autocomplete: "email",
283
280
  "data-tf-sensitive": "false",
284
281
  validation: "required|email",
@@ -286,59 +283,72 @@ const email = (scope, vertical, updates = {}) => {
286
283
  required: "Email is required",
287
284
  email: "Invalid Email",
288
285
  },
286
+ inputClass: "t-text-center",
287
+ wrapperClass: "t-flex t-justify-center",
289
288
  ...updates,
290
289
  })
291
290
  };
292
291
 
293
- const firstName = (scope, vertical, updates = {}) => {
294
- const func = vertical ? verticalText : sbsText;
295
- const label = vertical ? updates.label : "First Name:";
296
- return func({
297
- label,
292
+ const firstNameFL = (scope, updates = {}) => {
293
+ return text({
294
+ $formkit: "FloatingLabelText",
298
295
  placeholder: "First Name",
299
296
  name: scope ? scope + ":" + "First_Name" : "First_Name",
300
297
  autocomplete: "given-name",
301
298
  validationMessages: {
302
299
  required: "First Name is required",
303
300
  },
301
+ inputClass: "t-text-center",
304
302
  ...updates,
305
303
  })
306
304
  };
307
305
 
308
- const lastName = (scope, vertical, updates = {}) => {
309
- const func = vertical ? verticalText : sbsText;
310
- const label = vertical ? updates.label : "Last Name:";
311
- return func({
312
- label,
306
+ const lastNameFL = (scope, updates = {}) => {
307
+ return text({
308
+ $formkit: "FloatingLabelText",
313
309
  placeholder: "Last Name",
314
310
  name: scope ? scope + ":" + "Last_Name" : "Last_Name",
315
311
  autocomplete: "family-name",
316
312
  validationMessages: {
317
313
  required: "Last Name is required",
318
314
  },
315
+ inputClass: "t-text-center",
319
316
  ...updates,
320
317
  })
321
318
  };
322
319
 
323
- const phone = (scope, vertical, updates = {}) => {
324
- const func = vertical ? verticalText : sbsText;
325
- const label = vertical ? updates.label : "Phone Number:";
326
- return func({
327
- $formkit: "tel",
320
+ const fullNameFLMobileCol = (scope, updates = {}) => {
321
+ return {
322
+ $el: "div",
323
+ attrs: {
324
+ class: "t-flex t-flex-col sm:t-flex-row t-flex-wrap t-gap-x-[2%] t-justify-center sm:!t-max-w-[70%]",
325
+ },
326
+ children: [
327
+ firstNameFL(scope, { outerClass: "sm:!t-max-w-[49%]", ...updates }),
328
+ lastNameFL(scope, { outerClass: "sm:!t-max-w-[49%]", ...updates }),
329
+ ],
330
+ }
331
+ };
332
+
333
+ const phoneFL = (scope, updates = {}) => {
334
+ return text({
335
+ $formkit: "FloatingLabelText",
336
+ datatype: "tel",
328
337
  name: scope ? scope + ":" + "Primary_Phone" : "Primary_Phone",
329
- label,
330
- placeholder: updates.placeholder || "###-###-####",
331
- maxlength: 12,
332
- help: updates.help || "10-digit phone number, hyphens optional",
338
+ placeholder: updates.placeholder || "Phone Number",
339
+ maxlength: 14,
340
+ help: updates.help || null,
333
341
  autocomplete: "tel-national",
334
342
  "data-tf-sensitive": "false",
335
- validation: "required|matches:/^[0-9]{3}-?[0-9]{3}-?[0-9]{4}$/|valid_phone",
343
+ validation: "required|matches:/^[0-9]{3}[0-9]{3}[0-9]{4}$/|valid_phone",
336
344
  validationMessages: {
337
345
  required: "Phone Number is required",
338
- matches: "Invalid Phone Format, use ###-###-####",
346
+ matches: "Invalid Phone Format, use (XXX) YYY-ZZZZ",
339
347
  valid_phone: "Invalid Phone Number",
340
348
  },
341
349
  helpClass: "t-mt-2.5 md:t-text-right md:t-mt-[-2px]",
350
+ inputClass: "t-text-center",
351
+ wrapperClass: "t-flex t-justify-center",
342
352
  ...updates,
343
353
  })
344
354
  };
@@ -824,6 +834,24 @@ function secureIcon(updates = {}) {
824
834
  return merge(secureIconDefault, updates)
825
835
  }
826
836
 
837
+ function secureIconStandalone(updates = {}) {
838
+ return {
839
+ if: "$activeStep === $lastStep()",
840
+ style: {
841
+ if: "$activeStep !== $lastStep()",
842
+ then: "display: none;",
843
+ },
844
+ children: [
845
+ secureIcon({
846
+ attrs: {
847
+ class: "t-flex t-justify-center t-items-center t-text-sm t-text-gray-500 t-pb-6 sm:t-pb-8",
848
+ },
849
+ ...updates,
850
+ }),
851
+ ],
852
+ }
853
+ }
854
+
827
855
  function crossSellQuestionsStepHeadline(updates) {
828
856
  return {
829
857
  $el: "h3",
@@ -847,19 +875,6 @@ function verticalStepHeadline(updates) {
847
875
  }
848
876
  }
849
877
 
850
- function verticalStepSubHeadline(updates) {
851
- return {
852
- $el: "h5",
853
- children: updates.subheadline || "",
854
- attrs: {
855
- class:
856
- "t-flex t-justify-center t-text-center !t-text-lg t-font-normal t-text-dark t-pb-5 t-pt-0 t-px-1" +
857
- " " +
858
- (updates.subheadlineClass || ""),
859
- },
860
- }
861
- }
862
-
863
878
  function commentsStepHeadline(updates) {
864
879
  return {
865
880
  $el: "h3",
@@ -889,7 +904,7 @@ function firstAndLastStepHeadline(updates) {
889
904
  function contactStepHeadline(updates) {
890
905
  return {
891
906
  $el: "h3",
892
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
907
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
893
908
  attrs: {
894
909
  class:
895
910
  "t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-3 t-pt-4 t-px-1" +
@@ -903,7 +918,7 @@ function contactStepHeadline(updates) {
903
918
  function contactStepSubHeadline(updates) {
904
919
  return {
905
920
  $el: "h5",
906
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
921
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
907
922
  attrs: {
908
923
  class:
909
924
  "t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-6 t-pt-0 t-px-3" +
@@ -1024,29 +1039,48 @@ function commentsHeadline(updates = {}) {
1024
1039
  label: typeof updates.label === "undefined" ? DEFAULT_COMMENTS_LABEL : updates.label,
1025
1040
  placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1026
1041
  inputClass: typeof updates.inputClass === "undefined" ? "!t-h-32" : updates.inputClass,
1042
+ innerClass: typeof updates.innerClass === "undefined" ? "t-max-w-xl" : updates.innerClass,
1043
+ wrapperClass: typeof updates.wrapperClass === "undefined" ? undefined : updates.wrapperClass,
1027
1044
  }),
1028
1045
  ],
1029
1046
  mergedUpdates
1030
1047
  )
1031
1048
  }
1032
1049
 
1033
- function contactInfo(updates = {}) {
1050
+ function contactInfoV2(updates = {}) {
1034
1051
  return step(
1035
1052
  "contactInfo",
1036
1053
  [
1037
1054
  contactStepHeadline(updates),
1038
1055
  contactStepSubHeadline(updates),
1039
1056
  trustedFormScript(),
1040
- email(updates.scope),
1041
- phone(updates.scope),
1042
- TCPAConsent(updates.scope),
1043
- secureIcon(),
1057
+ {
1058
+ $el: "div",
1059
+ attrs: {
1060
+ class: "t-flex t-flex-col t-justify-center t-items-center",
1061
+ },
1062
+ children: [
1063
+ emailFL(updates.scope, {
1064
+ outerClass: "!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",
1065
+ innerClass: "!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]",
1066
+ }),
1067
+ phoneFL(updates.scope, {
1068
+ outerClass: "!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",
1069
+ innerClass: "!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]",
1070
+ }),
1071
+ ],
1072
+ },
1073
+ TCPAConsent(updates.scope, {
1074
+ outerClass: "!t-flex !t-flex-col !t-justify-center !t-items-center",
1075
+ wrapperClass: "t-w-[95%] sm:t-w-[80%]",
1076
+ messagesClass: "t-w-[95%] sm:t-w-[80%]",
1077
+ }),
1044
1078
  ],
1045
1079
  { nextOnEnter: false }
1046
1080
  )
1047
1081
  }
1048
1082
 
1049
- function firstAndLastV3(updates = {}) {
1083
+ function firstAndLastV4(updates = {}) {
1050
1084
  return step(
1051
1085
  "firstAndLast",
1052
1086
  [
@@ -1054,12 +1088,13 @@ function firstAndLastV3(updates = {}) {
1054
1088
  headline: updates.headline ?? "Who is looking for help?",
1055
1089
  headlineClass: updates.headlineClass,
1056
1090
  }),
1057
- verticalStepSubHeadline({
1058
- subheadline: updates.subheadline ?? "We never share info without consent",
1059
- subheadlineClass: "!t-text-sm !t-text-gray-500",
1060
- }),
1061
- firstName(updates.scope),
1062
- lastName(updates.scope),
1091
+ {
1092
+ $el: "div",
1093
+ attrs: {
1094
+ class: "t-flex t-flex-col t-justify-center t-items-center t-pt-3",
1095
+ },
1096
+ children: [fullNameFLMobileCol(updates.scope)],
1097
+ },
1063
1098
  ],
1064
1099
  updates
1065
1100
  )
@@ -1074,7 +1109,7 @@ function zipcode(updates = {}) {
1074
1109
  function homeImprovementCrossSellsStepHeadline(updates) {
1075
1110
  return {
1076
1111
  $el: "h3",
1077
- children: updates.headline || "Interested in free quotes for other projects?",
1112
+ children: updates.headline || "Do you need quotes for other projects?",
1078
1113
  attrs: {
1079
1114
  class:
1080
1115
  "t-flex t-justify-center t-text-center t-text-2xl t-font-bold t-text-blue-500 t-pb-5 t-pt-0 t-px-1" +
@@ -1223,13 +1258,17 @@ function generalContractorFirstStep(updates = {}) {
1223
1258
  )
1224
1259
  }
1225
1260
 
1226
- const formNavigation = (updates = {}) => ({
1261
+ const formNavigationNoFinalBack = (updates = {}) => ({
1227
1262
  $el: "div",
1228
1263
  attrs: {
1229
1264
  class: {
1230
1265
  if: "$activeStep === $firstStep()",
1231
1266
  then: "step-nav " + (updates.firstStepButtonClass || "!t-justify-center sm:!t-justify-between"),
1232
- else: "step-nav !t-justify-between",
1267
+ else: {
1268
+ if: "$activeStep === $lastStep()",
1269
+ then: "step-nav !t-justify-center ",
1270
+ else: "step-nav !t-justify-between",
1271
+ },
1233
1272
  },
1234
1273
  },
1235
1274
  children: [
@@ -1239,12 +1278,12 @@ const formNavigation = (updates = {}) => ({
1239
1278
  onClick: "$setPreviousStep($prevStepFunc($get(form)))",
1240
1279
  children: "Back",
1241
1280
  outerClass: {
1242
- if: "$activeStep === $firstStep()",
1281
+ if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
1243
1282
  then: "t-hidden sm:t-block",
1244
1283
  else: "",
1245
1284
  },
1246
1285
  style: {
1247
- if: "$activeStep === $firstStep()",
1286
+ if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
1248
1287
  then: "display: none;",
1249
1288
  },
1250
1289
  classes: {
@@ -1283,7 +1322,8 @@ const formNavigation = (updates = {}) => ({
1283
1322
  then: "display: none;",
1284
1323
  },
1285
1324
  classes: {
1286
- input: (updates.inputClass || "") + " !t-ml-2 sm:!t-ml-auto f-navigation-input",
1325
+ input: (updates.inputClass || "") + " f-navigation-input !t-w-60",
1326
+ outer: "!t-mt-0 !t-mb-0",
1287
1327
  },
1288
1328
  },
1289
1329
  ],
@@ -2040,7 +2080,7 @@ const HomeImprovementCommentsPlaceholders = {
2040
2080
 
2041
2081
  const HomeImprovementFinalHeadlines = {
2042
2082
  // 'Additions': '',
2043
- Appliances: "We Have Appliance Pros Standing By!",
2083
+ // Appliances: "We Have Appliance Pros Standing By!",
2044
2084
  // 'Appraisals': '',
2045
2085
  // 'Cabinets': '',
2046
2086
  // 'Carpentry': '',
@@ -2057,7 +2097,7 @@ const HomeImprovementFinalHeadlines = {
2057
2097
  // 'Flooring': '',
2058
2098
  // 'Foundations': '',
2059
2099
  // 'Garage Doors': '',
2060
- // 'General Contractors': '',
2100
+ // "General Contractors": "Connect With Top Contractors!",
2061
2101
  // 'Gutters': '',
2062
2102
  // 'Handyman': '',
2063
2103
  // 'Holiday Decorators': '',
@@ -2083,7 +2123,7 @@ const HomeImprovementFinalHeadlines = {
2083
2123
  // 'Pools': '',
2084
2124
  // 'Plumbing': '',
2085
2125
  // 'Pressure Washing': '',
2086
- // 'Remodeling': '',
2126
+ // Remodeling: "Connect With Top Remodelers!",
2087
2127
  // 'Roofing': '',
2088
2128
  // 'Sheds': '',
2089
2129
  // 'Siding': '',
@@ -2096,60 +2136,60 @@ const HomeImprovementFinalHeadlines = {
2096
2136
  };
2097
2137
 
2098
2138
  const HomeImprovementFinalSubHeadlines = {
2099
- // 'Additions': '',
2100
- Appliances: "Who needs appliance help?",
2101
- // 'Appraisals': '',
2102
- // 'Cabinets': '',
2103
- // 'Carpentry': '',
2104
- // 'Carpets': '',
2105
- // 'Cleaning': '',
2106
- // 'Countertops': '',
2107
- // 'Decks and Porches': '',
2108
- // 'Demolition': '',
2109
- // 'Doors': '',
2110
- // 'Driveways': '',
2111
- // 'Drywall and Plaster': '',
2112
- // 'Electrical': '',
2113
- // 'Fencing': '',
2114
- // 'Flooring': '',
2115
- // 'Foundations': '',
2116
- // 'Garage Doors': '',
2117
- // 'General Contractors': '',
2118
- // 'Gutters': '',
2119
- // 'Handyman': '',
2120
- // 'Holiday Decorators': '',
2121
- // 'Smart Home': '',
2122
- // 'Home Builders': '',
2123
- // 'Home Inspection': '',
2124
- // 'Home Organization': '',
2125
- // 'Home Security': '',
2126
- // 'Home Staging': '',
2127
- // 'Home Theater': '',
2128
- // 'Home Warranties': '',
2129
- // 'Hot Tubs': '',
2130
- // 'Heating and Cooling': '',
2131
- // 'Insulation': '',
2132
- // 'Junk Removal': '',
2133
- // 'Landscaping': '',
2134
- // 'Locksmiths': '',
2135
- // 'Masonry and Concrete': '',
2136
- // 'Restoration': '',
2137
- // 'Moving': '',
2138
- // 'Painting': '',
2139
- // 'Pest Control': '',
2140
- // 'Pools': '',
2141
- // 'Plumbing': '',
2142
- // 'Pressure Washing': '',
2143
- // 'Remodeling': '',
2144
- // 'Roofing': '',
2145
- // 'Sheds': '',
2146
- // 'Siding': '',
2147
- // 'Solar': '',
2148
- // 'Tiling': '',
2149
- // 'Walk-in Tubs': '',
2150
- // 'Waterproofing': '',
2151
- // 'Window Cleaning': '',
2152
- // 'Windows': '',
2139
+ Additions: "Get your dream addition started today!",
2140
+ Appliances: "Expert appliance repair and installation.",
2141
+ Appraisals: "Accurate home appraisals at your service.",
2142
+ Cabinets: "Transform your kitchen with new cabinets.",
2143
+ Carpentry: "Custom carpentry solutions for your home.",
2144
+ Carpets: "Upgrade your home with new carpets.",
2145
+ Cleaning: "Professional cleaning services for a spotless home.",
2146
+ Countertops: "Install beautiful countertops in your kitchen.",
2147
+ "Decks and Porches": "Build the perfect outdoor space.",
2148
+ Demolition: "Safe and efficient demolition services.",
2149
+ Doors: "Enhance your home with new doors.",
2150
+ Driveways: "Repair or install a new driveway.",
2151
+ "Drywall and Plaster": "Expert drywall and plaster services.",
2152
+ Electrical: "Reliable electrical services for your home.",
2153
+ Fencing: "Secure your property with new fencing.",
2154
+ Flooring: "Install stunning new floors.",
2155
+ Foundations: "Foundation repair and maintenance.",
2156
+ "Garage Doors": "Upgrade your garage with new doors.",
2157
+ "General Contractors": "Top contractors for your home projects.",
2158
+ Gutters: "Clean and repair your gutters.",
2159
+ Handyman: "Handyman services for all your needs.",
2160
+ "Holiday Decorators": "Get your home ready for the holidays.",
2161
+ "Smart Home": "Upgrade to a smart home today.",
2162
+ "Home Builders": "Build your custom dream home.",
2163
+ "Home Inspection": "Thorough home inspections for peace of mind.",
2164
+ "Home Organization": "Organize your home with expert help.",
2165
+ "Home Security": "Protect your home with a security system.",
2166
+ "Home Staging": "Stage your home for a quick sale.",
2167
+ "Home Theater": "Create the ultimate home theater.",
2168
+ "Home Warranties": "Get a warranty for your home.",
2169
+ "Hot Tubs": "Install a relaxing hot tub.",
2170
+ "Heating and Cooling": "HVAC repair and installation.",
2171
+ Insulation: "Improve your home's insulation.",
2172
+ "Junk Removal": "Remove unwanted junk from your property.",
2173
+ Landscaping: "Transform your yard with expert landscaping.",
2174
+ Locksmiths: "Professional locksmith services.",
2175
+ "Masonry and Concrete": "Expert masonry and concrete work.",
2176
+ Restoration: "Restore your home after damage.",
2177
+ Moving: "Reliable moving services.",
2178
+ Painting: "Professional painting services.",
2179
+ "Pest Control": "Effective pest control solutions.",
2180
+ Pools: "Install or repair your pool.",
2181
+ Plumbing: "Expert plumbing services.",
2182
+ "Pressure Washing": "Pressure wash your home's exterior.",
2183
+ Remodeling: "Remodel your home with top professionals.",
2184
+ Roofing: "Repair or replace your roof.",
2185
+ Sheds: "Build a new shed for extra storage.",
2186
+ Siding: "Upgrade your home's siding.",
2187
+ Solar: "Install solar panels and save on energy.",
2188
+ Tiling: "Install beautiful new tiles.",
2189
+ "Walk-in Tubs": "Install a convenient walk-in tub.",
2190
+ Waterproofing: "Waterproof your home to prevent damage.",
2191
+ "Window Cleaning": "Professional window cleaning services.",
2192
+ Windows: "Replace your windows with energy-efficient options.",
2153
2193
  };
2154
2194
 
2155
2195
  const nextStepsHomeImprovementDefault = [
@@ -2200,7 +2240,6 @@ const nextStepsMapHomeImprovementCrossSells = {
2200
2240
  const meta = defaultMetaPropsHomeImprovement();
2201
2241
 
2202
2242
  meta.data.dynamicSchema = [
2203
- zipcode(),
2204
2243
  timeframe(),
2205
2244
  ownHome(),
2206
2245
  address(),
@@ -2208,9 +2247,12 @@ meta.data.dynamicSchema = [
2208
2247
  label: null,
2209
2248
  headline: "Please briefly describe your project:",
2210
2249
  headlineClass: "!t-text-dark",
2250
+ wrapperClass: "t-flex t-justify-center",
2251
+ innerClass: "t-w-full",
2211
2252
  }),
2212
- firstAndLastV3({
2253
+ firstAndLastV4({
2213
2254
  headlineClass: "!t-text-dark",
2255
+ headline: "Who is looking for quotes?",
2214
2256
  }),
2215
2257
  // NOTE: commented out cross sells that currently aren't mapped
2216
2258
  // as options for GC.
@@ -2226,7 +2268,6 @@ meta.data.dynamicSchema = [
2226
2268
  paintingCrossSellQuestions(),
2227
2269
  // steps.pestControlCrossSellQuestions(),
2228
2270
  plumbingCrossSellQuestions(),
2229
- // steps.remodelingCrossSellQuestions(),
2230
2271
  roofingCrossSellQuestions(),
2231
2272
  // steps.sidingCrossSellQuestions(),
2232
2273
  // steps.windowsCrossSellQuestions(),
@@ -2274,14 +2315,19 @@ const schema = [
2274
2315
  },
2275
2316
  }),
2276
2317
  dynamicSchemaNode("Category"),
2277
- contactInfo({
2318
+ zipcode(),
2319
+ contactInfoV2({
2320
+ headline: '$:"We Found Pros in " + $get(Zip).value + "!"',
2278
2321
  headlineClass: "!t-text-[#465f87]",
2279
- subheadlineClass: "!t-text-[#353739]",
2322
+ subheadlineClass: "!t-text-base !t-text-[#353739]",
2280
2323
  }),
2281
- formNavigation({
2324
+ formNavigationNoFinalBack({
2282
2325
  startText: "Get Quotes",
2326
+ submitLabel: "Get Quotes",
2283
2327
  inputClass: "!t-text-black !t-font-extrabold !t-bg-[#ffce51]",
2328
+ firstStepButtonClass: "!t-justify-center",
2284
2329
  }),
2330
+ secureIconStandalone(),
2285
2331
  formDetails(),
2286
2332
  ],
2287
2333
  },