@axos-web-dev/shared-components 1.0.100-dev.3 → 1.0.100-dev.30

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 (249) hide show
  1. package/dist/ATMLocator/ATMLocator.js +3 -3
  2. package/dist/Article/Article.css.d.ts +9 -36
  3. package/dist/Article/Article.css.js +10 -8
  4. package/dist/Article/index.js +3 -2
  5. package/dist/ArticlesSet/ArticlesSet.css.d.ts +10 -70
  6. package/dist/ArticlesSet/ArticlesSet.js +1 -1
  7. package/dist/Auth/ErrorAlert.js +3 -3
  8. package/dist/Avatar/Avatar.module.js +7 -7
  9. package/dist/AwardsBanner/AwardsBanner.css.js +4 -1
  10. package/dist/AwardsItem/AwardsItem.css.js +1 -2
  11. package/dist/Blockquote/Blockquote.module.js +3 -3
  12. package/dist/Button/Button.css.d.ts +3 -3
  13. package/dist/Button/Button.js +3 -3
  14. package/dist/Calculators/ApyCalculator/ApyCalculator.css.d.ts +2 -30
  15. package/dist/Calculators/ApyCalculator/index.js +11 -5
  16. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.d.ts +1 -0
  17. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js +3 -1
  18. package/dist/Calculators/AxosOneCalculator/index.d.ts +3 -0
  19. package/dist/Calculators/AxosOneCalculator/index.js +48 -20
  20. package/dist/Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.d.ts +2 -30
  21. package/dist/Calculators/BuyDownCalculator/BuyDownCalculator.css.d.ts +0 -1
  22. package/dist/Calculators/BuyDownCalculator/BuyDownCalculator.css.js +2 -4
  23. package/dist/Calculators/BuyDownCalculator/index.d.ts +5 -1
  24. package/dist/Calculators/BuyDownCalculator/index.js +267 -141
  25. package/dist/Calculators/Calculator.d.ts +3 -0
  26. package/dist/Calculators/Calculator.js +10 -6
  27. package/dist/Calculators/calculator.css.d.ts +2 -8
  28. package/dist/CallToActionBar/CallToActionBar.css.d.ts +3 -1
  29. package/dist/CallToActionBar/CallToActionBar.css.js +22 -16
  30. package/dist/CallToActionBar/index.js +4 -3
  31. package/dist/Carousel/Carousel.css.d.ts +8 -19
  32. package/dist/Carousel/index.js +3 -3
  33. package/dist/Chatbot/Bubble.css.js +1 -0
  34. package/dist/Chatbot/Bubble.js +3 -3
  35. package/dist/Chatbot/ChatWindow.css.d.ts +4 -0
  36. package/dist/Chatbot/ChatWindow.css.js +8 -0
  37. package/dist/Chatbot/ChatWindow.d.ts +7 -0
  38. package/dist/Chatbot/ChatWindow.js +213 -24
  39. package/dist/Chatbot/Chatbot.css.js +0 -1
  40. package/dist/Chatbot/Chatbot.js +6 -3
  41. package/dist/Chatbot/EllipsisIcon.d.ts +4 -0
  42. package/dist/Chatbot/EllipsisIcon.js +19 -0
  43. package/dist/Chatbot/index.js +5 -1
  44. package/dist/Chatbot/store/messages.d.ts +1 -0
  45. package/dist/Chatbot/store/messages.js +2 -1
  46. package/dist/Chatbot/useHeadlessChat.d.ts +6 -1
  47. package/dist/Chatbot/useHeadlessChat.js +103 -20
  48. package/dist/Chevron/Chevron.css.d.ts +2 -2
  49. package/dist/Chevron/index.js +3 -3
  50. package/dist/CollectInformationAlert/index.js +1 -1
  51. package/dist/Comparison/Comparison.js +3 -3
  52. package/dist/Comparison/ComparisonSet.js +33 -24
  53. package/dist/ContentBanner/ContentBanner.css.js +2 -1
  54. package/dist/ExecutiveBio/ExecutiveBio.js +3 -3
  55. package/dist/FaqAccordion/index.js +3 -3
  56. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +15 -8
  57. package/dist/Forms/ApplyNow.js +3 -3
  58. package/dist/Forms/CommercialDepositsNoLendingOption.d.ts +16 -0
  59. package/dist/Forms/CommercialDepositsNoLendingOption.js +330 -0
  60. package/dist/Forms/ContactUsBusiness.d.ts +1 -1
  61. package/dist/Forms/ContactUsBusiness.js +7 -7
  62. package/dist/Forms/ContactUsBusinessNameEmail.js +3 -3
  63. package/dist/Forms/ContactUsLVF.d.ts +5 -1
  64. package/dist/Forms/ContactUsLVF.js +8 -6
  65. package/dist/Forms/ContactUsNMLSId.js +3 -3
  66. package/dist/Forms/CraPublicFile.js +3 -3
  67. package/dist/Forms/EmailOnly.js +85 -65
  68. package/dist/Forms/FormEnums.js +6 -15
  69. package/dist/Forms/Forms.css.d.ts +8 -31
  70. package/dist/Forms/Forms.css.js +50 -44
  71. package/dist/Forms/MortgageRate/MortgageRateForm.js +23 -8
  72. package/dist/Forms/MortgageRate/MortgageRateWatch.js +3 -3
  73. package/dist/Forms/MortgageWarehouseLending.js +3 -3
  74. package/dist/Forms/QuickPricer/QuickPricerForm.js +1 -1
  75. package/dist/Forms/SalesforceFieldsForm.d.ts +5 -0
  76. package/dist/Forms/SalesforceFieldsForm.js +11 -1
  77. package/dist/Forms/SuccesForm.js +4 -4
  78. package/dist/Forms/index.d.ts +1 -0
  79. package/dist/Forms/index.js +6 -1
  80. package/dist/HeroBanner/HeroBanner.css.d.ts +5 -17
  81. package/dist/HeroBanner/HeroBanner.css.js +2 -1
  82. package/dist/HeroBanner/HeroBanner.js +2 -13
  83. package/dist/HeroBanner/SelectionBanner.css.d.ts +1 -19
  84. package/dist/HeroBanner/SelectionBanner.css.js +6 -6
  85. package/dist/Hyperlink/Hyperlink.css.d.ts +4 -4
  86. package/dist/Hyperlink/Hyperlink.css.js +4 -1
  87. package/dist/Hyperlink/index.js +3 -3
  88. package/dist/IconBillboard/IconBillboard.css.d.ts +6 -40
  89. package/dist/ImageBillboard/ImageBillboard.css.d.ts +5 -61
  90. package/dist/ImageBillboard/ImageBillboard.css.js +2 -1
  91. package/dist/ImageLink/ImageLink.js +3 -3
  92. package/dist/ImageLink/ImageLinkSet.js +3 -3
  93. package/dist/ImageLink/index.js +3 -3
  94. package/dist/Input/Dropdown.js +1 -0
  95. package/dist/Input/Input.css.d.ts +1 -0
  96. package/dist/Input/Input.css.js +10 -8
  97. package/dist/Input/index.js +2 -1
  98. package/dist/Insight/Featured/CategorySelector.js +3 -3
  99. package/dist/Insight/Featured/Featured.js +3 -3
  100. package/dist/Insight/Featured/Header.js +3 -3
  101. package/dist/Insight/Insight.css.d.ts +18 -0
  102. package/dist/Insight/Insight.css.js +44 -8
  103. package/dist/Insight/index.js +19 -1
  104. package/dist/LandingPageHeader/LandingPageHeader.css.d.ts +2 -0
  105. package/dist/LandingPageHeader/LandingPageHeader.css.js +6 -2
  106. package/dist/LandingPageHeader/LandingPageHeader.js +18 -9
  107. package/dist/LandingPageHeader/index.js +3 -1
  108. package/dist/LoadingIndicator/LoadingIndicator.css.d.ts +4 -4
  109. package/dist/Modal/Modal.css.d.ts +1 -0
  110. package/dist/Modal/Modal.css.js +5 -3
  111. package/dist/Modal/Modal.js +6 -6
  112. package/dist/NavigationMenu/AxosALTS/NavData.js +3 -3
  113. package/dist/NavigationMenu/AxosALTS/index.js +3 -3
  114. package/dist/NavigationMenu/AxosAdvisor/NavBar.css.d.ts +2 -0
  115. package/dist/NavigationMenu/AxosAdvisor/NavBar.css.js +7 -2
  116. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +52 -52
  117. package/dist/NavigationMenu/AxosAdvisor/index.js +39 -21
  118. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.css.d.ts +2 -0
  119. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.css.js +7 -2
  120. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +53 -53
  121. package/dist/NavigationMenu/AxosAdvisorServices/SubNavbar.css.d.ts +1 -1
  122. package/dist/NavigationMenu/AxosAdvisorServices/SubNavbar.css.js +2 -2
  123. package/dist/NavigationMenu/AxosAdvisorServices/index.js +14 -8
  124. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +2 -2
  125. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +16 -16
  126. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +5 -7
  127. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +12 -14
  128. package/dist/NavigationMenu/AxosBank/NavBar.css.js +2 -1
  129. package/dist/NavigationMenu/AxosBank/NavBar.module.js +41 -41
  130. package/dist/NavigationMenu/AxosBank/NavData.js +3 -3
  131. package/dist/NavigationMenu/AxosBank/SubNavBar.js +274 -279
  132. package/dist/NavigationMenu/AxosBank/SubNavbar.css.d.ts +2 -0
  133. package/dist/NavigationMenu/AxosBank/SubNavbar.css.js +4 -0
  134. package/dist/NavigationMenu/AxosBank/index.js +3 -3
  135. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +37 -37
  136. package/dist/NavigationMenu/AxosFiduciary/NavBar.module.js +41 -41
  137. package/dist/NavigationMenu/LaVictoire/NavData.js +3 -3
  138. package/dist/NavigationMenu/LaVictoire/index.js +3 -3
  139. package/dist/NavigationMenu/NavDataJson.js +3 -3
  140. package/dist/NavigationMenu/Navbar.js +3 -3
  141. package/dist/NavigationMenu/SignInNavButton.js +3 -3
  142. package/dist/PageNavItem/PageNavItem.css.d.ts +4 -22
  143. package/dist/Pagination/Pagination.js +6 -6
  144. package/dist/SetContainer/SetContainer.js +3 -3
  145. package/dist/SocialMediaBar/iconsRepository.js +3 -3
  146. package/dist/StepItem/StepItem.css.d.ts +8 -36
  147. package/dist/StepItemSet/StepItemSet.css.d.ts +5 -32
  148. package/dist/StepItemSet/StepItemSet.css.js +9 -5
  149. package/dist/StepItemSet/StepItemSet.d.ts +6 -0
  150. package/dist/StepItemSet/StepItemSet.js +22 -3
  151. package/dist/StepItemSet/index.js +2 -1
  152. package/dist/Table/Table.css.d.ts +4 -3
  153. package/dist/Table/Table.css.js +5 -5
  154. package/dist/Table/Table.js +1 -1
  155. package/dist/VideoTile/VideoTile.js +3 -3
  156. package/dist/VideoWrapper/index.js +3 -3
  157. package/dist/WalnutIframe/wrapper.module.js +3 -3
  158. package/dist/assets/Accordion/Accordion.css +2 -2
  159. package/dist/assets/Article/Article.css +87 -86
  160. package/dist/assets/ArticlesSet/ArticlesSet.css +26 -56
  161. package/dist/assets/Auth/SignIn.css +12 -12
  162. package/dist/assets/Avatar/Avatar.css.css +59 -59
  163. package/dist/assets/AwardsBanner/AwardsBanner.css +1 -1
  164. package/dist/assets/AwardsItem/AwardsItem.css +3 -4
  165. package/dist/assets/Blockquote/Blockquote.css.css +72 -68
  166. package/dist/assets/Button/Button.css +28 -28
  167. package/dist/assets/Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css +8 -8
  168. package/dist/assets/Calculators/ApyCalculator/ApyCalculator.css +12 -21
  169. package/dist/assets/Calculators/AxosOneCalculator/BalanceAPYCalculator.css +31 -11
  170. package/dist/assets/Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css +20 -32
  171. package/dist/assets/Calculators/BuyDownCalculator/BuyDownCalculator.css +15 -21
  172. package/dist/assets/Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css +9 -9
  173. package/dist/assets/Calculators/MonthlyPaymentLVFCalculator/MonthlyPaymentCalculator.css +9 -9
  174. package/dist/assets/Calculators/SummitApyCalculator/BalanceAPYCalculator.css +18 -10
  175. package/dist/assets/Calculators/calculator.css +9 -15
  176. package/dist/assets/CallToActionBar/CallToActionBar.css +95 -69
  177. package/dist/assets/Carousel/Carousel.css +27 -41
  178. package/dist/assets/Chatbot/ChatWindow.css +56 -0
  179. package/dist/assets/Chevron/Chevron.css +11 -10
  180. package/dist/assets/CollectInformationAlert/CollectInformationAlert.css +4 -3
  181. package/dist/assets/Comparison/Comparison.css +8 -5
  182. package/dist/assets/ContentBanner/ContentBanner.css +14 -8
  183. package/dist/assets/DownloadTile/DownloadTile.css +6 -6
  184. package/dist/assets/ExecutiveBio/ExecutiveBio.css +27 -27
  185. package/dist/assets/FaqAccordion/FaqAccordion.css +5 -5
  186. package/dist/assets/FooterDisclosure/FooterDisclosure.css +1 -1
  187. package/dist/assets/FooterSiteMap/AxosBank/FooterSiteMap.css +3 -8
  188. package/dist/assets/Forms/Forms.css +176 -165
  189. package/dist/assets/Forms/QuickPricer/UserInformation.css +1 -1
  190. package/dist/assets/HeroBanner/HeroBanner.css +85 -76
  191. package/dist/assets/HeroBanner/LargeBanner.css +15 -15
  192. package/dist/assets/HeroBanner/SelectionBanner.css +15 -29
  193. package/dist/assets/Hyperlink/Hyperlink.css +4 -4
  194. package/dist/assets/IconBillboard/IconBillboard.css +32 -48
  195. package/dist/assets/ImageBillboard/ImageBillboard.css +59 -63
  196. package/dist/assets/Input/Input.css +54 -47
  197. package/dist/assets/Inputs/Input.css +4 -4
  198. package/dist/assets/Insight/Featured/CategorySelector.css +1 -1
  199. package/dist/assets/Insight/Insight.css +212 -43
  200. package/dist/assets/Interstitial/Interstitial-variants.css +3 -3
  201. package/dist/assets/LandingPageHeader/LandingPageHeader.css +37 -4
  202. package/dist/assets/LoadingIndicator/LoadingIndicator.css +5 -5
  203. package/dist/assets/Modal/Modal.css +17 -28
  204. package/dist/assets/NavigationMenu/AxosALTS/NavBar.css +1 -1
  205. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css +25 -2
  206. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css.css +609 -597
  207. package/dist/assets/NavigationMenu/AxosAdvisor/SubNavbar.css +5 -4
  208. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css +25 -2
  209. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css.css +630 -618
  210. package/dist/assets/NavigationMenu/AxosAdvisorServices/SubNavbar.css +22 -4
  211. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css.css +192 -191
  212. package/dist/assets/NavigationMenu/AxosBank/NavBar.css +21 -9
  213. package/dist/assets/NavigationMenu/AxosBank/NavBar.css.css +445 -473
  214. package/dist/assets/NavigationMenu/AxosBank/SubNavbar.css +35 -1
  215. package/dist/assets/NavigationMenu/AxosClearing/NavBar.css.css +484 -458
  216. package/dist/assets/NavigationMenu/AxosFiduciary/NavBar.css.css +427 -426
  217. package/dist/assets/PageNavItem/PageNavItem.css +16 -33
  218. package/dist/assets/Pagination/Pagination.css +1 -1
  219. package/dist/assets/SetContainer/SetContainer.css +4 -4
  220. package/dist/assets/StepItem/StepItem.css +26 -42
  221. package/dist/assets/StepItemSet/StepItemSet.css +40 -36
  222. package/dist/assets/Tab/Tab.css +12 -12
  223. package/dist/assets/Table/Table.css +87 -93
  224. package/dist/assets/TextBlock/TextBlock.css +1 -1
  225. package/dist/assets/TopicalNavItem/TopicalNavItem.css +2 -2
  226. package/dist/assets/TopicalNavSet/TopicalNavSet.css +1 -1
  227. package/dist/assets/VideoTile/VideoTile.css +1 -1
  228. package/dist/assets/WalnutIframe/wrapper.css.css +7 -8
  229. package/dist/assets/globals.css +11 -7
  230. package/dist/assets/icons/ArrowIcon/ArrowIcon.css +3 -3
  231. package/dist/assets/icons/DownloadIcon/DownloadIcon.css +1 -1
  232. package/dist/assets/icons/FollowIcon/FollowIcon.css +1 -1
  233. package/dist/assets/themes/axos.css +30 -30
  234. package/dist/assets/themes/premier.css +31 -31
  235. package/dist/assets/themes/victorie.css +23 -23
  236. package/dist/icons/CheckCircle.js +1 -1
  237. package/dist/icons/CheckCircleLight.js +1 -1
  238. package/dist/icons/CheckIcon/index.js +1 -1
  239. package/dist/icons/Clock/index.js +6 -6
  240. package/dist/icons/Logos/SPB.d.ts +4 -0
  241. package/dist/icons/Logos/SPB.js +132 -0
  242. package/dist/icons/QuoteIconGrey.js +2 -2
  243. package/dist/icons/index.d.ts +1 -0
  244. package/dist/icons/index.js +2 -0
  245. package/dist/main.js +55 -21
  246. package/dist/themes/axos.css.d.ts +12 -12
  247. package/dist/themes/axos.css.js +1 -1
  248. package/dist/utils/allowedAxosDomains.js +2 -1
  249. package/package.json +136 -136
@@ -3,7 +3,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import { zodResolver } from "@hookform/resolvers/zod";
4
4
  import { Button } from "../../Button/Button.js";
5
5
  import "../../Button/Button.css.js";
6
- import { useState } from "react";
6
+ import { useState, useEffect } from "react";
7
7
  import "react-use";
8
8
  import { Program, Fico, BuydownRate, BuydownTerm, LoanRates } from "../../Forms/FormEnums.js";
9
9
  import { Checkbox } from "../../Input/Checkbox.js";
@@ -16,14 +16,14 @@ import "../../Input/InputAmount.js";
16
16
  import "../../Input/InputPhone.js";
17
17
  import "../../Input/InputTextArea.js";
18
18
  import "../../Input/DownPaymentInput.js";
19
- import { RadioButtonSet, RadioButton } from "../../Input/RadioButton.js";
19
+ import "../../Input/RadioButton.js";
20
20
  import { PercentageInput } from "../../Input/PercentageInput.js";
21
21
  import "../../utils/allowedAxosDomains.js";
22
22
  import { getVariant } from "../../utils/getVariant.js";
23
23
  import clsx from "clsx";
24
24
  import { useForm, FormProvider } from "react-hook-form";
25
25
  import { z } from "zod";
26
- import { calc_container, calculator_section, section_header, theme_header, mt_8, buydown_calculator_form, row_form, limit_one, calculate_row, form_wrapper, form_disclosure } from "./BuyDownCalculator.css.js";
26
+ import { calc_container, calculator_section, section_header, theme_header, mt_8, buydown_calculator_form, row_form, calculate_row, form_wrapper, form_disclosure } from "./BuyDownCalculator.css.js";
27
27
  const BuyDownCalculator = ({
28
28
  header,
29
29
  body,
@@ -39,14 +39,18 @@ const BuyDownCalculator = ({
39
39
  const [finalNoteRate, setFinalNoteRate] = useState("");
40
40
  const [manuContributionPercentage, setManuContributionPercentage] = useState("");
41
41
  const [buydownPayment, setBuydownPayment] = useState("");
42
- const [manuContributionAmount, setManuContributionAmount] = useState("");
43
42
  const [nonBuydownPayment, setNonBuydownPayment] = useState("");
44
43
  const [totalBuydownCost, setTotalBuydownCost] = useState("");
45
44
  const [monthlySavings, setMonthlySavings] = useState("");
46
45
  const [dealerContributionAmount, setDealerContributionAmount] = useState("");
47
46
  const [enableFullTimeCharter, setEnableFullTimeCharter] = useState(false);
48
47
  const [disableMooringOutside, setDisableMooringOutside] = useState(false);
49
- const [disableLTVAbove60, setDisableLTVAbove60] = useState(true);
48
+ const [isDealerContributionDisabled, setIsDealerContributionDisabled] = useState(false);
49
+ const [
50
+ isManufacturerContributionDisabled,
51
+ setIsManufacturerContributionDisabled
52
+ ] = useState(false);
53
+ const [ltvDiscountApplied, setLtvDiscountApplied] = useState(false);
50
54
  const schema = z.object({
51
55
  purchasePrice: z.string().min(1, { message: "Loan amount is required." }).transform((val) => {
52
56
  return formatToNumber(val);
@@ -54,8 +58,13 @@ const BuyDownCalculator = ({
54
58
  downpayment: z.string().min(1, { message: "Down Payment is required." }).transform((val) => {
55
59
  return formatToNumber(val);
56
60
  }),
57
- dealerContribution: z.string().min(1, { message: "Dealer Contribution is required." }).transform((val) => {
58
- return formatToNumber(val);
61
+ dealerContribution: z.union([z.string(), z.number()]).optional().transform((val) => {
62
+ if (typeof val === "number") return val;
63
+ return val ? formatToNumber(val) : 0;
64
+ }),
65
+ manufacturerContributionAmount: z.union([z.string(), z.number()]).optional().transform((val) => {
66
+ if (typeof val === "number") return val;
67
+ return val ? formatToNumber(val) : 0;
59
68
  }),
60
69
  program: z.string().min(1, { message: "Program is required." }),
61
70
  fico: z.string().min(1, { message: "FICO is required." }),
@@ -66,7 +75,32 @@ const BuyDownCalculator = ({
66
75
  return formatToNumber(val);
67
76
  })
68
77
  }).superRefine((values, ctx) => {
69
- const { purchasePrice, downpayment, program, buydownTerm } = values;
78
+ const {
79
+ purchasePrice,
80
+ downpayment,
81
+ program,
82
+ buydownTerm,
83
+ dealerContribution,
84
+ manufacturerContributionAmount
85
+ } = values;
86
+ if (dealerContribution > 0 && manufacturerContributionAmount > 0) {
87
+ ctx.addIssue({
88
+ code: z.ZodIssueCode.custom,
89
+ path: ["dealerContribution"],
90
+ message: "Cannot specify both Dealer Contribution and Manufacturer Contribution Amount. Please choose one."
91
+ });
92
+ ctx.addIssue({
93
+ code: z.ZodIssueCode.custom,
94
+ path: ["manufacturerContributionAmount"],
95
+ message: "Cannot specify both Dealer Contribution and Manufacturer Contribution Amount. Please choose one."
96
+ });
97
+ } else if (dealerContribution === 0 && manufacturerContributionAmount === 0) {
98
+ ctx.addIssue({
99
+ code: z.ZodIssueCode.custom,
100
+ path: ["dealerContribution"],
101
+ message: "Either Dealer Contribution or Manufacturer Contribution Amount is required."
102
+ });
103
+ }
70
104
  if (program === "3/6 SOFR ARM" && (buydownTerm === 4 || buydownTerm === 5)) {
71
105
  ctx.addIssue({
72
106
  code: z.ZodIssueCode.custom,
@@ -77,7 +111,6 @@ const BuyDownCalculator = ({
77
111
  if (purchasePrice && downpayment) {
78
112
  const financedAmount2 = purchasePrice - downpayment;
79
113
  const range = getRange(financedAmount2);
80
- const disableLTV = checkLTVStatus(downpayment, purchasePrice);
81
114
  if (financedAmount2 < 0) {
82
115
  ctx.addIssue({
83
116
  code: z.ZodIssueCode.custom,
@@ -89,11 +122,6 @@ const BuyDownCalculator = ({
89
122
  const loanRange2 = getRange(financedAmount2, program);
90
123
  setLoanRange(loanRange2);
91
124
  }
92
- if (!disableLTV) {
93
- setDisableLTVAbove60(false);
94
- } else {
95
- setDisableLTVAbove60(true);
96
- }
97
125
  }
98
126
  if (updateFicoRequirements(range, program) === false) {
99
127
  ctx.addIssue({
@@ -114,10 +142,24 @@ const BuyDownCalculator = ({
114
142
  handleSubmit,
115
143
  register,
116
144
  setValue,
145
+ watch,
146
+ trigger,
117
147
  formState: { errors, isValid }
118
148
  } = methods;
149
+ const watchedFields = watch(["purchasePrice", "downpayment", "program"]);
150
+ useEffect(() => {
151
+ const [purchasePrice, downpayment, program] = watchedFields;
152
+ if (purchasePrice && downpayment && program) {
153
+ const purchasePriceNum = typeof purchasePrice === "string" ? formatToNumber(purchasePrice) : purchasePrice;
154
+ const downpaymentNum = typeof downpayment === "string" ? formatToNumber(downpayment) : downpayment;
155
+ if (purchasePriceNum > 0 && downpaymentNum >= 0 && purchasePriceNum > downpaymentNum) {
156
+ const financedAmount2 = purchasePriceNum - downpaymentNum;
157
+ const loanRange2 = getRange(financedAmount2, program);
158
+ setLoanRange(loanRange2);
159
+ }
160
+ }
161
+ }, [watchedFields]);
119
162
  const calculator_variant = getVariant(variant);
120
- const enableDependentInputs = enableFullTimeCharter;
121
163
  const formatToNumber = (value) => {
122
164
  const cleanValue = value.replace(/[%$, ]/gi, "");
123
165
  return parseFloat(cleanValue);
@@ -140,7 +182,7 @@ const BuyDownCalculator = ({
140
182
  const percentage = downpayment / purchasePrice * 100;
141
183
  const loanToValue2 = 100 - percentage;
142
184
  if (loanToValue2 <= 60) return false;
143
- else return true;
185
+ return true;
144
186
  };
145
187
  const getRange = (financedAmount2, program, forRates) => {
146
188
  let range = "";
@@ -224,6 +266,32 @@ const BuyDownCalculator = ({
224
266
  setDisableMooringOutside(true);
225
267
  }
226
268
  };
269
+ const handleDealerContributionChange = (event) => {
270
+ const value = event.target.value;
271
+ const numericValue = formatToNumber(value);
272
+ if (numericValue > 0) {
273
+ setIsManufacturerContributionDisabled(true);
274
+ setValue("manufacturerContributionAmount", 0);
275
+ } else {
276
+ setIsManufacturerContributionDisabled(false);
277
+ }
278
+ setTimeout(() => {
279
+ trigger(["dealerContribution", "manufacturerContributionAmount"]);
280
+ }, 0);
281
+ };
282
+ const handleManufacturerContributionChange = (event) => {
283
+ const value = event.target.value;
284
+ const numericValue = formatToNumber(value);
285
+ if (numericValue > 0) {
286
+ setIsDealerContributionDisabled(true);
287
+ setValue("dealerContribution", 0);
288
+ } else {
289
+ setIsDealerContributionDisabled(false);
290
+ }
291
+ setTimeout(() => {
292
+ trigger(["dealerContribution", "manufacturerContributionAmount"]);
293
+ }, 0);
294
+ };
227
295
  const updateFicoRequirements = (loanRangeValue, program) => {
228
296
  const ficoOptionsToDisable = ["700-719", "720-759"];
229
297
  const ficoSelect = document.getElementById("fico");
@@ -283,23 +351,34 @@ const BuyDownCalculator = ({
283
351
  }
284
352
  return rate;
285
353
  };
286
- const calculateAdjustments = () => {
354
+ const calculateAdjustments = (purchasePrice, downpayment) => {
287
355
  let total = 0;
288
356
  const checkboxes = document.querySelectorAll(
289
- 'input[type="checkbox"]:checked, input[type="radio"]:checked'
357
+ 'input[type="checkbox"]:checked'
290
358
  );
291
359
  checkboxes.forEach((checkbox) => {
292
360
  total += parseFloat(checkbox.value);
293
361
  });
362
+ if (purchasePrice && downpayment && purchasePrice > 0 && downpayment >= 0) {
363
+ const ltvStatus = checkLTVStatus(downpayment, purchasePrice);
364
+ if (!ltvStatus) {
365
+ total += -0.35;
366
+ setLtvDiscountApplied(true);
367
+ } else {
368
+ setLtvDiscountApplied(false);
369
+ }
370
+ } else {
371
+ setLtvDiscountApplied(false);
372
+ }
294
373
  return total;
295
374
  };
296
- const calculateRates = (program, fico, financedAmount2, buydownRate) => {
375
+ const calculateRates = (program, fico, financedAmount2, buydownRate, purchasePrice, downpayment) => {
297
376
  const minRate = 6.94;
298
377
  const loanRange2 = getRange(financedAmount2, program, true);
299
378
  const startingRate = parseFloat(
300
379
  getInterestRate(program, fico, loanRange2).replace(/[%,]/g, "")
301
380
  );
302
- const rateAdjustments = calculateAdjustments();
381
+ const rateAdjustments = calculateAdjustments(purchasePrice, downpayment);
303
382
  const adjustedRate = startingRate + rateAdjustments;
304
383
  const finalNoteRateValue = Math.max(minRate, adjustedRate);
305
384
  const finalNoteRate2 = formatToPercentage(finalNoteRateValue);
@@ -383,28 +462,35 @@ const BuyDownCalculator = ({
383
462
  setTotalBuydownCost(formatToCurrency(TBC));
384
463
  return TBC;
385
464
  };
386
- const calculateManufacturerContribution = (dealerContribution) => {
387
- const manufacturerContribution = 100 - dealerContribution;
465
+ const calculateManufacturerContribution = (dealerContribution, manufacturerContributionAmount, totalBuydownCost2) => {
466
+ let manufacturerContribution;
467
+ if (manufacturerContributionAmount > 0) {
468
+ manufacturerContribution = manufacturerContributionAmount / totalBuydownCost2 * 100;
469
+ } else {
470
+ manufacturerContribution = 100 - dealerContribution;
471
+ }
388
472
  const percentage = formatToPercentage(manufacturerContribution);
389
473
  setManuContributionPercentage(percentage);
390
474
  return manufacturerContribution;
391
475
  };
392
- const calculateManufacturerAmount = (totalBuydownCost2, manufacturerContribution) => {
393
- const manufacturerAmount = totalBuydownCost2 * (manufacturerContribution / 100);
394
- const formattedAmount = formatToCurrency(manufacturerAmount);
395
- setManuContributionAmount(formattedAmount);
396
- };
397
- const calculateDealerContributionAmount = (dealerContribution, totalBuydownCost2) => {
398
- const dealerContributionValue = totalBuydownCost2 * (dealerContribution / 100);
476
+ const calculateDealerContributionAmount = (dealerContribution, manufacturerContributionAmount, totalBuydownCost2) => {
477
+ let dealerContributionValue;
478
+ if (dealerContribution > 0) {
479
+ dealerContributionValue = totalBuydownCost2 * (dealerContribution / 100);
480
+ } else {
481
+ dealerContributionValue = totalBuydownCost2 - manufacturerContributionAmount;
482
+ }
399
483
  const formattedAmount = formatToCurrency(dealerContributionValue);
400
484
  setDealerContributionAmount(formattedAmount);
401
485
  };
402
486
  const onSubmit = (data) => {
403
487
  if (isValid) {
488
+ setLtvDiscountApplied(false);
404
489
  const {
405
490
  buydownRate,
406
491
  buydownTerm,
407
492
  dealerContribution,
493
+ manufacturerContributionAmount,
408
494
  downpayment,
409
495
  fico,
410
496
  program,
@@ -419,7 +505,9 @@ const BuyDownCalculator = ({
419
505
  program,
420
506
  fico,
421
507
  financedAmountValue,
422
- buydownRate
508
+ buydownRate,
509
+ purchasePrice,
510
+ downpayment
423
511
  );
424
512
  const buydownPayment2 = calculateBuydownPayment(
425
513
  buydownRate,
@@ -436,9 +524,16 @@ const BuyDownCalculator = ({
436
524
  financedAmountValue,
437
525
  buydownTerm
438
526
  );
439
- const manufacturerContribution = calculateManufacturerContribution(dealerContribution);
440
- calculateManufacturerAmount(totalBuydownCost2, manufacturerContribution);
441
- calculateDealerContributionAmount(dealerContribution, totalBuydownCost2);
527
+ calculateManufacturerContribution(
528
+ dealerContribution,
529
+ manufacturerContributionAmount,
530
+ totalBuydownCost2
531
+ );
532
+ calculateDealerContributionAmount(
533
+ dealerContribution,
534
+ manufacturerContributionAmount,
535
+ totalBuydownCost2
536
+ );
442
537
  }
443
538
  };
444
539
  return /* @__PURE__ */ jsxs("section", { className: `${calc_container({ variant: calculator_variant })}`, children: [
@@ -495,16 +590,40 @@ const BuyDownCalculator = ({
495
590
  PercentageInput,
496
591
  {
497
592
  id: "dealerContribution",
498
- ...register("dealerContribution", { required: true }),
593
+ ...register("dealerContribution", {
594
+ required: false,
595
+ onChange: handleDealerContributionChange
596
+ }),
499
597
  sizes: "medium",
500
598
  placeholder: "0.00%",
501
599
  label: "Dealer Contribution",
502
- required: true,
600
+ required: false,
503
601
  error: !!errors["dealerContribution"],
504
602
  helperText: errors["dealerContribution"]?.message,
505
- variant: calculator_variant
603
+ variant: calculator_variant,
604
+ disabled: isDealerContributionDisabled
506
605
  }
507
606
  ) }),
607
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
608
+ CurrencyInput,
609
+ {
610
+ id: "manufacturerContributionAmount",
611
+ ...register("manufacturerContributionAmount", {
612
+ required: false,
613
+ onChange: handleManufacturerContributionChange
614
+ }),
615
+ sizes: "medium",
616
+ placeholder: "$0.00",
617
+ label: "Manufacturer Contribution Amount",
618
+ required: false,
619
+ error: !!errors["manufacturerContributionAmount"],
620
+ helperText: errors["manufacturerContributionAmount"]?.message,
621
+ variant: calculator_variant,
622
+ disabled: isManufacturerContributionDisabled
623
+ }
624
+ ) })
625
+ ] }),
626
+ /* @__PURE__ */ jsxs("div", { className: `${row_form}`, children: [
508
627
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
509
628
  Dropdown,
510
629
  {
@@ -526,9 +645,7 @@ const BuyDownCalculator = ({
526
645
  Program.map((item) => /* @__PURE__ */ jsx("option", { value: item.value, children: item.text }, item.value))
527
646
  ]
528
647
  }
529
- ) })
530
- ] }),
531
- /* @__PURE__ */ jsxs("div", { className: `${row_form}`, children: [
648
+ ) }),
532
649
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
533
650
  Dropdown,
534
651
  {
@@ -546,7 +663,9 @@ const BuyDownCalculator = ({
546
663
  Fico.map((item) => /* @__PURE__ */ jsx("option", { value: item.value, children: item.text }, item.value))
547
664
  ]
548
665
  }
549
- ) }),
666
+ ) })
667
+ ] }),
668
+ /* @__PURE__ */ jsxs("div", { className: `${row_form}`, children: [
550
669
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
551
670
  Input,
552
671
  {
@@ -558,10 +677,8 @@ const BuyDownCalculator = ({
558
677
  variant: calculator_variant,
559
678
  value: loanRange
560
679
  }
561
- ) })
562
- ] }),
563
- /* @__PURE__ */ jsxs("div", { className: `${row_form}`, children: [
564
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
680
+ ) }),
681
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
565
682
  Dropdown,
566
683
  {
567
684
  id: "buydownRate",
@@ -574,85 +691,82 @@ const BuyDownCalculator = ({
574
691
  error: !!errors.buydownRate,
575
692
  helperText: errors.buydownRate?.message,
576
693
  variant: calculator_variant,
577
- defaultValue: "",
578
- children: [
579
- /* @__PURE__ */ jsx("option", { value: "", disabled: true, children: "Select Buydown Rate" }),
580
- BuydownRate.map((item) => /* @__PURE__ */ jsx("option", { value: item.value, children: item.text }, item.value))
581
- ]
582
- }
583
- ) }),
584
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
585
- Dropdown,
586
- {
587
- id: "buydownTerm",
588
- ...register("buydownTerm", {
589
- required: true,
590
- deps: ["program"]
591
- }),
592
- label: "Buydown Term (1-5 Years)",
593
- sizes: "medium",
594
- required: true,
595
- error: !!errors.buydownTerm,
596
- helperText: errors.buydownTerm?.message,
597
- variant: calculator_variant,
598
- defaultValue: 0,
599
- children: [
600
- /* @__PURE__ */ jsx("option", { value: "", disabled: true, children: "Select Buydown Term" }),
601
- BuydownTerm.map((item) => /* @__PURE__ */ jsx("option", { value: item.value, children: item.text }, item.value))
602
- ]
694
+ disabled: true,
695
+ defaultValue: 3.74,
696
+ children: BuydownRate.map((item) => /* @__PURE__ */ jsx("option", { value: item.value, children: item.text }, item.value))
603
697
  }
604
698
  ) })
605
699
  ] }),
606
- /* @__PURE__ */ jsx("div", { className: `${row_form}`, children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("label", { children: "Loan Level Rate Adjustments" }) }) }),
700
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
701
+ Dropdown,
702
+ {
703
+ id: "buydownTerm",
704
+ ...register("buydownTerm", {
705
+ required: true,
706
+ deps: ["program"]
707
+ }),
708
+ label: "Buydown Term",
709
+ sizes: "medium",
710
+ required: true,
711
+ error: !!errors.buydownTerm,
712
+ helperText: errors.buydownTerm?.message,
713
+ variant: calculator_variant,
714
+ disabled: true,
715
+ defaultValue: 3,
716
+ children: BuydownTerm.map((item) => /* @__PURE__ */ jsx("option", { value: item.value, children: item.text }, item.value))
717
+ }
718
+ ) }) }),
719
+ /* @__PURE__ */ jsx("div", { className: `${row_form}`, children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("label", { children: "Loan Level Rate Adjustments. Rate Adjustments are subject to change, are limited, and restricted by floor rate." }) }) }),
607
720
  /* @__PURE__ */ jsxs("div", { className: `${row_form}`, children: [
608
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("div", { className: row_form, children: /* @__PURE__ */ jsxs(
609
- RadioButtonSet,
610
- {
611
- id: "dependentInputs",
612
- label: "Limit One",
613
- sizes: "medium",
614
- variant,
615
- direction: "column",
616
- disabled: !enableDependentInputs,
617
- className: limit_one,
618
- children: [
619
- /* @__PURE__ */ jsx(
620
- RadioButton,
621
- {
622
- id: "mooringOutsideContinentalUS",
623
- ...register("mooringOutsideContinentalUS"),
624
- value: 0.5,
625
- radioText: "Mooring Outside Continental U.S. (Includes Puerto Rico,\n Hawaii, and Alaska) (Does not apply to Full Time Charter)\n +0.500",
626
- groupName: "dependentInputs",
627
- disabled: disableMooringOutside
628
- }
629
- ),
630
- /* @__PURE__ */ jsx(
631
- RadioButton,
632
- {
633
- id: "operatingAccount",
634
- ...register("operatingAccount"),
635
- value: -0.25,
636
- radioText: "Open and fund an LLC Operating Account with Axos - 0.25",
637
- groupName: "dependentInputs"
638
- }
639
- )
640
- ]
641
- }
642
- ) }) }),
643
721
  /* @__PURE__ */ jsxs("div", { children: [
644
- /* @__PURE__ */ jsx("div", { className: row_form, children: /* @__PURE__ */ jsx(
722
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
723
+ Checkbox,
724
+ {
725
+ id: "mooringOutsideContinentalUS",
726
+ ...register("mooringOutsideContinentalUS"),
727
+ sizes: "medium",
728
+ variant: calculator_variant,
729
+ value: 0.5,
730
+ disabled: !enableFullTimeCharter || disableMooringOutside,
731
+ children: "Mooring Outside Continental U.S. (Includes Puerto Rico, Hawaii, and Alaska) (Does not apply to Full Time Charter) +0.500"
732
+ }
733
+ ) }),
734
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
645
735
  Checkbox,
646
736
  {
647
- id: "ltvAbove60",
648
- ...register("ltvAbove60"),
737
+ id: "operatingAccount",
738
+ ...register("operatingAccount"),
649
739
  sizes: "medium",
650
- variant,
651
- value: -0.35,
652
- disabled: disableLTVAbove60,
653
- children: "LTV 60% (If not required by program) -0.350"
740
+ variant: calculator_variant,
741
+ value: -0.25,
742
+ disabled: !enableFullTimeCharter,
743
+ children: "Open and fund an LLC Operating Account with Axos - 0.25"
654
744
  }
655
745
  ) }),
746
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
747
+ Checkbox,
748
+ {
749
+ id: "vesselOver15Years",
750
+ ...register("vesselOver15Years"),
751
+ sizes: "medium",
752
+ variant: calculator_variant,
753
+ value: 1.25,
754
+ children: "Vessel > 15 Years +1.250"
755
+ }
756
+ ) }),
757
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
758
+ Checkbox,
759
+ {
760
+ id: "highPerformanceBoats",
761
+ ...register("highPerformanceBoats"),
762
+ sizes: "medium",
763
+ variant: calculator_variant,
764
+ value: 0.5,
765
+ children: "High Performance Boats (>4 Engines) +0.500"
766
+ }
767
+ ) })
768
+ ] }),
769
+ /* @__PURE__ */ jsxs("div", { children: [
656
770
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
657
771
  Checkbox,
658
772
  {
@@ -661,7 +775,29 @@ const BuyDownCalculator = ({
661
775
  sizes: "medium",
662
776
  variant: calculator_variant,
663
777
  value: -0.125,
664
- children: "Floorplan dealer incentive -0.125"
778
+ children: "Floor Plan Dealer Incentive -0.125"
779
+ }
780
+ ) }),
781
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
782
+ Checkbox,
783
+ {
784
+ id: "retailCheckingAccount",
785
+ ...register("retailCheckingAccount"),
786
+ sizes: "medium",
787
+ variant: calculator_variant,
788
+ value: -0.125,
789
+ children: "Retail Checking Account w/ACH and Minimum of 3 Months P&I Balance -0.125"
790
+ }
791
+ ) }),
792
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
793
+ Checkbox,
794
+ {
795
+ id: "electricMotorHybrid",
796
+ ...register("electricMotorHybrid"),
797
+ sizes: "medium",
798
+ variant: calculator_variant,
799
+ value: -0.25,
800
+ children: "100% Electric Motor / Hybrid -0.250"
665
801
  }
666
802
  ) }),
667
803
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
@@ -756,7 +892,8 @@ const BuyDownCalculator = ({
756
892
  label: "Final Note Rate",
757
893
  disabled: true,
758
894
  variant: calculator_variant,
759
- value: finalNoteRate
895
+ value: finalNoteRate,
896
+ helperText: ltvDiscountApplied && "LTV discount applied"
760
897
  }
761
898
  ) })
762
899
  ] }),
@@ -777,7 +914,7 @@ const BuyDownCalculator = ({
777
914
  {
778
915
  id: "buydownPayment",
779
916
  sizes: "medium",
780
- label: "Buydown Payment",
917
+ label: "Monthly payment WITH buydown",
781
918
  disabled: true,
782
919
  variant: calculator_variant,
783
920
  value: buydownPayment
@@ -788,23 +925,23 @@ const BuyDownCalculator = ({
788
925
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
789
926
  CurrencyInput,
790
927
  {
791
- id: "manuContributionAmount",
928
+ id: "nonBuydownPayment",
792
929
  sizes: "medium",
793
- label: "Manufacturer Contribution Amount",
930
+ label: "Monthly Payment WITHOUT buydown",
794
931
  disabled: true,
795
932
  variant: calculator_variant,
796
- value: manuContributionAmount
933
+ value: nonBuydownPayment
797
934
  }
798
935
  ) }),
799
936
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
800
937
  CurrencyInput,
801
938
  {
802
- id: "nonBuydownPayment",
939
+ id: "totalBuydownCost",
803
940
  sizes: "medium",
804
- label: "Non-buydown Payment",
941
+ label: "Total Buydown Cost",
805
942
  disabled: true,
806
943
  variant: calculator_variant,
807
- value: nonBuydownPayment
944
+ value: totalBuydownCost
808
945
  }
809
946
  ) })
810
947
  ] }),
@@ -812,38 +949,27 @@ const BuyDownCalculator = ({
812
949
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
813
950
  CurrencyInput,
814
951
  {
815
- id: "totalBuydownCost",
952
+ id: "monthlySavings",
816
953
  sizes: "medium",
817
- label: "Total Buydown Cost",
954
+ label: "Monthly Savings",
818
955
  disabled: true,
819
956
  variant: calculator_variant,
820
- value: totalBuydownCost
957
+ value: monthlySavings
821
958
  }
822
959
  ) }),
823
960
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
824
961
  CurrencyInput,
825
962
  {
826
- id: "monthlySavings",
963
+ id: "dealerContributionAmount",
827
964
  sizes: "medium",
828
- label: "Monthly Savings",
965
+ label: "Dealer Contribution Amount",
829
966
  disabled: true,
830
967
  variant: calculator_variant,
831
- value: monthlySavings
968
+ value: dealerContributionAmount,
969
+ helperText: "Dealer reserve offset not included in this amount."
832
970
  }
833
971
  ) })
834
- ] }),
835
- /* @__PURE__ */ jsx("div", { className: `${row_form}`, children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
836
- CurrencyInput,
837
- {
838
- id: "dealerContributionAmount",
839
- sizes: "medium",
840
- label: "Dealer Contribution Amount",
841
- disabled: true,
842
- variant: calculator_variant,
843
- value: dealerContributionAmount,
844
- helperText: "Dealer reserve offset not included in this amount."
845
- }
846
- ) }) })
972
+ ] })
847
973
  ]
848
974
  }
849
975
  ) }),
@@ -1,5 +1,6 @@
1
1
  import { IconBillboardProps } from '../IconBillboard/IconBillboard.interface';
2
2
  import { default as React } from 'react';
3
+ import { ChevronProps } from '../Chevron/Chevron.interface';
3
4
 
4
5
  export interface CalculatorProps {
5
6
  id?: string;
@@ -11,5 +12,7 @@ export interface CalculatorProps {
11
12
  bodyCopy?: React.ReactNode;
12
13
  disclosure?: React.ReactNode;
13
14
  marketingTiles?: IconBillboardProps[];
15
+ initialBalance?: number;
16
+ callToActionRow?: ChevronProps[];
14
17
  }
15
18
  export declare const Calculator: (props: CalculatorProps) => import("react/jsx-runtime").JSX.Element;