@axos-web-dev/shared-components 1.0.36 → 1.0.37

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 (54) hide show
  1. package/dist/Accordion/Accordion.js +1 -1
  2. package/dist/Auth/Logout.js +1 -1
  3. package/dist/Auth/SignInPassword.js +1 -1
  4. package/dist/Calculators/AxosOneCalculator/index.js +1 -1
  5. package/dist/Calculators/BalanceAPYCalculator/index.js +1 -1
  6. package/dist/Calculators/BuyDownCalculator/index.js +2 -2
  7. package/dist/Calculators/MarginTradingCalculator/index.js +2 -2
  8. package/dist/Calculators/SummitApyCalculator/index.js +1 -1
  9. package/dist/CallToActionBar/index.js +1 -1
  10. package/dist/Carousel/index.js +1 -1
  11. package/dist/Chevron/index.js +1 -1
  12. package/dist/Comparison/Comparison.js +1 -1
  13. package/dist/Comparison/ComparisonSet.js +1 -1
  14. package/dist/FaqAccordion/index.js +1 -1
  15. package/dist/FooterDisclosure/LVF/LaVictorieFooter.js +1 -1
  16. package/dist/Forms/ApplicationStart.js +9 -2
  17. package/dist/Forms/ApplyNow.js +1 -1
  18. package/dist/Forms/ClearingForm.js +9 -2
  19. package/dist/Forms/CommercialDeposits.js +8 -1
  20. package/dist/Forms/CommercialLending.js +9 -2
  21. package/dist/Forms/ContactCompany.js +9 -2
  22. package/dist/Forms/ContactCompanyTitle.js +9 -2
  23. package/dist/Forms/ContactUs.js +9 -2
  24. package/dist/Forms/ContactUsAAS.js +9 -4
  25. package/dist/Forms/ContactUsBusiness.js +9 -2
  26. package/dist/Forms/ContactUsLVF.js +9 -2
  27. package/dist/Forms/ContactUsNMLSId.js +9 -2
  28. package/dist/Forms/CpraRequest.js +11 -4
  29. package/dist/Forms/CraPublicFile.js +9 -2
  30. package/dist/Forms/DealerServices.js +9 -2
  31. package/dist/Forms/EmailOnly.js +1 -1
  32. package/dist/Forms/EmailUs.js +1 -1
  33. package/dist/Forms/MortgageRate/MortgageRateForm.js +1 -1
  34. package/dist/Forms/MortgageRate/MortgageRateQuoteFilters.js +1 -1
  35. package/dist/Forms/QuickPricer/QuickPricerForm.js +2 -2
  36. package/dist/Forms/ScheduleCall.js +9 -2
  37. package/dist/Forms/ScheduleCallPremier.js +9 -2
  38. package/dist/Forms/SuccesForm.js +1 -1
  39. package/dist/Forms/VendorQuestionnaire.js +1 -1
  40. package/dist/Forms/WcplSurvey.js +9 -2
  41. package/dist/HeroBanner/HeroBanner.js +1 -1
  42. package/dist/IconBillboard/IconBillboard.js +1 -1
  43. package/dist/ImageBillboard/ImageBillboardSet.js +1 -1
  44. package/dist/Insight/Featured/CategorySelector.js +2 -2
  45. package/dist/Insight/Featured/Featured.js +1 -1
  46. package/dist/Insight/Featured/Header.js +1 -1
  47. package/dist/Modal/contextApi/store.js +1 -1
  48. package/dist/PageNavSet/PageNavSet.js +1 -1
  49. package/dist/Pagination/Pagination.js +1 -1
  50. package/dist/SecondaryFooter/index.js +1 -1
  51. package/dist/SetContainer/SetContainer.js +1 -1
  52. package/dist/Table/Table.js +1 -1
  53. package/dist/TextBlock/TextBlock.js +1 -1
  54. package/package.json +1 -1
@@ -11,7 +11,7 @@ import SvgChevronUp from "../icons/ChevronUp.js";
11
11
  /* empty css */
12
12
  /* empty css */
13
13
  /* empty css */
14
- import { headerAccordion, headerContent, icon, accordion, bodyAccordion, hide, paragraph } from "./Accordion.css.js";
14
+ import { headerContent, icon, headerAccordion, bodyAccordion, hide, paragraph, accordion } from "./Accordion.css.js";
15
15
  const AccordionCtx = createContext({
16
16
  isOpen: false,
17
17
  onclick: () => {
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import clsx from "clsx";
4
4
  import { useFormState } from "react-dom";
5
5
  import { useForm } from "react-hook-form";
6
- import { sign_in_form, sign_in_button } from "./SignIn.css.js";
6
+ import { sign_in_button, sign_in_form } from "./SignIn.css.js";
7
7
  const Logout = ({
8
8
  action
9
9
  }) => {
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import clsx from "clsx";
4
4
  import { useFormState } from "react-dom";
5
5
  import { useForm } from "react-hook-form";
6
- import { sign_in_form, sign_in_button } from "./SignIn.css.js";
6
+ import { sign_in_button, sign_in_form } from "./SignIn.css.js";
7
7
  const SignIn = ({
8
8
  signin
9
9
  }) => {
@@ -18,7 +18,7 @@ import { headerCell } from "../../Table/Table.css.js";
18
18
  import "../../utils/allowedAxosDomains.js";
19
19
  import { getVariant } from "../../utils/getVariant.js";
20
20
  import clsx from "clsx";
21
- import { ax1_container, ax1_calc_icon, ax1_header_container, ax1_header_calc, ax1_calc_text, ax1_description_text, ax1_table_container, ax1_calculator_wrapper, ax1_input_container, ax1_input_label, ax1_calculator_input, ax1_calculator_button, ax1_d_label, ax1_m_label, ax1_calc_disclosure } from "./BalanceAPYCalculator.css.js";
21
+ import { ax1_calc_icon, ax1_header_container, ax1_header_calc, ax1_calc_text, ax1_description_text, ax1_calculator_wrapper, ax1_input_container, ax1_input_label, ax1_calculator_input, ax1_calculator_button, ax1_d_label, ax1_m_label, ax1_table_container, ax1_calc_disclosure, ax1_container } from "./BalanceAPYCalculator.css.js";
22
22
  const AxosOneCalculator = ({
23
23
  headline,
24
24
  bodyCopy,
@@ -18,7 +18,7 @@ import { headerCell } from "../../Table/Table.css.js";
18
18
  import "../../utils/allowedAxosDomains.js";
19
19
  import { getVariant } from "../../utils/getVariant.js";
20
20
  import clsx from "clsx";
21
- import { container, calc_icon, header_container, header_calc, calc_text, description_text, table_container, calculator_wrapper, input_container, input_label, d_label, m_label, calculator_input, calculator_button, max_balance, error_message, calc_disclosure } from "./BalanceAPYCalculator.css.js";
21
+ import { calc_icon, header_container, header_calc, calc_text, description_text, calculator_wrapper, input_container, input_label, d_label, m_label, calculator_input, calculator_button, max_balance, error_message, table_container, calc_disclosure, container } from "./BalanceAPYCalculator.css.js";
22
22
  const BalanceAPYCalculator = ({
23
23
  headline,
24
24
  bodyCopy,
@@ -23,7 +23,7 @@ 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, form_wrapper, row_form, limit_one, calculate_row, form_disclosure } from "./BuyDownCalculator.css.js";
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";
27
27
  const BuyDownCalculator = ({
28
28
  header,
29
29
  body,
@@ -346,7 +346,7 @@ const BuyDownCalculator = ({
346
346
  };
347
347
  const calculatePMT = (annualRate, totalPeriods, financedAmount2) => {
348
348
  const monthlyRate = annualRate / 100 / 12;
349
- const payment = financedAmount2 * monthlyRate / (1 - Math.pow(1 + monthlyRate, -totalPeriods));
349
+ const payment = financedAmount2 * monthlyRate / (1 - Math.pow(1 + monthlyRate, -240));
350
350
  return payment;
351
351
  };
352
352
  const totalInterestByYear = (annualRate, totalPeriods, financedAmount2, years) => {
@@ -74,8 +74,8 @@ const MarginTradingCalculator = ({
74
74
  4: { axs: 12.5, axe: 12, td: 12.125, et: 13.2 },
75
75
  5: { axs: 12, axe: 11.5, td: 12.075, et: 12.7 },
76
76
  6: { axs: 12, axe: 11.5, td: 12.75, et: 12.2 },
77
- 7: { axs: 11.5, axe: 11, td: "N/A", et: "N/A" },
78
- 8: { axs: 11, axe: 10.75, td: "N/A", et: "N/A" }
77
+ 7: { axs: 11.5, axe: 11 },
78
+ 8: { axs: 11, axe: 10.75 }
79
79
  };
80
80
  if (cashVal && secVal && axsCell && axeCell && tdCell && etCell && duration) {
81
81
  const totalValue = Number(cashVal.value) + Number(secVal.value);
@@ -18,7 +18,7 @@ import { headerCell } from "../../Table/Table.css.js";
18
18
  import "../../utils/allowedAxosDomains.js";
19
19
  import { getVariant } from "../../utils/getVariant.js";
20
20
  import clsx from "clsx";
21
- import { summit_container, summit_calc_icon, summit_header_container, summit_header_calc, summit_calc_text, summit_description_text, summit_table_container, summit_calculator_wrapper, summit_input_container, summit_input_label, summit_d_label, summit_m_label, summit_calculator_input, summit_calculator_button, focus_row, summit_calc_disclosure } from "./BalanceAPYCalculator.css.js";
21
+ import { summit_container, summit_calc_icon, summit_header_container, summit_header_calc, summit_calc_text, summit_description_text, summit_calculator_wrapper, summit_input_container, summit_input_label, summit_d_label, summit_m_label, summit_calculator_input, summit_calculator_button, focus_row, summit_table_container, summit_calc_disclosure } from "./BalanceAPYCalculator.css.js";
22
22
  const SummitApyCalculator = ({
23
23
  headline,
24
24
  bodyCopy,
@@ -8,7 +8,7 @@ import { Chevron } from "../Chevron/index.js";
8
8
  import { getVariant } from "../utils/getVariant.js";
9
9
  import clsx from "clsx";
10
10
  import { getBannerSizeClassName } from "../utils/ctaOptions.js";
11
- import { sticky_banner, is_sticky, cta, cta_image_section, cta_image_section_overlap, cta_image_overlap, cta_large_image, cta_body_section, cta_text, ctas_section } from "./CallToActionBar.css.js";
11
+ import { sticky_banner, is_sticky, cta, cta_image_section, cta_image_section_overlap, cta_image_overlap, cta_large_image, cta_text, ctas_section, cta_body_section } from "./CallToActionBar.css.js";
12
12
  const CallToActionBar = ({
13
13
  bannerSize,
14
14
  image,
@@ -121,7 +121,7 @@ import "../StepItemSet/StepItemSet.css.js";
121
121
  import "next/script.js";
122
122
  /* empty css */
123
123
  /* empty css */
124
- import { icon, slide, authorLocation, author, quoteSetContainer, headerCarousel, descriptionCarousel, carousel, slides, dots, dot } from "./Carousel.css.js";
124
+ import { icon, slide, authorLocation, author, quoteSetContainer, headerCarousel, descriptionCarousel, slides, carousel, dots, dot } from "./Carousel.css.js";
125
125
  import { useCarousel } from "./store.js";
126
126
  const iconVarints = /* @__PURE__ */ new Map([
127
127
  [
@@ -14,7 +14,7 @@ import { getVariant } from "../utils/getVariant.js";
14
14
  import { useState } from "react";
15
15
  import "../Article/Article.css.js";
16
16
  import { Interstitial } from "../Interstitial/Interstitial.js";
17
- import { chevron_wrapper, chevron } from "./Chevron.css.js";
17
+ import { chevron, chevron_wrapper } from "./Chevron.css.js";
18
18
  /* empty css */
19
19
  import { useGlobalContext } from "../Modal/contextApi/store.js";
20
20
  import { findMoreAxosDomains } from "../utils/allowedAxosDomains.js";
@@ -67,7 +67,7 @@ import "react-dom";
67
67
  /* empty css */
68
68
  import "../Carousel/index.js";
69
69
  /* empty css */
70
- import { comparison, comparison_layout, headerComparison, comparison_feature, feature_header, feature_title, comparison_list, comparison_buttons } from "./Comparison.css.js";
70
+ import { comparison_layout, headerComparison, feature_header, feature_title, comparison_feature, comparison_list, comparison_buttons, comparison } from "./Comparison.css.js";
71
71
  import "next/image.js";
72
72
  import "../HeroBanner/HeroBanner.css.js";
73
73
  import "../HeroBanner/LargeBanner.css.js";
@@ -9,7 +9,7 @@ import { active_tab } from "../Tab/Tab.css.js";
9
9
  import { getVariant } from "../utils/getVariant.js";
10
10
  import clsx from "clsx";
11
11
  import { Comparison } from "./Comparison.js";
12
- import { comparison_container, comparison_tab_container } from "./Comparison.css.js";
12
+ import { comparison_tab_container, comparison_container } from "./Comparison.css.js";
13
13
  const ComparisonSet = ({
14
14
  headline,
15
15
  variant,
@@ -123,7 +123,7 @@ import "next/script.js";
123
123
  /* empty css */
124
124
  import { getLevelNumber } from "../utils/faqAccordionOptions.js";
125
125
  import { create } from "zustand";
126
- import { summary, summaryHeader, content, faqAccordion_section, header, faqAccordion } from "./FaqAccordion.css.js";
126
+ import { summary, summaryHeader, content, header, faqAccordion, faqAccordion_section } from "./FaqAccordion.css.js";
127
127
  const useAccordion = create()((set) => ({
128
128
  itemsOpened: [],
129
129
  addItem: (id) => {
@@ -10,7 +10,7 @@ import "../../icons/CheckIcon/CheckIcon.css.js";
10
10
  import SvgComponent$1 from "../../icons/Logos/LVF.js";
11
11
  import SvgComponent from "../../icons/Logos/LVFText.js";
12
12
  import clsx from "clsx";
13
- import { lvf_footer, lvf_small_footer, lvf_footer_content, lvf_footer_terms, divider } from "./LaVictorieFooter.css.js";
13
+ import { divider, lvf_footer_terms, lvf_footer_content, lvf_small_footer, lvf_footer } from "./LaVictorieFooter.css.js";
14
14
  const LaVictorieFooter = ({
15
15
  footerLinks,
16
16
  logo = "full",
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
36
36
  const ApplicationStart = ({
37
37
  icon = false,
@@ -51,7 +51,7 @@ const ApplicationStart = ({
51
51
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
52
52
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
53
53
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
54
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
54
+ 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) => {
55
55
  const removeDashes = val.replace(/-/gi, "");
56
56
  if (removeDashes.length !== 10) {
57
57
  ctx.addIssue({
@@ -60,6 +60,13 @@ const ApplicationStart = ({
60
60
  });
61
61
  return z.NEVER;
62
62
  }
63
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
64
+ ctx.addIssue({
65
+ code: z.ZodIssueCode.custom,
66
+ message: "Invalid phone number."
67
+ });
68
+ return z.NEVER;
69
+ }
63
70
  return removeDashes;
64
71
  }),
65
72
  checkbox__c: z.boolean()
@@ -45,7 +45,7 @@ import "../Input/InputTextArea.js";
45
45
  import "../Input/DownPaymentInput.js";
46
46
  import "../Input/RadioButton.js";
47
47
  import "react-hook-form";
48
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, show_options, hide_options, form_nav_apply_now, step_title_apply_now, iconbillboards_option_apply_now, back_btn_apply_now, disclosureForm } from "./Forms.css.js";
48
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, step_title_apply_now, form_nav_apply_now, iconbillboards_option_apply_now, show_options, hide_options, back_btn_apply_now, disclosureForm, formContainer } from "./Forms.css.js";
49
49
  import "./SalesforceFieldsForm.js";
50
50
  import "../Input/RadioButton.css.js";
51
51
  import "../Input/Checkbox.css.js";
@@ -32,7 +32,7 @@ import { getVariant } from "../utils/getVariant.js";
32
32
  import clsx from "clsx";
33
33
  import { useForm, FormProvider } from "react-hook-form";
34
34
  import * as z from "zod";
35
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, xc_input, fullRowForm, ro_input, disclosureForm, actions } from "./Forms.css.js";
35
+ import { iconForm, headerForm, form, descriptionField, headerContainer, xc_input, fullRowForm, ro_input, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
36
36
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
37
37
  const options = [
38
38
  { label: "Active Trading", value: "Active Trading" },
@@ -71,7 +71,7 @@ const ClearingForm = ({
71
71
  message: "Last Name is required."
72
72
  }).trim().min(1, { message: "Last Name is required." }),
73
73
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
74
- phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, { message: "Phone is required." }).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
74
+ 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) => {
75
75
  const removeDashes = val.replace(/-/gi, "");
76
76
  if (removeDashes.length !== 10) {
77
77
  ctx.addIssue({
@@ -80,6 +80,13 @@ const ClearingForm = ({
80
80
  });
81
81
  return z.NEVER;
82
82
  }
83
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
84
+ ctx.addIssue({
85
+ code: z.ZodIssueCode.custom,
86
+ message: "Invalid phone number."
87
+ });
88
+ return z.NEVER;
89
+ }
83
90
  return removeDashes;
84
91
  }),
85
92
  company: z.string({ message: "Broker-Dealer Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, x_input, fullRowForm, pl_label, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerForm, form, descriptionField, headerContainer, x_input, fullRowForm, pl_label, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
36
36
  const CommercialDeposits = ({
37
37
  icon = false,
@@ -64,6 +64,13 @@ const CommercialDeposits = ({
64
64
  });
65
65
  return z.NEVER;
66
66
  }
67
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
68
+ ctx.addIssue({
69
+ code: z.ZodIssueCode.custom,
70
+ message: "Invalid phone number."
71
+ });
72
+ return z.NEVER;
73
+ }
67
74
  return removeDashes;
68
75
  }),
69
76
  company: z.string({ message: "Business Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
@@ -32,7 +32,7 @@ import { getVariant } from "../utils/getVariant.js";
32
32
  import clsx from "clsx";
33
33
  import { useForm, FormProvider } from "react-hook-form";
34
34
  import * as z from "zod";
35
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
35
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
36
36
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
37
37
  const CommercialLending = ({
38
38
  icon = false,
@@ -77,7 +77,7 @@ const CommercialLending = ({
77
77
  message: "Invalid last name"
78
78
  }).trim().min(1, { message: "Last Name is required." }),
79
79
  email: z.string().email({ message: "Business Email is required." }).refine(async (val) => await validateEmail(val)),
80
- General_Business_Phone_SFDC2__c: z.string().regex(/[\d-]{10}/).min(10, { message: "Business Phone is required." }).max(12, { message: "Business Phone is required." }).transform((val, ctx) => {
80
+ 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) => {
81
81
  const removeDashes = val.replace(/-/gi, "");
82
82
  if (removeDashes.length !== 10) {
83
83
  ctx.addIssue({
@@ -86,6 +86,13 @@ const CommercialLending = ({
86
86
  });
87
87
  return z.NEVER;
88
88
  }
89
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
90
+ ctx.addIssue({
91
+ code: z.ZodIssueCode.custom,
92
+ message: "Invalid phone number."
93
+ });
94
+ return z.NEVER;
95
+ }
89
96
  return removeDashes;
90
97
  }),
91
98
  Company_NMLS_ID__c: z.string().min(6).max(7).optional().or(z.literal("")),
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
36
36
  const ContactCompany = ({
37
37
  icon = false,
@@ -51,7 +51,7 @@ const ContactCompany = ({
51
51
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
52
52
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
53
53
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
54
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
54
+ 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) => {
55
55
  const removeDashes = val.replace(/-/gi, "");
56
56
  if (removeDashes.length !== 10) {
57
57
  ctx.addIssue({
@@ -60,6 +60,13 @@ const ContactCompany = ({
60
60
  });
61
61
  return z.NEVER;
62
62
  }
63
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
64
+ ctx.addIssue({
65
+ code: z.ZodIssueCode.custom,
66
+ message: "Invalid phone number."
67
+ });
68
+ return z.NEVER;
69
+ }
63
70
  return removeDashes;
64
71
  }),
65
72
  company: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Company is required." }).max(255, { message: "Company can have atmost 255 characters." })
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
36
36
  const ContactCompanyTitle = ({
37
37
  icon = false,
@@ -51,7 +51,7 @@ const ContactCompanyTitle = ({
51
51
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
52
52
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
53
53
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
54
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
54
+ 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) => {
55
55
  const removeDashes = val.replace(/-/gi, "");
56
56
  if (removeDashes.length !== 10) {
57
57
  ctx.addIssue({
@@ -60,6 +60,13 @@ const ContactCompanyTitle = ({
60
60
  });
61
61
  return z.NEVER;
62
62
  }
63
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
64
+ ctx.addIssue({
65
+ code: z.ZodIssueCode.custom,
66
+ message: "Invalid phone number."
67
+ });
68
+ return z.NEVER;
69
+ }
63
70
  return removeDashes;
64
71
  }),
65
72
  company: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Company is required." }).max(255, { message: "Company can have at most 255 characters." }),
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
36
36
  const ContactUs = ({
37
37
  icon = false,
@@ -51,7 +51,7 @@ const ContactUs = ({
51
51
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
52
52
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
53
53
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
54
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
54
+ 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) => {
55
55
  const removeDashes = val.replace(/-/gi, "");
56
56
  if (removeDashes.length !== 10) {
57
57
  ctx.addIssue({
@@ -60,6 +60,13 @@ const ContactUs = ({
60
60
  });
61
61
  return z.NEVER;
62
62
  }
63
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
64
+ ctx.addIssue({
65
+ code: z.ZodIssueCode.custom,
66
+ message: "Invalid phone number."
67
+ });
68
+ return z.NEVER;
69
+ }
63
70
  return removeDashes;
64
71
  })
65
72
  });
@@ -32,7 +32,7 @@ import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import { z } from "zod";
34
34
  import { Roles } from "./FormEnums.js";
35
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
35
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
36
36
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
37
37
  const ContactUsAAS = ({
38
38
  icon = false,
@@ -56,9 +56,7 @@ const ContactUsAAS = ({
56
56
  message: "Invalid last name"
57
57
  }).trim().min(1, { message: "Last Name is required." }),
58
58
  email: z.string({ message: "Email is required." }).email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
59
- phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, {
60
- message: "Invalid phone number"
61
- }).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
59
+ 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) => {
62
60
  const removeDashes = val.replace(/-/gi, "");
63
61
  if (removeDashes.length !== 10) {
64
62
  ctx.addIssue({
@@ -67,6 +65,13 @@ const ContactUsAAS = ({
67
65
  });
68
66
  return z.NEVER;
69
67
  }
68
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
69
+ ctx.addIssue({
70
+ code: z.ZodIssueCode.custom,
71
+ message: "Invalid phone number."
72
+ });
73
+ return z.NEVER;
74
+ }
70
75
  return removeDashes;
71
76
  }),
72
77
  company: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
@@ -43,7 +43,7 @@ import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
43
43
  import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
44
44
  import { useForm, FormProvider } from "react-hook-form";
45
45
  import { z } from "zod";
46
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
46
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
47
47
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
48
48
  /* empty css */
49
49
  /* empty css */
@@ -141,7 +141,7 @@ const ContactUsBusiness = ({
141
141
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
142
142
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
143
143
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
144
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
144
+ 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) => {
145
145
  const removeDashes = val.replace(/-/gi, "");
146
146
  if (removeDashes.length !== 10) {
147
147
  ctx.addIssue({
@@ -150,6 +150,13 @@ const ContactUsBusiness = ({
150
150
  });
151
151
  return z.NEVER;
152
152
  }
153
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
154
+ ctx.addIssue({
155
+ code: z.ZodIssueCode.custom,
156
+ message: "Invalid phone number."
157
+ });
158
+ return z.NEVER;
159
+ }
153
160
  return removeDashes;
154
161
  }),
155
162
  Business_Name__c: z.string().min(1),
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  const ContactUsLVF = ({
36
36
  icon = false,
37
37
  children,
@@ -54,7 +54,7 @@ const ContactUsLVF = ({
54
54
  message: "Invalid last name"
55
55
  }).trim().min(1, { message: "Please complete this required field." }),
56
56
  email: z.string().email({ message: "Please complete this required field." }).refine(async (val) => await validateEmail(val)),
57
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
57
+ 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) => {
58
58
  const removeDashes = val.replace(/-/gi, "");
59
59
  if (removeDashes.length !== 10) {
60
60
  ctx.addIssue({
@@ -63,6 +63,13 @@ const ContactUsLVF = ({
63
63
  });
64
64
  return z.NEVER;
65
65
  }
66
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
67
+ ctx.addIssue({
68
+ code: z.ZodIssueCode.custom,
69
+ message: "Invalid phone number."
70
+ });
71
+ return z.NEVER;
72
+ }
66
73
  return removeDashes;
67
74
  }),
68
75
  message: z.string().min(1, { message: "Please complete this required field." }),
@@ -43,7 +43,7 @@ import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
43
43
  import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
44
44
  import { useForm, FormProvider } from "react-hook-form";
45
45
  import { z } from "zod";
46
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
46
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
47
47
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
48
48
  /* empty css */
49
49
  /* empty css */
@@ -141,7 +141,7 @@ const ContactUsNMLSId = ({
141
141
  first_name: z.string().regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).trim().min(1, { message: "First Name is required." }),
142
142
  last_name: z.string().regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).trim().min(1, { message: "Last Name is required." }),
143
143
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
144
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
144
+ 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) => {
145
145
  const removeDashes = val.replace(/-/gi, "");
146
146
  if (removeDashes.length !== 10) {
147
147
  ctx.addIssue({
@@ -150,6 +150,13 @@ const ContactUsNMLSId = ({
150
150
  });
151
151
  return z.NEVER;
152
152
  }
153
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
154
+ ctx.addIssue({
155
+ code: z.ZodIssueCode.custom,
156
+ message: "Invalid phone number."
157
+ });
158
+ return z.NEVER;
159
+ }
153
160
  return removeDashes;
154
161
  }),
155
162
  NMLS_ID__c: z.string().min(6).max(7)
@@ -25,13 +25,13 @@ import "../icons/CheckIcon/CheckIcon.css.js";
25
25
  /* empty css */
26
26
  /* empty css */
27
27
  /* empty css */
28
+ import CheckboxGroup from "../Input/CheckboxGroup.js";
29
+ import { findMoreAxosDomains } from "../utils/allowedAxosDomains.js";
28
30
  import { getVariant } from "../utils/getVariant.js";
29
31
  import clsx from "clsx";
30
32
  import { useForm, FormProvider } from "react-hook-form";
31
33
  import * as z from "zod";
32
- import { formContainer, iconForm, headerContainer, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
33
- import CheckboxGroup from "../Input/CheckboxGroup.js";
34
- import { findMoreAxosDomains } from "../utils/allowedAxosDomains.js";
34
+ import { iconForm, headerContainer, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  const CpraRequest = ({
36
36
  icon = false,
37
37
  children,
@@ -81,7 +81,7 @@ const CpraRequest = ({
81
81
  message: "Last Name is required."
82
82
  }).trim().min(1, { message: "Last Name is required." }),
83
83
  email: z.string().email({ message: "Email is required." }),
84
- Telephone: z.string().regex(/[\d-]{10}/, { message: "Phone is required." }).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
84
+ Telephone: 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) => {
85
85
  const removeDashes = val.replace(/-/gi, "");
86
86
  if (removeDashes.length !== 10) {
87
87
  ctx.addIssue({
@@ -90,6 +90,13 @@ const CpraRequest = ({
90
90
  });
91
91
  return z.NEVER;
92
92
  }
93
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
94
+ ctx.addIssue({
95
+ code: z.ZodIssueCode.custom,
96
+ message: "Invalid phone number."
97
+ });
98
+ return z.NEVER;
99
+ }
93
100
  return removeDashes;
94
101
  })
95
102
  });
@@ -43,7 +43,7 @@ import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
43
43
  import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
44
44
  import { useForm, FormProvider } from "react-hook-form";
45
45
  import { z } from "zod";
46
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
46
+ import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
47
47
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
48
48
  /* empty css */
49
49
  /* empty css */
@@ -141,7 +141,7 @@ const CraPublicFile = ({
141
141
  First_Name__c: z.string().regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).trim().min(1, { message: "First Name is required." }),
142
142
  Last_Name__c: z.string().regex(/^[a-zA-Z]*(?:[a-zA-Z][a-zA-Z'-]*\s{0,1}){2,}$/g).trim().min(1, { message: "Last Name is required." }),
143
143
  Customer_Email__c: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
144
- Customer_Phone__c: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
144
+ Customer_Phone__c: 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) => {
145
145
  const removeDashes = val.replace(/-/gi, "");
146
146
  if (removeDashes.length !== 10) {
147
147
  ctx.addIssue({
@@ -150,6 +150,13 @@ const CraPublicFile = ({
150
150
  });
151
151
  return z.NEVER;
152
152
  }
153
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
154
+ ctx.addIssue({
155
+ code: z.ZodIssueCode.custom,
156
+ message: "Invalid phone number."
157
+ });
158
+ return z.NEVER;
159
+ }
153
160
  return removeDashes;
154
161
  }),
155
162
  description: z.string()
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
36
36
  const DealerServices = ({
37
37
  icon = false,
@@ -52,7 +52,7 @@ const DealerServices = ({
52
52
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
53
53
  email: z.string().email({ message: "Email is required." }),
54
54
  // .refine(async (val: string) => await validateEmail(val)),
55
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
55
+ 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) => {
56
56
  const removeDashes = val.replace(/-/gi, "");
57
57
  if (removeDashes.length !== 10) {
58
58
  ctx.addIssue({
@@ -61,6 +61,13 @@ const DealerServices = ({
61
61
  });
62
62
  return z.NEVER;
63
63
  }
64
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
65
+ ctx.addIssue({
66
+ code: z.ZodIssueCode.custom,
67
+ message: "Invalid phone number."
68
+ });
69
+ return z.NEVER;
70
+ }
64
71
  return removeDashes;
65
72
  }),
66
73
  title: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Title is required." }),
@@ -44,7 +44,7 @@ import "../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
44
44
  import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
45
45
  import { useForm, FormProvider } from "react-hook-form";
46
46
  import { z } from "zod";
47
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
47
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
48
48
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
49
49
  /* empty css */
50
50
  /* empty css */
@@ -23,7 +23,7 @@ import { getVariant } from "../utils/getVariant.js";
23
23
  import clsx from "clsx";
24
24
  import { useForm, FormProvider } from "react-hook-form";
25
25
  import * as z from "zod";
26
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
26
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
27
27
  const EmailUs = ({
28
28
  icon = false,
29
29
  children,
@@ -43,7 +43,7 @@ import { DownPaymentInput } from "../../Input/DownPaymentInput.js";
43
43
  import "../../Input/RadioButton.js";
44
44
  import { useForm, FormProvider } from "react-hook-form";
45
45
  import * as z from "zod";
46
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, fullRowSelect, formWrapper, centerSelect, mt2rem, fullRowForm, disclosureForm, actions, formBtns, na_cursor } from "../Forms.css.js";
46
+ import { iconForm, headerForm, form, descriptionField, headerContainer, fullRowSelect, formWrapper, centerSelect, mt2rem, fullRowForm, disclosureForm, actions, formBtns, na_cursor, formContainer } from "../Forms.css.js";
47
47
  import { SalesforceSchema } from "../SalesforceFieldsForm.js";
48
48
  import "../../Input/RadioButton.css.js";
49
49
  import "../../Input/Checkbox.css.js";
@@ -19,7 +19,7 @@ import "../../Input/RadioButton.js";
19
19
  import clsx from "clsx";
20
20
  import { useForm, FormProvider } from "react-hook-form";
21
21
  import * as z from "zod";
22
- import { formContainer, headerContainer, headerForm, form, formWrapper, fullRowForm, actions } from "../Forms.css.js";
22
+ import { headerForm, headerContainer, form, fullRowForm, formWrapper, actions, formContainer } from "../Forms.css.js";
23
23
  import { SalesforceSchema } from "../SalesforceFieldsForm.js";
24
24
  import { LoadingIndicator } from "../../LoadingIndicator/index.js";
25
25
  const MortgageRateFilters = ({
@@ -32,8 +32,8 @@ import { format } from "@react-input/number-format";
32
32
  import clsx from "clsx";
33
33
  import { useForm, FormProvider } from "react-hook-form";
34
34
  import * as z from "zod";
35
- import { Purposes, RepresentativesFico, DocType, Citizenship, MortgageLates12, MortgageLates24, HousingEventType, HousingEventHistory, BankruptcyType, BankruptcySeasoning, PropertyType, Occupancy, NumberOfUnits, PrepaymentPenalty, BrokerConpensation } from "../FormEnums.js";
36
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, one_row, section_title, checkbox_group, disclosureForm, actions } from "../Forms.css.js";
35
+ import { BrokerConpensation, PrepaymentPenalty, NumberOfUnits, Occupancy, PropertyType, BankruptcySeasoning, BankruptcyType, HousingEventHistory, HousingEventType, MortgageLates24, MortgageLates12, Citizenship, DocType, RepresentativesFico, Purposes } from "../FormEnums.js";
36
+ import { iconForm, headerContainer, headerForm, form, descriptionField, one_row, section_title, checkbox_group, formWrapper, disclosureForm, actions, formContainer } from "../Forms.css.js";
37
37
  import { SalesforceSchema } from "../SalesforceFieldsForm.js";
38
38
  const QuickPricer = ({
39
39
  icon = false,
@@ -31,7 +31,7 @@ import { getVariant } from "../utils/getVariant.js";
31
31
  import clsx from "clsx";
32
32
  import { useForm, FormProvider } from "react-hook-form";
33
33
  import * as z from "zod";
34
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
34
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
35
35
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
36
36
  const ScheduleCall = ({
37
37
  icon = false,
@@ -51,7 +51,7 @@ const ScheduleCall = ({
51
51
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
52
52
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
53
53
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
54
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
54
+ 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) => {
55
55
  const removeDashes = val.replace(/-/gi, "");
56
56
  if (removeDashes.length !== 10) {
57
57
  ctx.addIssue({
@@ -60,6 +60,13 @@ const ScheduleCall = ({
60
60
  });
61
61
  return z.NEVER;
62
62
  }
63
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
64
+ ctx.addIssue({
65
+ code: z.ZodIssueCode.custom,
66
+ message: "Invalid phone number."
67
+ });
68
+ return z.NEVER;
69
+ }
63
70
  return removeDashes;
64
71
  }),
65
72
  Best_Contact_Date__c: z.string().min(1).date("The field Value must be a date."),
@@ -32,7 +32,7 @@ import { getVariant } from "../utils/getVariant.js";
32
32
  import clsx from "clsx";
33
33
  import { useForm, FormProvider } from "react-hook-form";
34
34
  import * as z from "zod";
35
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
35
+ import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
36
36
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
37
37
  const ScheduleCallPremier = ({
38
38
  icon = false,
@@ -52,7 +52,7 @@ const ScheduleCallPremier = ({
52
52
  first_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "First Name is required." }),
53
53
  last_name: z.string().regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g).trim().min(1, { message: "Last Name is required." }),
54
54
  email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
55
- phone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
55
+ 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) => {
56
56
  const removeDashes = val.replace(/-/gi, "");
57
57
  if (removeDashes.length !== 10) {
58
58
  ctx.addIssue({
@@ -61,6 +61,13 @@ const ScheduleCallPremier = ({
61
61
  });
62
62
  return z.NEVER;
63
63
  }
64
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
65
+ ctx.addIssue({
66
+ code: z.ZodIssueCode.custom,
67
+ message: "Invalid phone number."
68
+ });
69
+ return z.NEVER;
70
+ }
64
71
  return removeDashes;
65
72
  }),
66
73
  Best_Contact_Date__c: z.string().min(1).date("The field Value must be a date."),
@@ -111,7 +111,7 @@ import "next/script.js";
111
111
  /* empty css */
112
112
  /* empty css */
113
113
  import "../Interstitial/Interstitial-variants.css.js";
114
- import { success_wrap, success_icon, success_circle, succes_check_mark } from "./Forms.css.js";
114
+ import { success_icon, success_circle, succes_check_mark, success_wrap } from "./Forms.css.js";
115
115
  import "./SalesforceFieldsForm.js";
116
116
  import "../Input/RadioButton.css.js";
117
117
  import "../Input/Checkbox.css.js";
@@ -21,7 +21,7 @@ import { getVariant } from "../utils/getVariant.js";
21
21
  import clsx from "clsx";
22
22
  import { useForm, FormProvider } from "react-hook-form";
23
23
  import { z } from "zod";
24
- import { formContainer, form, formWrapper, form_row, descriptionField, actions } from "./Forms.css.js";
24
+ import { form, form_row, descriptionField, formWrapper, actions, formContainer } from "./Forms.css.js";
25
25
  const VendorQuestionnaire = ({
26
26
  children,
27
27
  onSubmit = (values) => {
@@ -30,7 +30,7 @@ import { getVariant } from "../utils/getVariant.js";
30
30
  import clsx from "clsx";
31
31
  import { useForm, FormProvider } from "react-hook-form";
32
32
  import * as z from "zod";
33
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions } from "./Forms.css.js";
33
+ import { iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
34
34
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
35
35
  const WCPLSurvey = ({
36
36
  icon = false,
@@ -49,7 +49,7 @@ const WCPLSurvey = ({
49
49
  // Has_Deal: z.enum(["1", "0"]).transform((value) => value === "1"),
50
50
  Has_Deal: z.string(),
51
51
  Description_of_Deal_Details: z.string(),
52
- Telephone: z.string().regex(/[\d-]{10}/).min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
52
+ Telephone: 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) => {
53
53
  const removeDashes = val.replace(/-/gi, "");
54
54
  if (removeDashes.length !== 10) {
55
55
  ctx.addIssue({
@@ -58,6 +58,13 @@ const WCPLSurvey = ({
58
58
  });
59
59
  return z.NEVER;
60
60
  }
61
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
62
+ ctx.addIssue({
63
+ code: z.ZodIssueCode.custom,
64
+ message: "Invalid phone number."
65
+ });
66
+ return z.NEVER;
67
+ }
61
68
  return removeDashes;
62
69
  })
63
70
  });
@@ -9,7 +9,7 @@ import Image from "next/image.js";
9
9
  import clsx from "clsx";
10
10
  import { logout, hero_banner, hero_wrapper, hero_content, reversed, hero_text, heroSupertag, headline_text, hero_btns, hero_img, img_contents, reversed_lg_image } from "./HeroBanner.css.js";
11
11
  import { lg_hero_banner, lg_hero_content, lg_hero_text, lg_hero_eyebrow, lg_headline_text, lg_hero_img, lg_hero_sizing } from "./LargeBanner.css.js";
12
- import { selection_section_icon, selection_section_icon_img, selection_section, selection_section_bg, selection_section_content, selection_headline_text } from "./SelectionBanner.css.js";
12
+ import { selection_section_icon_img, selection_section_icon, selection_section, selection_section_bg, selection_section_content, selection_headline_text } from "./SelectionBanner.css.js";
13
13
  const HeroBanner = ({
14
14
  id,
15
15
  eyebrow,
@@ -7,7 +7,7 @@ import { Button } from "../Button/Button.js";
7
7
  import "../Button/Button.css.js";
8
8
  import "react";
9
9
  import "react-use";
10
- import { billboard_icon, containerIconBillboard, layout, content, headerIconBillboard, title, list, buttons } from "./IconBillboard.css.js";
10
+ import { billboard_icon, layout, headerIconBillboard, title, list, content, buttons, containerIconBillboard } from "./IconBillboard.css.js";
11
11
  const Icon = ({ children }) => /* @__PURE__ */ jsx("div", { className: billboard_icon, role: "presentation", children });
12
12
  const IconBillboard = (props) => {
13
13
  const {
@@ -18,7 +18,7 @@ import { OptimizeImage } from "../utils/optimizeImage/OptimizeImage.js";
18
18
  import { useExitIntentModal } from "./ExitIntentModal/useExitIntentModal.js";
19
19
  import { ModalWrapper } from "./ExitIntentModal/ModalWrapper.js";
20
20
  import clsx from "clsx";
21
- import { billboard, imagePlacement, billboard_img, image_background, rate_container, rate_pad, up_to, rate_billboard, apy_billboard, body, billboard_body, billboard_header_section, supertag, header, body_copy, sub_bullets, billboard_ctas } from "./ImageBillboard.css.js";
21
+ import { billboard_img, image_background, up_to, rate_billboard, apy_billboard, rate_pad, rate_container, body, billboard_body, billboard_header_section, supertag, header, body_copy, sub_bullets, billboard_ctas, billboard, imagePlacement } from "./ImageBillboard.css.js";
22
22
  const ImageBillboard = ({
23
23
  id,
24
24
  variant,
@@ -84,7 +84,7 @@ import "../../FooterDisclosure/FooterDisclosure.css.js";
84
84
  /* empty css */
85
85
  import "../../ImageBillboard/ImageBillboard.css.js";
86
86
  /* empty css */
87
- import { featured_maingrid_img, featured_maingrid_item, featured_center_vertical } from "./Featured.css.js";
87
+ import { featured_maingrid_img, featured_center_vertical, featured_maingrid_item } from "./Featured.css.js";
88
88
  /* empty css */
89
89
  /* empty css */
90
90
  import "../../LandingPageHeader/LandingPageHeader.css.js";
@@ -119,7 +119,7 @@ import "next/script.js";
119
119
  /* empty css */
120
120
  /* empty css */
121
121
  import "../../Modal/contextApi/store.js";
122
- import { selector_section, selector_link, selector_title_link, selector_more, selector_grid_items, selector_link_mobile, selector_small_item, selector_img, selector_grid_content, selector_title } from "./CategorySelector.css.js";
122
+ import { selector_title_link, selector_more, selector_link, selector_grid_items, selector_link_mobile, selector_section, selector_img, selector_title, selector_grid_content, selector_small_item } from "./CategorySelector.css.js";
123
123
  const CategorySelector = (props) => {
124
124
  const {
125
125
  id,
@@ -87,7 +87,7 @@ import { supertag } from "../../ImageBillboard/ImageBillboard.css.js";
87
87
  /* empty css */
88
88
  /* empty css */
89
89
  /* empty css */
90
- import { featured_subgrid_item, featured_supertag, featured_subgrid_title, featured_center_vertical, featured_section, featured_title, featured_grid, featured_maingrid, featured_hero, featured_maingrid_img, featured_maingrid_item, featured_maingrid_title, featured_subgrid, featured_subgrid_divider } from "./Featured.css.js";
90
+ import { featured_subgrid_item, featured_supertag, featured_subgrid_title, featured_center_vertical, featured_title, featured_maingrid_img, featured_maingrid_title, featured_maingrid_item, featured_maingrid, featured_hero, featured_subgrid_divider, featured_subgrid, featured_grid, featured_section } from "./Featured.css.js";
91
91
  /* empty css */
92
92
  /* empty css */
93
93
  import "../../LandingPageHeader/LandingPageHeader.css.js";
@@ -116,7 +116,7 @@ import "../../StepItemSet/StepItemSet.css.js";
116
116
  import "next/script.js";
117
117
  /* empty css */
118
118
  /* empty css */
119
- import { header_in_insight, header_featured, header_title_featured } from "./Header.css.js";
119
+ import { header_title_featured, header_in_insight, header_featured } from "./Header.css.js";
120
120
  const BreadcumbHeader = (props) => {
121
121
  const { section, showTitle = true } = props;
122
122
  return /* @__PURE__ */ jsx(
@@ -3,7 +3,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import { Modal } from "../Modal.js";
4
4
  import "../../utils/allowedAxosDomains.js";
5
5
  import { shortUrl } from "../../utils/validateExternalLinks.js";
6
- import { createContext, useState, useContext } from "react";
6
+ import { createContext, useContext, useState } from "react";
7
7
  const GlobalContext = createContext({
8
8
  targetLinkUrl: "",
9
9
  setTargetLinkUrl: () => "",
@@ -5,7 +5,7 @@ import { useState, useRef, useEffect } from "react";
5
5
  import Slider from "react-slick";
6
6
  import "../PageNavItem/PageNavItem.css.js";
7
7
  import { PageNavItem } from "../PageNavItem/PageNavItem.js";
8
- import { sticky_nav, nav_wrapper } from "./PageNavigationSet.css.js";
8
+ import { nav_wrapper, sticky_nav } from "./PageNavigationSet.css.js";
9
9
  const PageNavSet = ({ id, pageNavItems }) => {
10
10
  const SliderComponent = Slider.default ? Slider.default : Slider;
11
11
  const [activeSection, setActiveSection] = useState(
@@ -11,7 +11,7 @@ import SvgChevronDown from "../icons/ChevronDown.js";
11
11
  import clsx from "clsx";
12
12
  import Link from "next/link.js";
13
13
  import { useSearchParams } from "next/navigation.js";
14
- import { active_page, pagination_container, disabled_arrows } from "./Pagination.css.js";
14
+ import { active_page, disabled_arrows, pagination_container } from "./Pagination.css.js";
15
15
  function Pagination({ totalPages }) {
16
16
  const searchParams = useSearchParams();
17
17
  const page = searchParams.get("page") || 1;
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Hyperlink } from "../Hyperlink/index.js";
3
3
  import clsx from "clsx";
4
- import { secondary_footer, footer_items_wrapper, footer_item, footer_link } from "./SecondaryFooter.css.js";
4
+ import { footer_items_wrapper, footer_item, footer_link, secondary_footer } from "./SecondaryFooter.css.js";
5
5
  const SecondaryFooter = (props) => {
6
6
  const { items } = props;
7
7
  return /* @__PURE__ */ jsx("div", { className: clsx(secondary_footer, "containment", "section_spacer"), children: /* @__PURE__ */ jsx("div", { className: footer_items_wrapper, children: items?.map((item) => /* @__PURE__ */ jsx("div", { className: footer_item, children: /* @__PURE__ */ jsx(Hyperlink, { targetUrl: item.targetURL, className: footer_link, children: item.displayText }) }, item.id)) }) });
@@ -68,7 +68,7 @@ import "react-dom";
68
68
  import "../Carousel/index.js";
69
69
  /* empty css */
70
70
  import "../Comparison/Comparison.css.js";
71
- import { set_container, isolate_container, heading, set_container_cols, inline_container, setcontainer_section_text } from "./SetContainer.css.js";
71
+ import { heading, set_container_cols, inline_container, setcontainer_section_text, set_container, isolate_container } from "./SetContainer.css.js";
72
72
  import "../Tab/Tab.css.js";
73
73
  import "../icons/Star/Star.css.js";
74
74
  import { heroSupertag } from "../HeroBanner/HeroBanner.css.js";
@@ -11,7 +11,7 @@ import "../utils/allowedAxosDomains.js";
11
11
  import { getVariant } from "../utils/getVariant.js";
12
12
  import clsx from "clsx";
13
13
  import { createElement } from "react";
14
- import { table_section, table_container, table_container_text, table_headline, table_description_text, tableWrapper, table, highlight_first_row, highlight_last_row, alternate_color_rows, apy_table, td, th } from "./Table.css.js";
14
+ import { table_section, table_container_text, table_headline, table_description_text, table_container, table, highlight_first_row, highlight_last_row, alternate_color_rows, apy_table, tableWrapper, td, th } from "./Table.css.js";
15
15
  const TableContainer = ({
16
16
  tableTitle,
17
17
  tableBody,
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import clsx from "clsx";
3
- import { textBlockSection, textBlockHeader } from "./TextBlock.css.js";
3
+ import { textBlockHeader, textBlockSection } from "./TextBlock.css.js";
4
4
  const TextBlock = (props) => {
5
5
  return /* @__PURE__ */ jsxs(
6
6
  "div",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@axos-web-dev/shared-components",
3
3
  "description": "Axos shared components library for web.",
4
- "version": "1.0.36",
4
+ "version": "1.0.37",
5
5
  "type": "module",
6
6
  "module": "dist/main.js",
7
7
  "types": "dist/main.d.ts",