@axos-web-dev/shared-components 1.0.100-dev.41 → 1.0.100-dev.42-enhancementvalidationcalls.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/ATMLocator/ATMLocator.js +2 -3
  2. package/dist/Auth/ErrorAlert.js +1 -2
  3. package/dist/Auth/SignInPassword.js +2 -2
  4. package/dist/BulletItem/BulletItem.js +1 -0
  5. package/dist/Button/Button.js +1 -2
  6. package/dist/Calculators/AnnualFeeCalculator/index.js +1 -1
  7. package/dist/Calculators/BuyDownCalculator/index.js +1 -1
  8. package/dist/Calculators/Calculator.js +2 -3
  9. package/dist/Calculators/MarineLoanMonthlyPaymentCalculator/index.js +1 -1
  10. package/dist/Calculators/MaxLoanCalculator/index.js +1 -1
  11. package/dist/Calculators/MonthlyPaymentCalculator/index.js +1 -1
  12. package/dist/Carousel/index.js +1 -2
  13. package/dist/Chatbot/Bubble.css.js +0 -1
  14. package/dist/Chatbot/ChatWindow.css.js +1 -0
  15. package/dist/Chatbot/Chatbot.d.ts +1 -1
  16. package/dist/Chatbot/Chatbot.js +6 -5
  17. package/dist/Chevron/index.js +1 -2
  18. package/dist/Comparison/Comparison.js +1 -2
  19. package/dist/ExecutiveBio/ExecutiveBio.js +1 -2
  20. package/dist/FaqAccordion/index.js +1 -2
  21. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +1 -2
  22. package/dist/Forms/ApplicationStart.js +4 -2
  23. package/dist/Forms/ApplyNow.js +2 -3
  24. package/dist/Forms/ClearingForm.js +4 -2
  25. package/dist/Forms/CommercialDeposits.js +4 -2
  26. package/dist/Forms/CommercialDepositsNoLendingOption.js +4 -2
  27. package/dist/Forms/CommercialLending.js +4 -2
  28. package/dist/Forms/CommercialPremiumFinance.js +4 -2
  29. package/dist/Forms/ContactCompany.js +4 -2
  30. package/dist/Forms/ContactCompanyTitle.js +4 -2
  31. package/dist/Forms/ContactUs.js +4 -2
  32. package/dist/Forms/ContactUsAAS.js +4 -2
  33. package/dist/Forms/ContactUsBusiness.js +5 -4
  34. package/dist/Forms/ContactUsBusinessNameEmail.js +5 -4
  35. package/dist/Forms/ContactUsLVF.js +4 -2
  36. package/dist/Forms/ContactUsNMLSId.js +5 -4
  37. package/dist/Forms/CpraRequest.d.ts +1 -1
  38. package/dist/Forms/CpraRequest.js +5 -2
  39. package/dist/Forms/CraPublicFile.js +5 -4
  40. package/dist/Forms/DealerServices.js +4 -2
  41. package/dist/Forms/EmailOnly.js +5 -4
  42. package/dist/Forms/EmailUs.js +4 -2
  43. package/dist/Forms/HoneyPot/index.js +2 -1
  44. package/dist/Forms/MortgageRate/MortgageRateForm.js +5 -4
  45. package/dist/Forms/MortgageRate/MortgageRateWatch.js +1 -2
  46. package/dist/Forms/MortgageWarehouseLending.js +5 -4
  47. package/dist/Forms/QuickPricer/QuickPricerForm.js +16 -12
  48. package/dist/Forms/ScheduleCall.js +4 -2
  49. package/dist/Forms/ScheduleCallPremier.js +4 -2
  50. package/dist/Forms/SuccesForm.js +2 -3
  51. package/dist/Forms/VendorQuestionnaire.js +6 -2
  52. package/dist/Forms/index.js +1 -0
  53. package/dist/Hyperlink/index.js +1 -2
  54. package/dist/ImageLink/ImageLink.js +2 -3
  55. package/dist/ImageLink/ImageLinkSet.js +1 -2
  56. package/dist/ImageLink/index.js +1 -2
  57. package/dist/Insight/Featured/CategorySelector.js +1 -2
  58. package/dist/Insight/Featured/Featured.js +1 -2
  59. package/dist/Insight/Featured/Header.js +1 -2
  60. package/dist/LoadingIndicator/index.js +1 -0
  61. package/dist/Modal/Modal.js +1 -2
  62. package/dist/Modal/contextApi/store.js +1 -1
  63. package/dist/NavigationMenu/AxosALTS/NavData.js +1 -2
  64. package/dist/NavigationMenu/AxosALTS/index.js +1 -2
  65. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +1 -2
  66. package/dist/NavigationMenu/AxosBank/NavData.js +1 -2
  67. package/dist/NavigationMenu/AxosBank/SubNavBar.js +1 -2
  68. package/dist/NavigationMenu/AxosBank/index.js +1 -2
  69. package/dist/NavigationMenu/LaVictoire/NavData.js +1 -2
  70. package/dist/NavigationMenu/LaVictoire/index.js +1 -2
  71. package/dist/NavigationMenu/NavDataJson.js +1 -2
  72. package/dist/NavigationMenu/Navbar.js +1 -2
  73. package/dist/NavigationMenu/SignInNavButton.js +1 -2
  74. package/dist/SetContainer/SetContainer.js +2 -3
  75. package/dist/SocialMediaBar/iconsRepository.js +1 -2
  76. package/dist/Tab/Tab.js +1 -0
  77. package/dist/Table/Table.d.ts +1 -1
  78. package/dist/VideoTile/VideoTile.js +1 -2
  79. package/dist/VideoWrapper/index.js +1 -2
  80. package/dist/main.js +8 -1
  81. package/dist/utils/emailValidation.d.ts +1 -0
  82. package/dist/utils/emailValidation.js +31 -0
  83. package/dist/utils/index.d.ts +4 -1
  84. package/dist/utils/index.js +9 -1
  85. package/dist/utils/nmlsValidation.d.ts +1 -0
  86. package/dist/utils/nmlsValidation.js +34 -0
  87. package/dist/utils/useCachedValidators.d.ts +2 -0
  88. package/dist/utils/useCachedValidators.js +22 -0
  89. package/package.json +136 -136
@@ -11,11 +11,11 @@ import '../assets/VideoWrapper/VideoWrapper.css';import '../assets/TopicalNavSet
11
11
  /* empty css */
12
12
  import "../utils/allowedAxosDomains.js";
13
13
  import { getVariant } from "../utils/getVariant.js";
14
+ import "react";
14
15
  import clsx from "clsx";
15
16
  /* empty css */
16
17
  /* empty css */
17
18
  import "../Button/Button.css.js";
18
- import "react";
19
19
  import "react-use";
20
20
  import "../Accordion/Accordion.js";
21
21
  import "../Accordion/Accordion.css.js";
@@ -67,13 +67,12 @@ import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js"
67
67
  /* empty css */
68
68
  /* empty css */
69
69
  import "../Carousel/index.js";
70
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
71
70
  /* empty css */
72
71
  import "../Chatbot/store/chat.js";
73
72
  import "../Chatbot/authenticate.js";
73
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
74
74
  /* empty css */
75
75
  import "../Chatbot/store/messages.js";
76
- import "@ujet/websdk-headless";
77
76
  /* empty css */
78
77
  import "../Comparison/Comparison.css.js";
79
78
  import "next/image.js";
@@ -59,13 +59,12 @@ import "./SignInPassword.js";
59
59
  /* empty css */
60
60
  /* empty css */
61
61
  import "../Carousel/index.js";
62
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
63
62
  /* empty css */
64
63
  import "../Chatbot/store/chat.js";
65
64
  import "../Chatbot/authenticate.js";
65
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
66
66
  /* empty css */
67
67
  import "../Chatbot/store/messages.js";
68
- import "@ujet/websdk-headless";
69
68
  import { Hyperlink } from "../Hyperlink/index.js";
70
69
  /* empty css */
71
70
  import "../Comparison/Comparison.css.js";
@@ -3,12 +3,12 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { zodResolver } from "@hookform/resolvers/zod";
4
4
  import { Input } from "../Input/Input.js";
5
5
  import "../utils/allowedAxosDomains.js";
6
+ import { z } from "zod";
6
7
  import { getVariant } from "../utils/getVariant.js";
8
+ import { useState } from "react";
7
9
  import clsx from "clsx";
8
10
  import { useAction } from "next-safe-action/hooks";
9
- import { useState } from "react";
10
11
  import { useForm } from "react-hook-form";
11
- import { z } from "zod";
12
12
  import { ErrorAlert } from "./ErrorAlert.js";
13
13
  import { body_sign_in, form_input_wrapper, sign_in_button, sign_in_form } from "./SignIn.css.js";
14
14
  const schema = z.object({
@@ -10,6 +10,7 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
10
10
  /* empty css */
11
11
  import "../utils/allowedAxosDomains.js";
12
12
  import { getVariant } from "../utils/getVariant.js";
13
+ import "react";
13
14
  import clsx from "clsx";
14
15
  import { bulletIcon } from "./BulletItem.css.js";
15
16
  const BulletItem = (props) => {
@@ -70,13 +70,12 @@ import "../Auth/SignInPassword.js";
70
70
  /* empty css */
71
71
  /* empty css */
72
72
  import "../Carousel/index.js";
73
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
74
73
  /* empty css */
75
74
  import "../Chatbot/store/chat.js";
76
75
  import "../Chatbot/authenticate.js";
76
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
77
77
  /* empty css */
78
78
  import "../Chatbot/store/messages.js";
79
- import "@ujet/websdk-headless";
80
79
  /* empty css */
81
80
  import "../Comparison/Comparison.css.js";
82
81
  import "next/image.js";
@@ -5,8 +5,8 @@ import { Chevron } from "../../Chevron/index.js";
5
5
  import { title } from "../../IconBillboard/IconBillboard.css.js";
6
6
  import "../../utils/allowedAxosDomains.js";
7
7
  import { getVariant } from "../../utils/getVariant.js";
8
- import clsx from "clsx";
9
8
  import { useRef, useState, useEffect } from "react";
9
+ import clsx from "clsx";
10
10
  import { calculator } from "../calculator.css.js";
11
11
  import { container, calc_container, calc_block, pb0_1023, slider_block_wrapper, w100, stat_row, balance_wrapper, fb50, stat, slider_wrapper, slider, pt0_1023, text_block } from "./AnnualFeeCalculator.css.js";
12
12
  const AnnualFeeCalculator = ({
@@ -19,10 +19,10 @@ import "../../Input/DownPaymentInput.js";
19
19
  import "../../Input/RadioButton.js";
20
20
  import { PercentageInput } from "../../Input/PercentageInput.js";
21
21
  import "../../utils/allowedAxosDomains.js";
22
+ import { z } from "zod";
22
23
  import { getVariant } from "../../utils/getVariant.js";
23
24
  import clsx from "clsx";
24
25
  import { useForm, FormProvider } from "react-hook-form";
25
- import { z } from "zod";
26
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,
@@ -14,13 +14,13 @@ import '../assets/Forms/QuickPricer/UserInformation.css';import '../assets/Forms
14
14
  /* empty css */
15
15
  import "../utils/allowedAxosDomains.js";
16
16
  import { getVariant } from "../utils/getVariant.js";
17
+ import { useRef, useEffect } from "react";
17
18
  import clsx from "clsx";
18
19
  /* empty css */
19
20
  /* empty css */
20
21
  import "../Accordion/Accordion.js";
21
22
  import "../Accordion/Accordion.css.js";
22
23
  import "../AlertBanner/AlertBanner.css.js";
23
- import { useRef, useEffect } from "react";
24
24
  import "../Article/Article.css.js";
25
25
  import "../ArticlesSet/ArticlesSet.css.js";
26
26
  import "../Chevron/Chevron.css.js";
@@ -49,14 +49,13 @@ import { SummitApyCalculator } from "./SummitApyCalculator/index.js";
49
49
  /* empty css */
50
50
  /* empty css */
51
51
  import "../Carousel/index.js";
52
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
53
52
  /* empty css */
54
53
  import "../Chatbot/store/chat.js";
55
54
  import "../Chatbot/authenticate.js";
56
55
  import "react-use";
56
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
57
57
  /* empty css */
58
58
  import "../Chatbot/store/messages.js";
59
- import "@ujet/websdk-headless";
60
59
  /* empty css */
61
60
  import "../Comparison/Comparison.css.js";
62
61
  import "next/image.js";
@@ -4,8 +4,8 @@ import { button } from "../../Button/Button.css.js";
4
4
  import { title } from "../../IconBillboard/IconBillboard.css.js";
5
5
  import "../../utils/allowedAxosDomains.js";
6
6
  import { getVariant } from "../../utils/getVariant.js";
7
- import clsx from "clsx";
8
7
  import { useState } from "react";
8
+ import clsx from "clsx";
9
9
  import { calc_text, description_text, calc_disclosure } from "../BalanceAPYCalculator/BalanceAPYCalculator.css.js";
10
10
  import { calculator } from "../calculator.css.js";
11
11
  import { calc_container, container, h2i, inputs_container, input_container, input_box, error_message, hide_select_arrow, calculation_header, payment_results } from "../MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
@@ -5,8 +5,8 @@ import { calc_container, container, h2i, inputs_container, input_container, inpu
5
5
  import { title } from "../../IconBillboard/IconBillboard.css.js";
6
6
  import "../../utils/allowedAxosDomains.js";
7
7
  import { getVariant } from "../../utils/getVariant.js";
8
- import clsx from "clsx";
9
8
  import { useState } from "react";
9
+ import clsx from "clsx";
10
10
  import { calculator } from "../calculator.css.js";
11
11
  const MaxLoanCalculator = ({
12
12
  variant,
@@ -4,8 +4,8 @@ import { button } from "../../Button/Button.css.js";
4
4
  import { title } from "../../IconBillboard/IconBillboard.css.js";
5
5
  import "../../utils/allowedAxosDomains.js";
6
6
  import { getVariant } from "../../utils/getVariant.js";
7
- import clsx from "clsx";
8
7
  import { useState } from "react";
8
+ import clsx from "clsx";
9
9
  import { calc_text, description_text, calc_disclosure } from "../BalanceAPYCalculator/BalanceAPYCalculator.css.js";
10
10
  import { calculator } from "../calculator.css.js";
11
11
  import { calc_container, container, h2i, inputs_container, input_container, input_box, error_message, calculation_header, payment_results } from "./MonthlyPaymentCalculator.css.js";
@@ -72,13 +72,12 @@ import "../Auth/SignInPassword.js";
72
72
  /* empty css */
73
73
  /* empty css */
74
74
  /* empty css */
75
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
76
75
  /* empty css */
77
76
  import "../Chatbot/store/chat.js";
78
77
  import "../Chatbot/authenticate.js";
78
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
79
79
  /* empty css */
80
80
  import "../Chatbot/store/messages.js";
81
- import "@ujet/websdk-headless";
82
81
  /* empty css */
83
82
  import "../Comparison/Comparison.css.js";
84
83
  import "next/image.js";
@@ -1,4 +1,3 @@
1
- import "./Chatbot.css.ts.vanilla.css.js";
2
1
  import '../assets/Chatbot/Bubble.css';/* empty css */
3
2
  var bubbleWrapper = "_7u9pv30";
4
3
  var svgFill = "_7u9pv31";
@@ -1,3 +1,4 @@
1
+ import "./Chatbot.css.ts.vanilla.css.js";
1
2
  import '../assets/Chatbot/ChatWindow.css';/* empty css */
2
3
  var windowStyle = "_13n1jqk0";
3
4
  var windowOpenStyle = "_13n1jqk1";
@@ -2,7 +2,7 @@ export type ChatbotProps = {
2
2
  project?: "axos" | "ufb";
3
3
  debug?: boolean;
4
4
  };
5
- export declare const Chatbot: ({ project, projectEnv, menuOption, }: {
5
+ export declare const Chatbot: ({ project, projectEnv, menuOption, debug, }: {
6
6
  project?: "axos" | "ufb";
7
7
  projectEnv?: "dev" | "qa" | "uat" | "stg" | "prod";
8
8
  menuOption?: "Support Virtual Agent" | string;
@@ -6,13 +6,13 @@ import { chatbotUFB, chatbotAXB } from "./Chatbot.css.js";
6
6
  import { ChatWindow } from "./ChatWindow.js";
7
7
  import { useOpenChat } from "./store/chat.js";
8
8
  import { useMessages } from "./store/messages.js";
9
- import { Logger, consoleLoggerHandler, Client } from "@ujet/websdk-headless";
10
9
  import { useRef, useState } from "react";
11
10
  import { useMount, useUnmount } from "react-use";
12
11
  const Chatbot = ({
13
12
  project = "axos",
14
13
  projectEnv = "dev",
15
- menuOption = "Support Virtual Agent"
14
+ menuOption = "Support Virtual Agent",
15
+ debug = false
16
16
  }) => {
17
17
  const { hasOpenedOnce, toggle, reset } = useOpenChat();
18
18
  const { addMessage, addMessages, clearMessages, messages } = useMessages();
@@ -48,9 +48,6 @@ const Chatbot = ({
48
48
  }
49
49
  }
50
50
  };
51
- if (projectEnv !== "prod") {
52
- Logger.addHandler(consoleLoggerHandler);
53
- }
54
51
  const onReadyHandler = async () => {
55
52
  console.log("Chat client is ready");
56
53
  };
@@ -124,6 +121,10 @@ const Chatbot = ({
124
121
  clientRef.current?.off("chat.connected", onChatConnectedHandler);
125
122
  };
126
123
  const createClient = async () => {
124
+ const { Client, Logger, consoleLoggerHandler } = await import("@ujet/websdk-headless");
125
+ if (projectEnv !== "prod" || debug) {
126
+ Logger.addHandler(consoleLoggerHandler);
127
+ }
127
128
  if (clientRef.current) return;
128
129
  const client = new Client({
129
130
  companyId: process.env.CCAI_COMPANY_ID || "",
@@ -72,13 +72,12 @@ import "../Auth/SignInPassword.js";
72
72
  /* empty css */
73
73
  /* empty css */
74
74
  import "../Carousel/index.js";
75
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
76
75
  /* empty css */
77
76
  import "../Chatbot/store/chat.js";
78
77
  import "../Chatbot/authenticate.js";
78
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
79
79
  /* empty css */
80
80
  import "../Chatbot/store/messages.js";
81
- import "@ujet/websdk-headless";
82
81
  /* empty css */
83
82
  import "../Comparison/Comparison.css.js";
84
83
  import "next/image.js";
@@ -72,13 +72,12 @@ import "../Auth/SignInPassword.js";
72
72
  /* empty css */
73
73
  /* empty css */
74
74
  import "../Carousel/index.js";
75
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
76
75
  /* empty css */
77
76
  import "../Chatbot/store/chat.js";
78
77
  import "../Chatbot/authenticate.js";
78
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
79
79
  /* empty css */
80
80
  import "../Chatbot/store/messages.js";
81
- import "@ujet/websdk-headless";
82
81
  /* empty css */
83
82
  import { comparison_layout, comparison_content, headerComparison, feature_header, feature_title, comparison_feature, comparison_list, comparison_buttons, comparison } from "./Comparison.css.js";
84
83
  import "next/image.js";
@@ -72,13 +72,12 @@ import "../Auth/SignInPassword.js";
72
72
  /* empty css */
73
73
  /* empty css */
74
74
  import "../Carousel/index.js";
75
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
76
75
  /* empty css */
77
76
  import "../Chatbot/store/chat.js";
78
77
  import "../Chatbot/authenticate.js";
78
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
79
79
  /* empty css */
80
80
  import "../Chatbot/store/messages.js";
81
- import "@ujet/websdk-headless";
82
81
  /* empty css */
83
82
  import "../Comparison/Comparison.css.js";
84
83
  import "next/image.js";
@@ -73,13 +73,12 @@ import "../Auth/SignInPassword.js";
73
73
  /* empty css */
74
74
  /* empty css */
75
75
  import "../Carousel/index.js";
76
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
77
76
  /* empty css */
78
77
  import "../Chatbot/store/chat.js";
79
78
  import "../Chatbot/authenticate.js";
79
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
80
80
  /* empty css */
81
81
  import "../Chatbot/store/messages.js";
82
- import "@ujet/websdk-headless";
83
82
  /* empty css */
84
83
  import "../Comparison/Comparison.css.js";
85
84
  import "next/image.js";
@@ -68,13 +68,12 @@ import "../../Auth/SignInPassword.js";
68
68
  /* empty css */
69
69
  /* empty css */
70
70
  import "../../Carousel/index.js";
71
- import "../../Chatbot/Chatbot.css.ts.vanilla.css.js";
72
71
  /* empty css */
73
72
  import "../../Chatbot/store/chat.js";
74
73
  import "../../Chatbot/authenticate.js";
74
+ import "../../Chatbot/Chatbot.css.ts.vanilla.css.js";
75
75
  /* empty css */
76
76
  import "../../Chatbot/store/messages.js";
77
- import "@ujet/websdk-headless";
78
77
  /* empty css */
79
78
  import "../../Comparison/Comparison.css.js";
80
79
  import "next/image.js";
@@ -26,11 +26,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
26
26
  /* empty css */
27
27
  /* empty css */
28
28
  import "../utils/allowedAxosDomains.js";
29
+ import * as z from "zod";
29
30
  import { associatedEmail } from "../utils/EverestValidity.js";
30
31
  import { getVariant } from "../utils/getVariant.js";
32
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
31
33
  import clsx from "clsx";
32
34
  import { useForm, FormProvider } from "react-hook-form";
33
- import * as z from "zod";
34
35
  import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
36
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
36
37
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -49,10 +50,11 @@ const ApplicationStart = ({
49
50
  onValidate,
50
51
  id
51
52
  }) => {
53
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
52
54
  const schema = z.object({
53
55
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
54
56
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
55
- email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
57
+ email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
56
58
  phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
57
59
  const removeDashes = val.replace(/-/gi, "");
58
60
  if (removeDashes.length !== 10) {
@@ -13,6 +13,7 @@ import '../assets/Modal/Modal.css';import '../assets/VideoWrapper/VideoWrapper.c
13
13
  /* empty css */
14
14
  import "../utils/allowedAxosDomains.js";
15
15
  import { getVariant } from "../utils/getVariant.js";
16
+ import { useReducer } from "react";
16
17
  import clsx from "clsx";
17
18
  /* empty css */
18
19
  /* empty css */
@@ -22,7 +23,6 @@ import "../Chevron/Chevron.css.js";
22
23
  import "../Accordion/Accordion.js";
23
24
  import "../Accordion/Accordion.css.js";
24
25
  import "../AlertBanner/AlertBanner.css.js";
25
- import { useReducer } from "react";
26
26
  import "../Article/Article.css.js";
27
27
  import "../ArticlesSet/ArticlesSet.css.js";
28
28
  import "../Calculators/calculator.css.js";
@@ -73,13 +73,12 @@ import "../Auth/SignInPassword.js";
73
73
  /* empty css */
74
74
  /* empty css */
75
75
  import "../Carousel/index.js";
76
- import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
77
76
  /* empty css */
78
77
  import "../Chatbot/store/chat.js";
79
78
  import "../Chatbot/authenticate.js";
79
+ import "../Chatbot/Chatbot.css.ts.vanilla.css.js";
80
80
  /* empty css */
81
81
  import "../Chatbot/store/messages.js";
82
- import "@ujet/websdk-headless";
83
82
  /* empty css */
84
83
  import "../Comparison/Comparison.css.js";
85
84
  import "next/image.js";
@@ -27,11 +27,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
27
27
  /* empty css */
28
28
  /* empty css */
29
29
  import "../utils/allowedAxosDomains.js";
30
+ import * as z from "zod";
30
31
  import { associatedEmail } from "../utils/EverestValidity.js";
31
32
  import { getVariant } from "../utils/getVariant.js";
33
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
32
34
  import clsx from "clsx";
33
35
  import { useForm, FormProvider } from "react-hook-form";
34
- import * as z from "zod";
35
36
  import { iconForm, headerForm, form, descriptionField, headerContainer, xc_input, fullRowForm, ro_input, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
36
37
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
37
38
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -65,6 +66,7 @@ const ClearingForm = ({
65
66
  onValidate,
66
67
  id
67
68
  }) => {
69
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
68
70
  const schema = z.object({
69
71
  first_name: z.string({ message: "First name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
70
72
  message: "First name is required."
@@ -72,7 +74,7 @@ const ClearingForm = ({
72
74
  last_name: z.string({ message: "Last Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
73
75
  message: "Last Name is required."
74
76
  }).trim().min(1, { message: "Last Name is required." }),
75
- email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
77
+ email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
76
78
  phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
77
79
  const removeDashes = val.replace(/-/gi, "");
78
80
  if (removeDashes.length !== 10) {
@@ -26,11 +26,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
26
26
  /* empty css */
27
27
  /* empty css */
28
28
  import "../utils/allowedAxosDomains.js";
29
+ import * as z from "zod";
29
30
  import { associatedEmail } from "../utils/EverestValidity.js";
30
31
  import { getVariant } from "../utils/getVariant.js";
32
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
31
33
  import clsx from "clsx";
32
34
  import { useForm, FormProvider } from "react-hook-form";
33
- import * as z from "zod";
34
35
  import { iconForm, headerForm, form, descriptionField, headerContainer, x_input, fullRowForm, pl_label, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
36
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
36
37
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -49,6 +50,7 @@ const CommercialDeposits = ({
49
50
  onValidate,
50
51
  id
51
52
  }) => {
53
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
52
54
  const schema = z.object({
53
55
  first_name: z.string({ message: "First Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
54
56
  message: "First Name is required."
@@ -56,7 +58,7 @@ const CommercialDeposits = ({
56
58
  last_name: z.string({ message: "Last Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
57
59
  message: "Last Name is required."
58
60
  }).trim().min(1, { message: "Last Name is required." }),
59
- email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
61
+ email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
60
62
  phone: z.string({ message: "Business Phone is required." }).regex(/[\d-]{10}/, { message: "Business Phone is required." }).min(10, { message: "Business Phone is required." }).max(12, { message: "Business Phone is required." }).transform((val, ctx) => {
61
63
  const removeDashes = val.replace(/-/gi, "");
62
64
  if (removeDashes.length !== 10) {
@@ -26,11 +26,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
26
26
  /* empty css */
27
27
  /* empty css */
28
28
  import "../utils/allowedAxosDomains.js";
29
+ import * as z from "zod";
29
30
  import { associatedEmail } from "../utils/EverestValidity.js";
30
31
  import { getVariant } from "../utils/getVariant.js";
32
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
31
33
  import clsx from "clsx";
32
34
  import { useForm, FormProvider } from "react-hook-form";
33
- import * as z from "zod";
34
35
  import { iconForm, headerForm, form, descriptionField, headerContainer, x_input, fullRowForm, pl_label, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
36
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
36
37
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -49,6 +50,7 @@ const CommercialDepositsNoLendingOption = ({
49
50
  onValidate,
50
51
  id
51
52
  }) => {
53
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
52
54
  const schema = z.object({
53
55
  first_name: z.string({ message: "First Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
54
56
  message: "First Name is required."
@@ -56,7 +58,7 @@ const CommercialDepositsNoLendingOption = ({
56
58
  last_name: z.string({ message: "Last Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
57
59
  message: "Last Name is required."
58
60
  }).trim().min(1, { message: "Last Name is required." }),
59
- email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
61
+ email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
60
62
  phone: z.string({ message: "Business Phone is required." }).regex(/[\d-]{10}/, { message: "Business Phone is required." }).min(10, { message: "Business Phone is required." }).max(12, { message: "Business Phone is required." }).transform((val, ctx) => {
61
63
  const removeDashes = val.replace(/-/gi, "");
62
64
  if (removeDashes.length !== 10) {
@@ -27,11 +27,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
27
27
  /* empty css */
28
28
  /* empty css */
29
29
  import "../utils/allowedAxosDomains.js";
30
+ import * as z from "zod";
30
31
  import { associatedEmail } from "../utils/EverestValidity.js";
31
32
  import { getVariant } from "../utils/getVariant.js";
33
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
32
34
  import clsx from "clsx";
33
35
  import { useForm, FormProvider } from "react-hook-form";
34
- import * as z from "zod";
35
36
  import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
36
37
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
37
38
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -65,6 +66,7 @@ const CommercialLending = ({
65
66
  setCRESLPage(true);
66
67
  }
67
68
  }, [pathname]);
69
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
68
70
  const schema = z.object({
69
71
  first_name: z.string({
70
72
  required_error: "First name is required",
@@ -78,7 +80,7 @@ const CommercialLending = ({
78
80
  }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
79
81
  message: "Invalid last name"
80
82
  }).trim().min(1, { message: "Last Name is required." }),
81
- email: z.string().email({ message: "Business Email is required." }).refine(async (val) => await validateEmail(val)),
83
+ email: z.string().email({ message: "Business Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
82
84
  General_Business_Phone_SFDC2__c: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Business Phone is required." }).max(12, { message: "Business Phone is required." }).transform((val, ctx) => {
83
85
  const removeDashes = val.replace(/-/gi, "");
84
86
  if (removeDashes.length !== 10) {
@@ -27,11 +27,12 @@ import "../Input/DownPaymentInput.js";
27
27
  import "../Input/RadioButton.js";
28
28
  import { LoadingIndicator } from "../LoadingIndicator/index.js";
29
29
  import "../utils/allowedAxosDomains.js";
30
+ import { z } from "zod";
30
31
  import { associatedEmail } from "../utils/EverestValidity.js";
31
32
  import { getVariant } from "../utils/getVariant.js";
33
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
32
34
  import clsx from "clsx";
33
35
  import { useForm, FormProvider } from "react-hook-form";
34
- import { z } from "zod";
35
36
  import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
36
37
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
37
38
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -50,6 +51,7 @@ const CommercialPremiumFinance = ({
50
51
  description,
51
52
  id
52
53
  }) => {
54
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
53
55
  const schema = z.object({
54
56
  first_name: z.string({
55
57
  required_error: "First name is required",
@@ -63,7 +65,7 @@ const CommercialPremiumFinance = ({
63
65
  }).regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g, {
64
66
  message: "Invalid last name"
65
67
  }).trim().min(1, { message: "Last Name is required." }),
66
- email: z.string().email({ message: "Invalid email address" }).refine(async (val) => await validateEmail(val), {
68
+ email: z.string().email({ message: "Invalid email address" }).refine(cachedEmailValidator, {
67
69
  message: "Invalid email address"
68
70
  }),
69
71
  Insurance_Company__c: z.string(),
@@ -26,11 +26,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
26
26
  /* empty css */
27
27
  /* empty css */
28
28
  import "../utils/allowedAxosDomains.js";
29
+ import * as z from "zod";
29
30
  import { associatedEmail } from "../utils/EverestValidity.js";
30
31
  import { getVariant } from "../utils/getVariant.js";
32
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
31
33
  import clsx from "clsx";
32
34
  import { useForm, FormProvider } from "react-hook-form";
33
- import * as z from "zod";
34
35
  import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
36
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
36
37
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -49,10 +50,11 @@ const ContactCompany = ({
49
50
  onValidate,
50
51
  id
51
52
  }) => {
53
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
52
54
  const schema = z.object({
53
55
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
54
56
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
55
- email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
57
+ email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
56
58
  phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
57
59
  const removeDashes = val.replace(/-/gi, "");
58
60
  if (removeDashes.length !== 10) {
@@ -26,11 +26,12 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
26
26
  /* empty css */
27
27
  /* empty css */
28
28
  import "../utils/allowedAxosDomains.js";
29
+ import * as z from "zod";
29
30
  import { associatedEmail } from "../utils/EverestValidity.js";
30
31
  import { getVariant } from "../utils/getVariant.js";
32
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
31
33
  import clsx from "clsx";
32
34
  import { useForm, FormProvider } from "react-hook-form";
33
- import * as z from "zod";
34
35
  import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
36
  import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
36
37
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
@@ -49,10 +50,11 @@ const ContactCompanyTitle = ({
49
50
  onValidate,
50
51
  id
51
52
  }) => {
53
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
52
54
  const schema = z.object({
53
55
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
54
56
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
55
- email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
57
+ email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
56
58
  phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
57
59
  const removeDashes = val.replace(/-/gi, "");
58
60
  if (removeDashes.length !== 10) {