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
  };
@@ -1645,6 +1655,24 @@ function secureIcon(updates = {}) {
1645
1655
  return merge(secureIconDefault, updates)
1646
1656
  }
1647
1657
 
1658
+ function secureIconStandalone(updates = {}) {
1659
+ return {
1660
+ if: "$activeStep === $lastStep()",
1661
+ style: {
1662
+ if: "$activeStep !== $lastStep()",
1663
+ then: "display: none;",
1664
+ },
1665
+ children: [
1666
+ secureIcon({
1667
+ attrs: {
1668
+ class: "t-flex t-justify-center t-items-center t-text-sm t-text-gray-500 t-pb-6 sm:t-pb-8",
1669
+ },
1670
+ ...updates,
1671
+ }),
1672
+ ],
1673
+ }
1674
+ }
1675
+
1648
1676
  function crossSellQuestionsStepHeadline(updates) {
1649
1677
  return {
1650
1678
  $el: "h3",
@@ -1668,19 +1696,6 @@ function verticalStepHeadline(updates) {
1668
1696
  }
1669
1697
  }
1670
1698
 
1671
- function verticalStepSubHeadline(updates) {
1672
- return {
1673
- $el: "h5",
1674
- children: updates.subheadline || "",
1675
- attrs: {
1676
- class:
1677
- "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" +
1678
- " " +
1679
- (updates.subheadlineClass || ""),
1680
- },
1681
- }
1682
- }
1683
-
1684
1699
  function commentsStepHeadline(updates) {
1685
1700
  return {
1686
1701
  $el: "h3",
@@ -1710,7 +1725,7 @@ function firstAndLastStepHeadline(updates) {
1710
1725
  function contactStepHeadline(updates) {
1711
1726
  return {
1712
1727
  $el: "h3",
1713
- children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC_LEGAL,
1728
+ children: updates.headline || DEFAULT_FINAL_HEADLINE_DYNAMIC,
1714
1729
  attrs: {
1715
1730
  class:
1716
1731
  "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" +
@@ -1724,7 +1739,7 @@ function contactStepHeadline(updates) {
1724
1739
  function contactStepSubHeadline(updates) {
1725
1740
  return {
1726
1741
  $el: "h5",
1727
- children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC_LEGAL,
1742
+ children: updates.subheadline || DEFAULT_FINAL_SUBHEADLINE_DYNAMIC,
1728
1743
  attrs: {
1729
1744
  class:
1730
1745
  "t-flex t-justify-center t-text-center !t-text-lg t-font-semibold t-pb-6 t-pt-0 t-px-3" +
@@ -1845,29 +1860,48 @@ function commentsHeadline(updates = {}) {
1845
1860
  label: typeof updates.label === "undefined" ? DEFAULT_COMMENTS_LABEL : updates.label,
1846
1861
  placeholder: updates.placeholder || DEFAULT_COMMENTS_PLACEHOLDER_DYNAMIC,
1847
1862
  inputClass: typeof updates.inputClass === "undefined" ? "!t-h-32" : updates.inputClass,
1863
+ innerClass: typeof updates.innerClass === "undefined" ? "t-max-w-xl" : updates.innerClass,
1864
+ wrapperClass: typeof updates.wrapperClass === "undefined" ? undefined : updates.wrapperClass,
1848
1865
  }),
1849
1866
  ],
1850
1867
  mergedUpdates
1851
1868
  )
1852
1869
  }
1853
1870
 
1854
- function contactInfo(updates = {}) {
1871
+ function contactInfoV2(updates = {}) {
1855
1872
  return step(
1856
1873
  "contactInfo",
1857
1874
  [
1858
1875
  contactStepHeadline(updates),
1859
1876
  contactStepSubHeadline(updates),
1860
1877
  trustedFormScript(),
1861
- email(updates.scope),
1862
- phone(updates.scope),
1863
- TCPAConsent(updates.scope),
1864
- secureIcon(),
1878
+ {
1879
+ $el: "div",
1880
+ attrs: {
1881
+ class: "t-flex t-flex-col t-justify-center t-items-center",
1882
+ },
1883
+ children: [
1884
+ emailFL(updates.scope, {
1885
+ outerClass: "!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",
1886
+ innerClass: "!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]",
1887
+ }),
1888
+ phoneFL(updates.scope, {
1889
+ outerClass: "!t-max-w-[95%] !t-w-[96%] sm:!t-w-[70%]",
1890
+ innerClass: "!t-w-[98%] !t-max-w-[98%] sm:!t-w-[100%] sm:!t-max-w-[100%]",
1891
+ }),
1892
+ ],
1893
+ },
1894
+ TCPAConsent(updates.scope, {
1895
+ outerClass: "!t-flex !t-flex-col !t-justify-center !t-items-center",
1896
+ wrapperClass: "t-w-[95%] sm:t-w-[80%]",
1897
+ messagesClass: "t-w-[95%] sm:t-w-[80%]",
1898
+ }),
1865
1899
  ],
1866
1900
  { nextOnEnter: false }
1867
1901
  )
1868
1902
  }
1869
1903
 
1870
- function firstAndLastV3(updates = {}) {
1904
+ function firstAndLastV4(updates = {}) {
1871
1905
  return step(
1872
1906
  "firstAndLast",
1873
1907
  [
@@ -1875,12 +1909,13 @@ function firstAndLastV3(updates = {}) {
1875
1909
  headline: updates.headline ?? "Who is looking for help?",
1876
1910
  headlineClass: updates.headlineClass,
1877
1911
  }),
1878
- verticalStepSubHeadline({
1879
- subheadline: updates.subheadline ?? "We never share info without consent",
1880
- subheadlineClass: "!t-text-sm !t-text-gray-500",
1881
- }),
1882
- firstName(updates.scope),
1883
- lastName(updates.scope),
1912
+ {
1913
+ $el: "div",
1914
+ attrs: {
1915
+ class: "t-flex t-flex-col t-justify-center t-items-center t-pt-3",
1916
+ },
1917
+ children: [fullNameFLMobileCol(updates.scope)],
1918
+ },
1884
1919
  ],
1885
1920
  updates
1886
1921
  )
@@ -1895,7 +1930,7 @@ function zipcode(updates = {}) {
1895
1930
  function homeImprovementCrossSellsStepHeadline(updates) {
1896
1931
  return {
1897
1932
  $el: "h3",
1898
- children: updates.headline || "Interested in free quotes for other projects?",
1933
+ children: updates.headline || "Do you need quotes for other projects?",
1899
1934
  attrs: {
1900
1935
  class:
1901
1936
  "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" +
@@ -2651,13 +2686,17 @@ function numberOfWindows(updates = {}) {
2651
2686
  )
2652
2687
  }
2653
2688
 
2654
- const formNavigation = (updates = {}) => ({
2689
+ const formNavigationNoFinalBack = (updates = {}) => ({
2655
2690
  $el: "div",
2656
2691
  attrs: {
2657
2692
  class: {
2658
2693
  if: "$activeStep === $firstStep()",
2659
2694
  then: "step-nav " + (updates.firstStepButtonClass || "!t-justify-center sm:!t-justify-between"),
2660
- else: "step-nav !t-justify-between",
2695
+ else: {
2696
+ if: "$activeStep === $lastStep()",
2697
+ then: "step-nav !t-justify-center ",
2698
+ else: "step-nav !t-justify-between",
2699
+ },
2661
2700
  },
2662
2701
  },
2663
2702
  children: [
@@ -2667,12 +2706,12 @@ const formNavigation = (updates = {}) => ({
2667
2706
  onClick: "$setPreviousStep($prevStepFunc($get(form)))",
2668
2707
  children: "Back",
2669
2708
  outerClass: {
2670
- if: "$activeStep === $firstStep()",
2709
+ if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
2671
2710
  then: "t-hidden sm:t-block",
2672
2711
  else: "",
2673
2712
  },
2674
2713
  style: {
2675
- if: "$activeStep === $firstStep()",
2714
+ if: "$fns.eq($activeStep, $firstStep()) || $fns.eq($activeStep, $lastStep())",
2676
2715
  then: "display: none;",
2677
2716
  },
2678
2717
  classes: {
@@ -2711,7 +2750,8 @@ const formNavigation = (updates = {}) => ({
2711
2750
  then: "display: none;",
2712
2751
  },
2713
2752
  classes: {
2714
- input: (updates.inputClass || "") + " !t-ml-2 sm:!t-ml-auto f-navigation-input",
2753
+ input: (updates.inputClass || "") + " f-navigation-input !t-w-60",
2754
+ outer: "!t-mt-0 !t-mb-0",
2715
2755
  },
2716
2756
  },
2717
2757
  ],
@@ -2836,7 +2876,6 @@ function defaultMetaPropsHomeImprovement(category = null) {
2836
2876
  function defaultMetaPropsHomeImprovementGeneral(defaultSteps = nextStepsHomeImprovementDefault) {
2837
2877
  const meta = defaultMetaPropsHomeImprovement();
2838
2878
  meta.data.dynamicSchema = [
2839
- zipcode(),
2840
2879
  timeframe(),
2841
2880
  ownHome(),
2842
2881
  address(),
@@ -2899,9 +2938,12 @@ function defaultMetaPropsHomeImprovementGeneral(defaultSteps = nextStepsHomeImpr
2899
2938
  label: null,
2900
2939
  headline: "Please briefly describe your project:",
2901
2940
  headlineClass: "!t-text-dark",
2941
+ wrapperClass: "t-flex t-justify-center",
2942
+ innerClass: "t-w-full",
2902
2943
  }),
2903
- firstAndLastV3({
2944
+ firstAndLastV4({
2904
2945
  headlineClass: "!t-text-dark",
2946
+ headline: "Who is looking for quotes?",
2905
2947
  }),
2906
2948
  ];
2907
2949
  return meta
@@ -3542,7 +3584,7 @@ const HomeImprovementCommentsPlaceholders = {
3542
3584
 
3543
3585
  const HomeImprovementFinalHeadlines = {
3544
3586
  // 'Additions': '',
3545
- Appliances: "We Have Appliance Pros Standing By!",
3587
+ // Appliances: "We Have Appliance Pros Standing By!",
3546
3588
  // 'Appraisals': '',
3547
3589
  // 'Cabinets': '',
3548
3590
  // 'Carpentry': '',
@@ -3559,7 +3601,7 @@ const HomeImprovementFinalHeadlines = {
3559
3601
  // 'Flooring': '',
3560
3602
  // 'Foundations': '',
3561
3603
  // 'Garage Doors': '',
3562
- // 'General Contractors': '',
3604
+ // "General Contractors": "Connect With Top Contractors!",
3563
3605
  // 'Gutters': '',
3564
3606
  // 'Handyman': '',
3565
3607
  // 'Holiday Decorators': '',
@@ -3585,7 +3627,7 @@ const HomeImprovementFinalHeadlines = {
3585
3627
  // 'Pools': '',
3586
3628
  // 'Plumbing': '',
3587
3629
  // 'Pressure Washing': '',
3588
- // 'Remodeling': '',
3630
+ // Remodeling: "Connect With Top Remodelers!",
3589
3631
  // 'Roofing': '',
3590
3632
  // 'Sheds': '',
3591
3633
  // 'Siding': '',
@@ -3598,60 +3640,60 @@ const HomeImprovementFinalHeadlines = {
3598
3640
  };
3599
3641
 
3600
3642
  const HomeImprovementFinalSubHeadlines = {
3601
- // 'Additions': '',
3602
- Appliances: "Who needs appliance help?",
3603
- // 'Appraisals': '',
3604
- // 'Cabinets': '',
3605
- // 'Carpentry': '',
3606
- // 'Carpets': '',
3607
- // 'Cleaning': '',
3608
- // 'Countertops': '',
3609
- // 'Decks and Porches': '',
3610
- // 'Demolition': '',
3611
- // 'Doors': '',
3612
- // 'Driveways': '',
3613
- // 'Drywall and Plaster': '',
3614
- // 'Electrical': '',
3615
- // 'Fencing': '',
3616
- // 'Flooring': '',
3617
- // 'Foundations': '',
3618
- // 'Garage Doors': '',
3619
- // 'General Contractors': '',
3620
- // 'Gutters': '',
3621
- // 'Handyman': '',
3622
- // 'Holiday Decorators': '',
3623
- // 'Smart Home': '',
3624
- // 'Home Builders': '',
3625
- // 'Home Inspection': '',
3626
- // 'Home Organization': '',
3627
- // 'Home Security': '',
3628
- // 'Home Staging': '',
3629
- // 'Home Theater': '',
3630
- // 'Home Warranties': '',
3631
- // 'Hot Tubs': '',
3632
- // 'Heating and Cooling': '',
3633
- // 'Insulation': '',
3634
- // 'Junk Removal': '',
3635
- // 'Landscaping': '',
3636
- // 'Locksmiths': '',
3637
- // 'Masonry and Concrete': '',
3638
- // 'Restoration': '',
3639
- // 'Moving': '',
3640
- // 'Painting': '',
3641
- // 'Pest Control': '',
3642
- // 'Pools': '',
3643
- // 'Plumbing': '',
3644
- // 'Pressure Washing': '',
3645
- // 'Remodeling': '',
3646
- // 'Roofing': '',
3647
- // 'Sheds': '',
3648
- // 'Siding': '',
3649
- // 'Solar': '',
3650
- // 'Tiling': '',
3651
- // 'Walk-in Tubs': '',
3652
- // 'Waterproofing': '',
3653
- // 'Window Cleaning': '',
3654
- // 'Windows': '',
3643
+ Additions: "Get your dream addition started today!",
3644
+ Appliances: "Expert appliance repair and installation.",
3645
+ Appraisals: "Accurate home appraisals at your service.",
3646
+ Cabinets: "Transform your kitchen with new cabinets.",
3647
+ Carpentry: "Custom carpentry solutions for your home.",
3648
+ Carpets: "Upgrade your home with new carpets.",
3649
+ Cleaning: "Professional cleaning services for a spotless home.",
3650
+ Countertops: "Install beautiful countertops in your kitchen.",
3651
+ "Decks and Porches": "Build the perfect outdoor space.",
3652
+ Demolition: "Safe and efficient demolition services.",
3653
+ Doors: "Enhance your home with new doors.",
3654
+ Driveways: "Repair or install a new driveway.",
3655
+ "Drywall and Plaster": "Expert drywall and plaster services.",
3656
+ Electrical: "Reliable electrical services for your home.",
3657
+ Fencing: "Secure your property with new fencing.",
3658
+ Flooring: "Install stunning new floors.",
3659
+ Foundations: "Foundation repair and maintenance.",
3660
+ "Garage Doors": "Upgrade your garage with new doors.",
3661
+ "General Contractors": "Top contractors for your home projects.",
3662
+ Gutters: "Clean and repair your gutters.",
3663
+ Handyman: "Handyman services for all your needs.",
3664
+ "Holiday Decorators": "Get your home ready for the holidays.",
3665
+ "Smart Home": "Upgrade to a smart home today.",
3666
+ "Home Builders": "Build your custom dream home.",
3667
+ "Home Inspection": "Thorough home inspections for peace of mind.",
3668
+ "Home Organization": "Organize your home with expert help.",
3669
+ "Home Security": "Protect your home with a security system.",
3670
+ "Home Staging": "Stage your home for a quick sale.",
3671
+ "Home Theater": "Create the ultimate home theater.",
3672
+ "Home Warranties": "Get a warranty for your home.",
3673
+ "Hot Tubs": "Install a relaxing hot tub.",
3674
+ "Heating and Cooling": "HVAC repair and installation.",
3675
+ Insulation: "Improve your home's insulation.",
3676
+ "Junk Removal": "Remove unwanted junk from your property.",
3677
+ Landscaping: "Transform your yard with expert landscaping.",
3678
+ Locksmiths: "Professional locksmith services.",
3679
+ "Masonry and Concrete": "Expert masonry and concrete work.",
3680
+ Restoration: "Restore your home after damage.",
3681
+ Moving: "Reliable moving services.",
3682
+ Painting: "Professional painting services.",
3683
+ "Pest Control": "Effective pest control solutions.",
3684
+ Pools: "Install or repair your pool.",
3685
+ Plumbing: "Expert plumbing services.",
3686
+ "Pressure Washing": "Pressure wash your home's exterior.",
3687
+ Remodeling: "Remodel your home with top professionals.",
3688
+ Roofing: "Repair or replace your roof.",
3689
+ Sheds: "Build a new shed for extra storage.",
3690
+ Siding: "Upgrade your home's siding.",
3691
+ Solar: "Install solar panels and save on energy.",
3692
+ Tiling: "Install beautiful new tiles.",
3693
+ "Walk-in Tubs": "Install a convenient walk-in tub.",
3694
+ Waterproofing: "Waterproof your home to prevent damage.",
3695
+ "Window Cleaning": "Professional window cleaning services.",
3696
+ Windows: "Replace your windows with energy-efficient options.",
3655
3697
  };
3656
3698
 
3657
3699
  const nextStepsHomeImprovementDefault = [
@@ -3829,6 +3871,7 @@ const schema = [
3829
3871
  subHeadline({
3830
3872
  children: '$urlParam("shl", "Fast. Reliable. Local. Free")',
3831
3873
  if: "$activeStep === $firstStep()",
3874
+ subheadlineClass: "!t-font-bold !t-text-[#465f87]",
3832
3875
  }),
3833
3876
  ...hiddenInputsHomeImprovement,
3834
3877
  {
@@ -3844,13 +3887,27 @@ const schema = [
3844
3887
  input: {
3845
3888
  placeholder: "Select a Category",
3846
3889
  innerClass: "!t-max-w-[275px] md:!t-max-w-xl",
3890
+ inputClass: "t-text-center",
3847
3891
  },
3848
3892
  }),
3849
3893
  dynamicSchemaNode("Category"),
3850
- contactInfo(),
3851
- formNavigation({
3894
+ zipcode({
3895
+ input: {
3896
+ help: "We'll match you with local contractors.",
3897
+ },
3898
+ }),
3899
+ contactInfoV2({
3900
+ headline: '$:"We Found Pros in " + $get(Zip).value + "!"',
3901
+ headlineClass: "!t-text-[#465f87]",
3902
+ subheadlineClass: "!t-text-base !t-text-[#353739]",
3903
+ }),
3904
+ formNavigationNoFinalBack({
3852
3905
  startText: "Get Quotes",
3906
+ submitLabel: "Get Quotes",
3907
+ inputClass: "!t-text-black !t-font-extrabold !t-bg-[#ffce51]",
3908
+ firstStepButtonClass: "!t-justify-center",
3853
3909
  }),
3910
+ secureIconStandalone(),
3854
3911
  formDetails(),
3855
3912
  ],
3856
3913
  },