@axos-web-dev/shared-components 0.0.107 → 0.0.109

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 (63) hide show
  1. package/dist/ATMLocator/ATMLocator.js +6 -3
  2. package/dist/Blockquote/index.js +1 -2
  3. package/dist/Button/Button.js +6 -3
  4. package/dist/Calculators/Calculator.js +6 -3
  5. package/dist/Carousel/index.js +6 -3
  6. package/dist/Chevron/index.js +6 -3
  7. package/dist/Comparison/Comparison.js +6 -3
  8. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +6 -3
  9. package/dist/Forms/ClearingForm.d.ts +14 -0
  10. package/dist/Forms/ClearingForm.js +334 -0
  11. package/dist/Forms/ContactUsBusiness.js +6 -3
  12. package/dist/Forms/ContactUsNMLSId.js +6 -3
  13. package/dist/Forms/EmailOnly.js +6 -3
  14. package/dist/Forms/ScheduleCall.js +1 -4
  15. package/dist/Forms/SuccesForm.js +6 -3
  16. package/dist/Forms/index.d.ts +1 -0
  17. package/dist/Forms/index.js +2 -0
  18. package/dist/Hyperlink/index.js +6 -3
  19. package/dist/ImageLink/ImageLink.js +6 -3
  20. package/dist/ImageLink/ImageLinkSet.js +6 -3
  21. package/dist/ImageLink/index.js +6 -3
  22. package/dist/Input/Checkbox.css.d.ts +2 -0
  23. package/dist/Input/Checkbox.css.js +5 -1
  24. package/dist/Input/CheckboxGroup.d.ts +20 -0
  25. package/dist/Input/CheckboxGroup.js +39 -0
  26. package/dist/Input/InputProps.d.ts +0 -6
  27. package/dist/Insight/Featured/CategorySelector.css.d.ts +8 -0
  28. package/dist/Insight/Featured/CategorySelector.css.js +23 -0
  29. package/dist/Insight/Featured/CategorySelector.d.ts +13 -0
  30. package/dist/Insight/Featured/CategorySelector.js +159 -0
  31. package/dist/Insight/Featured/Featured.css.d.ts +13 -0
  32. package/dist/Insight/Featured/Featured.css.js +30 -0
  33. package/dist/Insight/Featured/Featured.d.ts +25 -0
  34. package/dist/Insight/Featured/Featured.js +181 -0
  35. package/dist/Insight/Featured/index.d.ts +3 -0
  36. package/dist/Insight/Featured/index.js +22 -0
  37. package/dist/Insight/index.d.ts +1 -0
  38. package/dist/Insight/index.js +22 -0
  39. package/dist/Modal/Modal.js +6 -3
  40. package/dist/NavigationMenu/AxosBank/SubNavBar.js +7 -4
  41. package/dist/NavigationMenu/AxosBank/index.js +41 -103
  42. package/dist/NavigationMenu/AxosClearing/SubNavBar.js +5 -6
  43. package/dist/NavigationMenu/AxosClearing/index.js +17 -20
  44. package/dist/PageNavSet/PageNavSet.js +6 -1
  45. package/dist/SetContainer/SetContainer.js +6 -3
  46. package/dist/VideoTile/VideoInit.js +1 -2
  47. package/dist/VideoWrapper/index.js +0 -1
  48. package/dist/assets/Input/Checkbox.css +7 -0
  49. package/dist/assets/Insight/Featured/CategorySelector.css +55 -0
  50. package/dist/assets/Insight/Featured/Featured.css +87 -0
  51. package/dist/main.d.ts +1 -0
  52. package/dist/main.js +22 -0
  53. package/package.json +1 -1
  54. package/dist/Input/DatePicker.css.d.ts +0 -1
  55. package/dist/Input/DatePicker.css.js +0 -6
  56. package/dist/Input/Datepicker.d.ts +0 -3
  57. package/dist/Input/Datepicker.js +0 -47
  58. package/dist/Input/InputDate.css.d.ts +0 -6
  59. package/dist/Input/InputDate.css.js +0 -15
  60. package/dist/Input/InputDate.d.ts +0 -3
  61. package/dist/Input/InputDate.js +0 -47
  62. package/dist/assets/Input/DatePicker.css +0 -95
  63. package/dist/assets/Input/InputDate.css +0 -39
@@ -22,7 +22,6 @@ import "../Article/Article.css.js";
22
22
  import "../ArticlesSet/ArticlesSet.css.js";
23
23
  /* empty css */
24
24
  /* empty css */
25
- import "next/image.js";
26
25
  import "../Calculators/ApyCalculator/ApyCalculator.css.js";
27
26
  /* empty css */
28
27
  import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
@@ -59,7 +58,11 @@ import { iconForm } from "../Forms/Forms.css.js";
59
58
  import "../Forms/SalesforceFieldsForm.js";
60
59
  import "../LoadingIndicator/LoadingIndicator.css.js";
61
60
  import "../Input/RadioButton.js";
61
+ import "../Input/RadioButton.css.js";
62
+ import "../Input/Checkbox.css.js";
62
63
  import "../ImageBillboard/ImageBillboard.css.js";
64
+ /* empty css */
65
+ /* empty css */
63
66
  import "../LandingPageHeader/LandingPageHeader.css.js";
64
67
  import "../Chevron/Chevron.css.js";
65
68
  /* empty css */
@@ -68,8 +71,9 @@ import "../Modal/contextApi/store.js";
68
71
  /* empty css */
69
72
  /* empty css */
70
73
  /* empty css */
71
- import "next/link.js";
72
74
  /* empty css */
75
+ import "next/image.js";
76
+ import "next/link.js";
73
77
  import "next/navigation.js";
74
78
  /* empty css */
75
79
  /* empty css */
@@ -86,7 +90,6 @@ import "../Table/Table.css.js";
86
90
  /* empty css */
87
91
  /* empty css */
88
92
  /* empty css */
89
- import "next/script.js";
90
93
  /* empty css */
91
94
  /* empty css */
92
95
  import "../Interstitial/Interstitial-variants.css.js";
@@ -1,11 +1,10 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import css from "./Blockquote.module.js";
3
- import Image from "next/image.js";
4
3
  const Blockquote = ({ id, quote, author }) => {
5
4
  return /* @__PURE__ */ jsxs("figure", { className: css.quote_spacer, id: `id_${id}`, children: [
6
5
  /* @__PURE__ */ jsxs("div", { className: "flex_row", children: [
7
6
  /* @__PURE__ */ jsx(
8
- Image,
7
+ "img",
9
8
  {
10
9
  src: "https://images.axos.com/o9ov1v03uwqk/1yHAcPewDuykSzy4UaAYXP/323ece6db4ecf931e0d3b84c54f1f1fe/quote.svg",
11
10
  width: 64,
@@ -40,13 +40,14 @@ import "../Forms/Forms.css.js";
40
40
  import "../Forms/SalesforceFieldsForm.js";
41
41
  import "../LoadingIndicator/LoadingIndicator.css.js";
42
42
  import "../Input/RadioButton.js";
43
+ import "../Input/RadioButton.css.js";
44
+ import "../Input/Checkbox.css.js";
43
45
  import "iframe-resizer";
44
46
  import "../Calculators/calculator.css.js";
45
47
  /* empty css */
46
48
  import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
47
49
  /* empty css */
48
50
  /* empty css */
49
- import "next/image.js";
50
51
  /* empty css */
51
52
  /* empty css */
52
53
  import "../Carousel/index.js";
@@ -66,13 +67,16 @@ import "../FaqAccordion/index.js";
66
67
  import "../FooterDisclosure/FooterDisclosure.css.js";
67
68
  /* empty css */
68
69
  import "../ImageBillboard/ImageBillboard.css.js";
70
+ /* empty css */
71
+ /* empty css */
69
72
  import "../LandingPageHeader/LandingPageHeader.css.js";
70
73
  /* empty css */
71
74
  /* empty css */
72
75
  /* empty css */
73
76
  /* empty css */
74
- import "next/link.js";
75
77
  /* empty css */
78
+ import "next/image.js";
79
+ import "next/link.js";
76
80
  import "next/navigation.js";
77
81
  /* empty css */
78
82
  /* empty css */
@@ -88,7 +92,6 @@ import "../StepItemSet/StepItemSet.css.js";
88
92
  /* empty css */
89
93
  /* empty css */
90
94
  /* empty css */
91
- import "next/script.js";
92
95
  /* empty css */
93
96
  /* empty css */
94
97
  /* empty css */
@@ -22,7 +22,6 @@ import "../Article/Article.css.js";
22
22
  import "../ArticlesSet/ArticlesSet.css.js";
23
23
  /* empty css */
24
24
  /* empty css */
25
- import "next/image.js";
26
25
  import { AnnualFeeCalculator } from "./AnnualFeeCalculator/index.js";
27
26
  import { ApyCalculator } from "./ApyCalculator/index.js";
28
27
  import { BalanceAPYCalculator } from "./BalanceAPYCalculator/index.js";
@@ -59,6 +58,8 @@ import "../Input/Input.css.js";
59
58
  import "../Input/InputAmount.js";
60
59
  import "../Input/InputPhone.js";
61
60
  import "../Input/InputTextArea.js";
61
+ /* empty css */
62
+ /* empty css */
62
63
  import "../LandingPageHeader/LandingPageHeader.css.js";
63
64
  import "../LoadingIndicator/LoadingIndicator.css.js";
64
65
  import "../Chevron/Chevron.css.js";
@@ -69,8 +70,9 @@ import "react-use";
69
70
  /* empty css */
70
71
  /* empty css */
71
72
  /* empty css */
72
- import "next/link.js";
73
73
  /* empty css */
74
+ import "next/image.js";
75
+ import "next/link.js";
74
76
  import "next/navigation.js";
75
77
  /* empty css */
76
78
  /* empty css */
@@ -87,7 +89,6 @@ import "../Table/Table.css.js";
87
89
  /* empty css */
88
90
  /* empty css */
89
91
  /* empty css */
90
- import "next/script.js";
91
92
  /* empty css */
92
93
  /* empty css */
93
94
  import "../Interstitial/Interstitial-variants.css.js";
@@ -96,6 +97,8 @@ import "react-hook-form";
96
97
  import { iconForm } from "../Forms/Forms.css.js";
97
98
  import "../Forms/SalesforceFieldsForm.js";
98
99
  import "../Input/RadioButton.js";
100
+ import "../Input/RadioButton.css.js";
101
+ import "../Input/Checkbox.css.js";
99
102
  import { iframeResizer } from "iframe-resizer";
100
103
  import { calculators } from "./calculators.js";
101
104
  const Calculator = (props) => {
@@ -46,13 +46,14 @@ import "../Forms/Forms.css.js";
46
46
  import "../Forms/SalesforceFieldsForm.js";
47
47
  import "../LoadingIndicator/LoadingIndicator.css.js";
48
48
  import "../Input/RadioButton.js";
49
+ import "../Input/RadioButton.css.js";
50
+ import "../Input/Checkbox.css.js";
49
51
  import "iframe-resizer";
50
52
  import "../Calculators/calculator.css.js";
51
53
  /* empty css */
52
54
  import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
53
55
  /* empty css */
54
56
  /* empty css */
55
- import "next/image.js";
56
57
  /* empty css */
57
58
  import "../Hyperlink/Hyperlink.css.js";
58
59
  /* empty css */
@@ -70,13 +71,16 @@ import "../FaqAccordion/index.js";
70
71
  import "../FooterDisclosure/FooterDisclosure.css.js";
71
72
  /* empty css */
72
73
  import "../ImageBillboard/ImageBillboard.css.js";
74
+ /* empty css */
75
+ /* empty css */
73
76
  import "../LandingPageHeader/LandingPageHeader.css.js";
74
77
  /* empty css */
75
78
  /* empty css */
76
79
  /* empty css */
77
80
  /* empty css */
78
- import "next/link.js";
79
81
  /* empty css */
82
+ import "next/image.js";
83
+ import "next/link.js";
80
84
  import "next/navigation.js";
81
85
  /* empty css */
82
86
  /* empty css */
@@ -92,7 +96,6 @@ import "../StepItemSet/StepItemSet.css.js";
92
96
  /* empty css */
93
97
  /* empty css */
94
98
  /* empty css */
95
- import "next/script.js";
96
99
  /* empty css */
97
100
  /* empty css */
98
101
  import { icon, slide, authorLocation, author, headerCarousel, descriptionCarousel, carousel, slides, dots, dot } from "./Carousel.css.js";
@@ -43,13 +43,14 @@ import "../Forms/Forms.css.js";
43
43
  import "../Forms/SalesforceFieldsForm.js";
44
44
  import "../LoadingIndicator/LoadingIndicator.css.js";
45
45
  import "../Input/RadioButton.js";
46
+ import "../Input/RadioButton.css.js";
47
+ import "../Input/Checkbox.css.js";
46
48
  import "iframe-resizer";
47
49
  import "../Calculators/calculator.css.js";
48
50
  /* empty css */
49
51
  import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
50
52
  /* empty css */
51
53
  /* empty css */
52
- import "next/image.js";
53
54
  /* empty css */
54
55
  /* empty css */
55
56
  import "../Carousel/index.js";
@@ -69,13 +70,16 @@ import "../FaqAccordion/index.js";
69
70
  import "../FooterDisclosure/FooterDisclosure.css.js";
70
71
  /* empty css */
71
72
  import "../ImageBillboard/ImageBillboard.css.js";
73
+ /* empty css */
74
+ /* empty css */
72
75
  import "../LandingPageHeader/LandingPageHeader.css.js";
73
76
  /* empty css */
74
77
  /* empty css */
75
78
  /* empty css */
76
79
  /* empty css */
77
- import "next/link.js";
78
80
  /* empty css */
81
+ import "next/image.js";
82
+ import "next/link.js";
79
83
  import "next/navigation.js";
80
84
  /* empty css */
81
85
  /* empty css */
@@ -91,7 +95,6 @@ import "../StepItemSet/StepItemSet.css.js";
91
95
  /* empty css */
92
96
  /* empty css */
93
97
  /* empty css */
94
- import "next/script.js";
95
98
  /* empty css */
96
99
  /* empty css */
97
100
  const Chevron = ({
@@ -41,13 +41,14 @@ import "../Forms/Forms.css.js";
41
41
  import "../Forms/SalesforceFieldsForm.js";
42
42
  import "../LoadingIndicator/LoadingIndicator.css.js";
43
43
  import "../Input/RadioButton.js";
44
+ import "../Input/RadioButton.css.js";
45
+ import "../Input/Checkbox.css.js";
44
46
  import "iframe-resizer";
45
47
  import "../Calculators/calculator.css.js";
46
48
  /* empty css */
47
49
  import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
48
50
  /* empty css */
49
51
  /* empty css */
50
- import "next/image.js";
51
52
  /* empty css */
52
53
  import "../Carousel/index.js";
53
54
  import "../Hyperlink/Hyperlink.css.js";
@@ -65,6 +66,8 @@ import "../FaqAccordion/index.js";
65
66
  import "../FooterDisclosure/FooterDisclosure.css.js";
66
67
  /* empty css */
67
68
  import "../ImageBillboard/ImageBillboard.css.js";
69
+ /* empty css */
70
+ /* empty css */
68
71
  import "../Interstitial/Interstitial-variants.css.js";
69
72
  import "../LandingPageHeader/LandingPageHeader.css.js";
70
73
  import "../Chevron/Chevron.css.js";
@@ -74,8 +77,9 @@ import "../Modal/contextApi/store.js";
74
77
  /* empty css */
75
78
  /* empty css */
76
79
  /* empty css */
77
- import "next/link.js";
78
80
  /* empty css */
81
+ import "next/image.js";
82
+ import "next/link.js";
79
83
  import "next/navigation.js";
80
84
  /* empty css */
81
85
  /* empty css */
@@ -91,7 +95,6 @@ import "../StepItemSet/StepItemSet.css.js";
91
95
  /* empty css */
92
96
  /* empty css */
93
97
  /* empty css */
94
- import "next/script.js";
95
98
  /* empty css */
96
99
  /* empty css */
97
100
  const Comparison = ({
@@ -41,13 +41,14 @@ import "../../Forms/Forms.css.js";
41
41
  import "../../Forms/SalesforceFieldsForm.js";
42
42
  import "../../LoadingIndicator/LoadingIndicator.css.js";
43
43
  import "../../Input/RadioButton.js";
44
+ import "../../Input/RadioButton.css.js";
45
+ import "../../Input/Checkbox.css.js";
44
46
  import "iframe-resizer";
45
47
  import "../../Calculators/calculator.css.js";
46
48
  /* empty css */
47
49
  import "../../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
48
50
  /* empty css */
49
51
  /* empty css */
50
- import "next/image.js";
51
52
  /* empty css */
52
53
  import "../../Carousel/index.js";
53
54
  import "../../Hyperlink/Hyperlink.css.js";
@@ -66,13 +67,16 @@ import "../../FaqAccordion/index.js";
66
67
  import "../../FooterDisclosure/FooterDisclosure.css.js";
67
68
  import { footer_section, footer_wrapper, ft_col, ft_col_header, ft_col_subheader, nested_grid, app_col, footer_mobile, ft_panel_group, ft_panel } from "./FooterSiteMap.css.js";
68
69
  import "../../ImageBillboard/ImageBillboard.css.js";
70
+ /* empty css */
71
+ /* empty css */
69
72
  import "../../LandingPageHeader/LandingPageHeader.css.js";
70
73
  /* empty css */
71
74
  /* empty css */
72
75
  /* empty css */
73
76
  /* empty css */
74
- import "next/link.js";
75
77
  /* empty css */
78
+ import "next/image.js";
79
+ import "next/link.js";
76
80
  import "next/navigation.js";
77
81
  /* empty css */
78
82
  /* empty css */
@@ -88,7 +92,6 @@ import "../../StepItemSet/StepItemSet.css.js";
88
92
  /* empty css */
89
93
  /* empty css */
90
94
  /* empty css */
91
- import "next/script.js";
92
95
  /* empty css */
93
96
  /* empty css */
94
97
  const AxosFooterSiteMap = () => {
@@ -0,0 +1,14 @@
1
+ import { FormProps } from './FormProps';
2
+
3
+ export type ClearingInputs = {
4
+ first_name: string;
5
+ last_name: string;
6
+ email: string;
7
+ phone: string;
8
+ company: string;
9
+ Business_Type__c: string;
10
+ Current_Assets_Under_Management__c: string;
11
+ Memo__c: string;
12
+ business_type_selection: string;
13
+ };
14
+ export declare const ClearingForm: ({ icon, children, onSubmit, disclosure, variant: fullVariant, headline, description, callToAction, validateEmail, id, }: FormProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,334 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { zodResolver } from "@hookform/resolvers/zod";
4
+ import { Button } from "../Button/Button.js";
5
+ import "../Button/Button.css.js";
6
+ import { useState } from "react";
7
+ import "react-use";
8
+ import "../Input/Checkbox.js";
9
+ import "../Input/CurrencyInput.js";
10
+ import { Dropdown } from "../Input/Dropdown.js";
11
+ /* empty css */
12
+ /* empty css */
13
+ import { Input } from "../Input/Input.js";
14
+ import "../Input/Input.css.js";
15
+ import "../Input/InputAmount.js";
16
+ import { InputPhone } from "../Input/InputPhone.js";
17
+ import "../Input/InputTextArea.js";
18
+ import "../icons/ArrowIcon/ArrowIcon.css.js";
19
+ import SvgAxosX from "../icons/AxosX/index.js";
20
+ import SvgComponent from "../icons/AxosX/Blue.js";
21
+ import "../icons/CheckIcon/CheckIcon.css.js";
22
+ /* empty css */
23
+ /* empty css */
24
+ /* empty css */
25
+ /* empty css */
26
+ import { associatedEmail } from "../utils/EverestValidity.js";
27
+ import "../utils/allowedAxosDomains.js";
28
+ import { getVariant } from "../utils/getVariant.js";
29
+ import clsx from "clsx";
30
+ import { useForm, FormProvider } from "react-hook-form";
31
+ import * as z from "zod";
32
+ import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
33
+ import { SalesforceSchema } from "./SalesforceFieldsForm.js";
34
+ import CheckboxGroup from "../Input/CheckboxGroup.js";
35
+ const options = [
36
+ { label: "Active Trading", value: "Active Trading" },
37
+ { label: "FinTech", value: "FinTech" },
38
+ { label: "Foreign", value: "Foreign" },
39
+ { label: "Hybrid (RIA and BD)", value: "Hybrid (RIA and BD)" },
40
+ { label: "Independent Contractor", value: "Independent Contractor" },
41
+ { label: "IPOs", value: "IPOs" },
42
+ { label: "Institutional Fixed Income", value: "Institutional Fixed Income" },
43
+ { label: "Institutional Equity", value: "Institutional Equity" },
44
+ { label: "Prime Services", value: "Prime Services" },
45
+ { label: "Retail", value: "Retail" },
46
+ { label: "Retail/Institutional", value: "Retail/Institutional" },
47
+ { label: "RIA", value: "RIA" },
48
+ { label: "Self-Directed", value: "Self-Directed" }
49
+ ];
50
+ const ClearingForm = ({
51
+ icon = false,
52
+ children,
53
+ onSubmit = (values) => {
54
+ console.log(values);
55
+ },
56
+ disclosure,
57
+ variant: fullVariant = "primary",
58
+ headline,
59
+ description,
60
+ callToAction,
61
+ validateEmail,
62
+ id
63
+ }) => {
64
+ const schema = z.object({
65
+ first_name: z.string({ message: "First name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
66
+ message: "First name is required."
67
+ }).trim().min(1, { message: "First Name is required." }),
68
+ last_name: z.string({ message: "Last Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
69
+ message: "Last Name is required."
70
+ }).trim().min(1, { message: "Last Name is required." }),
71
+ email: z.string().email({ message: "Email is required." }).refine(async (val) => await validateEmail(val)),
72
+ 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) => {
73
+ const removeDashes = val.replace(/-/gi, "");
74
+ if (removeDashes.length !== 10) {
75
+ ctx.addIssue({
76
+ code: z.ZodIssueCode.custom,
77
+ message: "Phone must have at least 10 and no more than 10 characters."
78
+ });
79
+ return z.NEVER;
80
+ }
81
+ return removeDashes;
82
+ }),
83
+ company: z.string({ message: "Broker-Dealer Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
84
+ message: "Broker-Dealer Name is required"
85
+ }).trim().min(1, { message: "Broker-Dealer Name is required." }),
86
+ Business_Type__c: z.string({ message: "Type of Business is required." }).trim().min(1, { message: "Type of Business is required." }).refine((val) => val.trim().length > 0, {
87
+ message: "Type of Business is required."
88
+ }),
89
+ Current_Assets_Under_Management__c: z.string().trim().min(1, { message: "Assets Under Management is required." }),
90
+ Memo__c: z.string().trim()
91
+ });
92
+ const [selectedValues, setSelectedValues] = useState([]);
93
+ const [showBusinessTypes, setShowBusinessTypes] = useState(false);
94
+ const [requiredAUM, setRequiredAUM] = useState(false);
95
+ const [requiredTOB, setRequiredTOB] = useState(false);
96
+ const handleShowBusinessType = () => {
97
+ setShowBusinessTypes(true);
98
+ };
99
+ let formattedValues = "";
100
+ const handleBusinessTypeChange = (updatedValues) => {
101
+ setSelectedValues(updatedValues);
102
+ formattedValues = updatedValues.join(";");
103
+ setValue("Business_Type__c", formattedValues);
104
+ handleTOBerrors();
105
+ };
106
+ const methods = useForm({
107
+ resolver: zodResolver(schema.merge(SalesforceSchema), {
108
+ async: true
109
+ }),
110
+ mode: "all",
111
+ defaultValues: {
112
+ email: "",
113
+ Business_Type__c: "FinTech"
114
+ // Set default value as empty array
115
+ }
116
+ });
117
+ const {
118
+ handleSubmit,
119
+ register,
120
+ setValue,
121
+ setError,
122
+ clearErrors,
123
+ formState: { errors, isValid, isSubmitting }
124
+ } = methods;
125
+ const submitForm = async (data) => {
126
+ await onSubmit(data);
127
+ };
128
+ const handleTOBerrors = () => {
129
+ if (!formattedValues.length) {
130
+ setError("Business_Type__c", {
131
+ type: "manual",
132
+ message: "Type of Business is required."
133
+ });
134
+ return;
135
+ } else {
136
+ clearErrors("Business_Type__c");
137
+ setRequiredTOB(true);
138
+ }
139
+ };
140
+ const handleDropdownChange = (event) => {
141
+ const value = event.target.value;
142
+ setValue("Current_Assets_Under_Management__c", value);
143
+ if (value) setRequiredAUM(true);
144
+ };
145
+ const variant = getVariant(fullVariant);
146
+ return /* @__PURE__ */ jsx(
147
+ "section",
148
+ {
149
+ id: `id_${id}`,
150
+ className: clsx(formContainer({ variant })),
151
+ children: /* @__PURE__ */ jsx("div", { className: clsx("containment"), children: /* @__PURE__ */ jsxs(FormProvider, { ...methods, children: [
152
+ icon && /* @__PURE__ */ jsx("div", { className: clsx("text_center", iconForm), children: ["primary", "secondary"].includes(variant) ? /* @__PURE__ */ jsx(SvgComponent, {}) : /* @__PURE__ */ jsx(SvgAxosX, {}) }),
153
+ /* @__PURE__ */ jsxs("div", { className: clsx(headerContainer, "text_center"), children: [
154
+ /* @__PURE__ */ jsx("h2", { className: clsx("header_2", headerForm({ variant })), children: headline }),
155
+ description && /* @__PURE__ */ jsx(
156
+ "div",
157
+ {
158
+ className: clsx(
159
+ form,
160
+ descriptionField({ variant }),
161
+ "text_center"
162
+ ),
163
+ children: description
164
+ }
165
+ )
166
+ ] }),
167
+ /* @__PURE__ */ jsxs("form", { className: form, onSubmit: handleSubmit(submitForm), children: [
168
+ /* @__PURE__ */ jsxs("div", { className: clsx(formWrapper({ variant })), children: [
169
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
170
+ Input,
171
+ {
172
+ id: "first_name",
173
+ ...register("first_name", {
174
+ required: "First Name is required"
175
+ }),
176
+ label: "First Name",
177
+ sizes: "medium",
178
+ required: true,
179
+ error: !!errors.first_name,
180
+ helperText: errors.first_name?.message,
181
+ variant
182
+ }
183
+ ) }),
184
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
185
+ Input,
186
+ {
187
+ id: "last_name",
188
+ ...register("last_name", { required: true }),
189
+ label: "Last Name",
190
+ sizes: "medium",
191
+ required: true,
192
+ error: !!errors.last_name,
193
+ helperText: errors.last_name?.message,
194
+ variant
195
+ }
196
+ ) }),
197
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
198
+ Input,
199
+ {
200
+ id: "email",
201
+ ...register("email", {
202
+ required: true,
203
+ validate: {
204
+ isValid: associatedEmail
205
+ }
206
+ }),
207
+ label: "Email",
208
+ sizes: "medium",
209
+ required: true,
210
+ error: !!errors.email,
211
+ helperText: errors.email?.message,
212
+ variant
213
+ }
214
+ ) }),
215
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
216
+ InputPhone,
217
+ {
218
+ id: "phone",
219
+ ...register("phone", { required: true, maxLength: 12 }),
220
+ label: "Phone",
221
+ sizes: "medium",
222
+ required: true,
223
+ error: !!errors.phone,
224
+ helperText: errors.phone?.message,
225
+ variant
226
+ }
227
+ ) }),
228
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
229
+ Input,
230
+ {
231
+ id: "company",
232
+ ...register("company", { required: true }),
233
+ label: "Broker-Dealer Name",
234
+ sizes: "medium",
235
+ required: true,
236
+ error: !!errors.company,
237
+ helperText: errors.company?.message,
238
+ variant
239
+ }
240
+ ) }),
241
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
242
+ Dropdown,
243
+ {
244
+ id: "Current_Assets_Under_Management__c",
245
+ ...register("Current_Assets_Under_Management__c", {
246
+ required: true
247
+ }),
248
+ label: "Assets Under Management",
249
+ sizes: "medium",
250
+ required: true,
251
+ error: !!errors.Current_Assets_Under_Management__c,
252
+ helperText: errors.Current_Assets_Under_Management__c?.message,
253
+ variant,
254
+ defaultValue: "Select option",
255
+ onChange: handleDropdownChange,
256
+ children: [
257
+ /* @__PURE__ */ jsx("option", { value: "Select option", disabled: true, children: "Select Option" }),
258
+ /* @__PURE__ */ jsx("option", { value: "$0 - $100MM", children: "$0 - $100MM" }),
259
+ /* @__PURE__ */ jsx("option", { value: "$101MM - $200MM", children: "$101MM - $200MM" }),
260
+ /* @__PURE__ */ jsx("option", { value: "$201MM - $500MM", children: "$201MM - $500MM" }),
261
+ /* @__PURE__ */ jsx("option", { value: "$501MM - $750MM", children: "$501MM - $750MM" }),
262
+ /* @__PURE__ */ jsx("option", { value: "$751MM - $1B", children: "$751MM - $1B" }),
263
+ /* @__PURE__ */ jsx("option", { value: "$1B -$2B", children: "$1B -$2B" }),
264
+ /* @__PURE__ */ jsx("option", { value: "$2B+", children: "$2B+" })
265
+ ]
266
+ }
267
+ ) }),
268
+ /* @__PURE__ */ jsxs("div", { className: `${fullRowForm}`, children: [
269
+ /* @__PURE__ */ jsx(
270
+ Input,
271
+ {
272
+ id: "business_type_selection",
273
+ label: "Type of Business",
274
+ onFocus: handleShowBusinessType,
275
+ onBlur: handleTOBerrors,
276
+ sizes: "medium",
277
+ placeholder: "Select All That Apply",
278
+ error: !!errors.Business_Type__c,
279
+ disabled: true
280
+ }
281
+ ),
282
+ showBusinessTypes && /* @__PURE__ */ jsx(
283
+ CheckboxGroup,
284
+ {
285
+ options,
286
+ selectedValues,
287
+ onChange: handleBusinessTypeChange
288
+ }
289
+ )
290
+ ] }),
291
+ /* @__PURE__ */ jsx("div", { className: fullRowForm, children: /* @__PURE__ */ jsx(
292
+ Input,
293
+ {
294
+ id: "Memo__c",
295
+ ...register("Memo__c", { required: false }),
296
+ label: "Please provide additional details about your clearing need (optional)",
297
+ sizes: "medium",
298
+ required: false,
299
+ error: !!errors.Memo__c,
300
+ helperText: errors.Memo__c?.message,
301
+ variant
302
+ }
303
+ ) }),
304
+ /* @__PURE__ */ jsx(
305
+ "input",
306
+ {
307
+ type: "hidden",
308
+ ...register("Lead_Source_Detail_SFDC2__c", {
309
+ value: "Axos Clearing"
310
+ })
311
+ }
312
+ )
313
+ ] }),
314
+ children,
315
+ /* @__PURE__ */ jsx("div", { className: disclosureForm({ variant }), children: disclosure }),
316
+ /* @__PURE__ */ jsx("div", { className: actions, children: /* @__PURE__ */ jsx(
317
+ Button,
318
+ {
319
+ color: getVariant(callToAction?.variant),
320
+ as: "button",
321
+ type: "submit",
322
+ disabled: !isValid || isSubmitting || !requiredAUM || !requiredTOB,
323
+ children: callToAction?.displayText
324
+ }
325
+ ) })
326
+ ] })
327
+ ] }) })
328
+ },
329
+ id
330
+ );
331
+ };
332
+ export {
333
+ ClearingForm
334
+ };