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

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.
@@ -24,6 +24,7 @@ import "../ArticlesSet/ArticlesSet.css.js";
24
24
  /* empty css */
25
25
  import "../Calculators/ApyCalculator/ApyCalculator.css.js";
26
26
  /* empty css */
27
+ import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
27
28
  import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
28
29
  import clsx from "clsx";
29
30
  /* empty css */
@@ -94,7 +95,6 @@ import "../Table/Table.css.js";
94
95
  /* empty css */
95
96
  import "../Interstitial/Interstitial-variants.css.js";
96
97
  import "../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
97
- import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
98
98
  import "iframe-resizer";
99
99
  import { calculator_headline, calculator_description } from "../Calculators/calculator.css.js";
100
100
  const ATMLocator = (props) => {
@@ -141,7 +141,8 @@ const Button = ({
141
141
  href: findMoreAxosDomains(targetUrl),
142
142
  id,
143
143
  target: newTab ? "_blank" : "_self",
144
- onClick: marketingIntersitial ? openMarketingInterstitial : action ?? onClick
144
+ onClick: marketingIntersitial ? openMarketingInterstitial : action ?? onClick,
145
+ disabled: disabled ?? false
145
146
  },
146
147
  children
147
148
  ),
@@ -37,7 +37,13 @@ const BalanceAPYCalculator = ({
37
37
  const [checkingEarning, setCheckingEarning] = useState(1.5);
38
38
  const [error, setError] = useState(false);
39
39
  const removeNonNumeric = (value) => {
40
- return parseInt(value.replace(/\D/g, ""));
40
+ if (value === "") {
41
+ value = "0";
42
+ }
43
+ const removeNonNumericChars = value.replace(/\D/g, "");
44
+ const newValue = parseInt(removeNonNumericChars, 10);
45
+ setBalance(newValue);
46
+ return newValue;
41
47
  };
42
48
  const calculateBlance = (amount) => {
43
49
  setAxbEarning(axbAPY / 100 * amount);
@@ -96,7 +102,6 @@ const BalanceAPYCalculator = ({
96
102
  {
97
103
  className: calculator_input,
98
104
  id: "amount",
99
- type: "number",
100
105
  step: 100,
101
106
  name: "amount",
102
107
  value: balance,
@@ -146,8 +146,9 @@ const Calculator = (props) => {
146
146
  MonthlyPaymentCalculator,
147
147
  {
148
148
  header: headline,
149
- body: bodyCopy,
150
- variant
149
+ bodyCopy,
150
+ variant,
151
+ disclosure
151
152
  }
152
153
  );
153
154
  } else if (name === "Max Loan") {
@@ -2,7 +2,8 @@ import { default as React, FC } from 'react';
2
2
 
3
3
  export interface MonthlyPaymentCalculatorProps {
4
4
  header?: React.ReactNode | string;
5
- body?: React.ReactNode | string;
5
+ bodyCopy?: React.ReactNode | string;
6
6
  variant?: string;
7
+ disclosure?: React.ReactNode;
7
8
  }
8
9
  export declare const MonthlyPaymentCalculator: FC<MonthlyPaymentCalculatorProps>;
@@ -5,10 +5,13 @@ import { title } from "../../IconBillboard/IconBillboard.css.js";
5
5
  import "../../utils/allowedAxosDomains.js";
6
6
  import { getVariant } from "../../utils/getVariant.js";
7
7
  import { useState } from "react";
8
+ import { calc_text, description_text, calc_disclosure } from "../BalanceAPYCalculator/BalanceAPYCalculator.css.js";
8
9
  import { calc_container, container, h2i, inputs_container, input_container, input_box, error_message, calculation_header, payment_results } from "./MonthlyPaymentCalculator.css.js";
9
10
  const MonthlyPaymentCalculator = ({
10
11
  variant,
11
- header
12
+ header,
13
+ disclosure,
14
+ bodyCopy
12
15
  }) => {
13
16
  const fullVariant = getVariant(variant);
14
17
  const [loanAmountDisplay, setLoanAmountDisplay] = useState("");
@@ -111,13 +114,22 @@ const MonthlyPaymentCalculator = ({
111
114
  {
112
115
  className: `rounded ${calc_container} ${container({ variant: fullVariant })}`,
113
116
  children: [
114
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
115
- "h2",
116
- {
117
- className: `text_center ${title({ variant: fullVariant })} ${h2i}`,
118
- children: header
119
- }
120
- ) }),
117
+ /* @__PURE__ */ jsxs("div", { children: [
118
+ /* @__PURE__ */ jsx(
119
+ "h2",
120
+ {
121
+ className: `text_center ${title({ variant: fullVariant })} ${h2i}`,
122
+ children: header
123
+ }
124
+ ),
125
+ bodyCopy && /* @__PURE__ */ jsx(
126
+ "div",
127
+ {
128
+ className: `${calc_text} ${description_text({ variant: fullVariant })} text_center`,
129
+ children: bodyCopy
130
+ }
131
+ )
132
+ ] }),
121
133
  /* @__PURE__ */ jsxs(
122
134
  "div",
123
135
  {
@@ -204,7 +216,8 @@ const MonthlyPaymentCalculator = ({
204
216
  estimatedPayment.toFixed(2)
205
217
  ] })
206
218
  ] })
207
- ] })
219
+ ] }),
220
+ disclosure && /* @__PURE__ */ jsx("div", { className: calc_disclosure({ variant: fullVariant }), children: disclosure })
208
221
  ]
209
222
  }
210
223
  ) }) });
@@ -1,6 +1,6 @@
1
+ /* empty css */
1
2
  /* empty css */
2
3
  /* empty css */
3
- /* empty css */
4
4
  /* empty css */
5
5
  var faqAccordion = "ph6wj60";
6
6
  var header = "ph6wj61";
@@ -1,3 +1,4 @@
1
+ import { ChevronProps } from '../Chevron/Chevron.interface';
1
2
  import { PropsWithChildren } from 'react';
2
3
 
3
4
  export interface AccordionItemProps extends PropsWithChildren {
@@ -8,6 +9,9 @@ export declare const AccordionItemSummary: (props: {
8
9
  id: string;
9
10
  level: string;
10
11
  } & PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const AccordionCtas: (props: {
13
+ callToActionRow: ChevronProps;
14
+ }) => import("react/jsx-runtime").JSX.Element;
11
15
  export declare const AccordionItemContent: (props: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
12
16
  export declare const FaqAccordion: (props: {
13
17
  header?: string;
@@ -1,4 +1,8 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Button } from "../Button/Button.js";
3
+ import "../Button/Button.css.js";
4
+ import "react";
5
+ import "react-use";
2
6
  import "../icons/ArrowIcon/ArrowIcon.css.js";
3
7
  import "../icons/CheckIcon/CheckIcon.css.js";
4
8
  import SvgChevronDown from "../icons/ChevronDown.js";
@@ -7,9 +11,95 @@ import SvgChevronUp from "../icons/ChevronUp.js";
7
11
  /* empty css */
8
12
  /* empty css */
9
13
  /* empty css */
14
+ import "../Accordion/Accordion.js";
15
+ import { icon } from "../Accordion/Accordion.css.js";
16
+ import { Chevron } from "../Chevron/index.js";
17
+ import "../AlertBanner/AlertBanner.css.js";
18
+ import { getVariant } from "../utils/getVariant.js";
19
+ import "../Article/Article.css.js";
20
+ import "../ArticlesSet/ArticlesSet.css.js";
21
+ import "../IconBillboard/IconBillboard.css.js";
22
+ import "../utils/allowedAxosDomains.js";
23
+ import "../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
24
+ import "../Calculators/ApyCalculator/ApyCalculator.css.js";
25
+ import "clsx";
26
+ import "../Table/Table.css.js";
27
+ import "../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
28
+ import "@hookform/resolvers/zod";
29
+ import "../Input/Checkbox.js";
30
+ import "../Input/CurrencyInput.js";
31
+ import "../Input/Dropdown.js";
32
+ /* empty css */
33
+ /* empty css */
34
+ import "../Input/Input.js";
35
+ import "../Input/Input.css.js";
36
+ import "../Input/InputAmount.js";
37
+ import "../Input/InputPhone.js";
38
+ import "../Input/InputTextArea.js";
39
+ import "react-hook-form";
40
+ import "../Forms/Forms.css.js";
41
+ import "../Forms/SalesforceFieldsForm.js";
42
+ import "../LoadingIndicator/LoadingIndicator.css.js";
43
+ import "../Input/RadioButton.js";
44
+ import "../Input/RadioButton.css.js";
45
+ import "../Input/Checkbox.css.js";
46
+ import "iframe-resizer";
47
+ import "../Calculators/calculator.css.js";
48
+ /* empty css */
49
+ import "../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
50
+ /* empty css */
51
+ /* empty css */
52
+ /* empty css */
53
+ /* empty css */
54
+ import "../Carousel/index.js";
55
+ import "../Hyperlink/Hyperlink.css.js";
56
+ /* empty css */
57
+ import "../Comparison/Comparison.css.js";
58
+ import "../HeroBanner/HeroBanner.css.js";
59
+ import "../HeroBanner/LargeBanner.css.js";
60
+ import "../HeroBanner/SelectionBanner.css.js";
61
+ import "../SetContainer/SetContainer.css.js";
62
+ import "../Tab/Tab.css.js";
63
+ import "../icons/Star/Star.css.js";
64
+ import "../ContentBanner/ContentBanner.css.js";
65
+ /* empty css */
66
+ import "../ExecutiveBio/ExecutiveBio.css.js";
67
+ import "../FooterDisclosure/FooterDisclosure.css.js";
68
+ /* empty css */
69
+ import "../ImageBillboard/ImageBillboard.css.js";
70
+ /* empty css */
71
+ /* empty css */
72
+ import "../Interstitial/Interstitial-variants.css.js";
73
+ import "../LandingPageHeader/LandingPageHeader.css.js";
74
+ import "../Chevron/Chevron.css.js";
75
+ /* empty css */
76
+ import "../Modal/contextApi/store.js";
77
+ /* empty css */
78
+ /* empty css */
79
+ /* empty css */
80
+ /* empty css */
81
+ /* empty css */
82
+ import "next/image.js";
83
+ import "next/link.js";
84
+ import "next/navigation.js";
85
+ /* empty css */
86
+ /* empty css */
87
+ import "../PageNavItem/PageNavItem.css.js";
88
+ import "lodash";
89
+ import "react-slick";
90
+ /* empty css */
91
+ /* empty css */
92
+ /* empty css */
93
+ /* empty css */
94
+ import "../StepItem/StepItem.css.js";
95
+ import "../StepItemSet/StepItemSet.css.js";
96
+ /* empty css */
97
+ /* empty css */
98
+ /* empty css */
99
+ /* empty css */
100
+ /* empty css */
10
101
  import { getLevelNumber } from "../utils/faqAccordionOptions.js";
11
102
  import { create } from "zustand";
12
- import { icon } from "../Accordion/Accordion.css.js";
13
103
  import { summary, summaryHeader, content, header, faqAccordion } from "./FaqAccordion.css.js";
14
104
  const useAccordion = create()((set) => ({
15
105
  itemsOpened: [],
@@ -65,6 +155,27 @@ const AccordionItemSummary = (props) => {
65
155
  /* @__PURE__ */ jsx("div", { className: icon, children: isOpen.includes(props.id) ? /* @__PURE__ */ jsx(SvgChevronUp, {}) : /* @__PURE__ */ jsx(SvgChevronDown, {}) })
66
156
  ] });
67
157
  };
158
+ const AccordionCtas = (props) => {
159
+ return props.callToActionRow && /* @__PURE__ */ jsx("div", { className: "push_up", children: props.callToActionRow.type === "Button" ? /* @__PURE__ */ jsx(
160
+ Button,
161
+ {
162
+ targetUrl: props.callToActionRow.targetUrl,
163
+ color: getVariant(props.callToActionRow.variant),
164
+ size: "medium",
165
+ rounded: "medium",
166
+ children: props.callToActionRow.displayText
167
+ },
168
+ props.callToActionRow.id
169
+ ) : /* @__PURE__ */ jsx(
170
+ Chevron,
171
+ {
172
+ targetUrl: props.callToActionRow.targetUrl,
173
+ variant: getVariant(props.callToActionRow.variant),
174
+ children: props.callToActionRow.displayText
175
+ },
176
+ props.callToActionRow.id
177
+ ) });
178
+ };
68
179
  const AccordionItemContent = (props) => {
69
180
  return /* @__PURE__ */ jsx("div", { className: content, children: props.children });
70
181
  };
@@ -76,6 +187,7 @@ const FaqAccordion = (props) => {
76
187
  ] });
77
188
  };
78
189
  export {
190
+ AccordionCtas,
79
191
  AccordionItem,
80
192
  AccordionItemContent,
81
193
  AccordionItemSummary,
@@ -29,7 +29,7 @@ import { getVariant } from "../utils/getVariant.js";
29
29
  import clsx from "clsx";
30
30
  import { useForm, FormProvider } from "react-hook-form";
31
31
  import * as z from "zod";
32
- import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, disclosureForm, actions } from "./Forms.css.js";
32
+ import { formContainer, iconForm, headerContainer, headerForm, form, descriptionField, formWrapper, fullRowForm, ro_input, disclosureForm, actions } from "./Forms.css.js";
33
33
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
34
34
  import CheckboxGroup from "../Input/CheckboxGroup.js";
35
35
  const options = [
@@ -96,12 +96,13 @@ const ClearingForm = ({
96
96
  const handleShowBusinessType = () => {
97
97
  setShowBusinessTypes(true);
98
98
  };
99
- let formattedValues = "";
100
99
  const handleBusinessTypeChange = (updatedValues) => {
101
- setSelectedValues(updatedValues);
102
- formattedValues = updatedValues.join(";");
103
- setValue("Business_Type__c", formattedValues);
104
- handleTOBerrors();
100
+ if (updatedValues) {
101
+ setSelectedValues(updatedValues);
102
+ setValue("Business_Type__c", updatedValues.join(";"));
103
+ clearErrors("Business_Type__c");
104
+ setRequiredTOB(true);
105
+ }
105
106
  };
106
107
  const methods = useForm({
107
108
  resolver: zodResolver(schema.merge(SalesforceSchema), {
@@ -110,8 +111,7 @@ const ClearingForm = ({
110
111
  mode: "all",
111
112
  defaultValues: {
112
113
  email: "",
113
- Business_Type__c: "FinTech"
114
- // Set default value as empty array
114
+ Business_Type__c: ""
115
115
  }
116
116
  });
117
117
  const {
@@ -126,7 +126,7 @@ const ClearingForm = ({
126
126
  await onSubmit(data);
127
127
  };
128
128
  const handleTOBerrors = () => {
129
- if (!formattedValues.length) {
129
+ if (!selectedValues.length) {
130
130
  setError("Business_Type__c", {
131
131
  type: "manual",
132
132
  message: "Type of Business is required."
@@ -142,6 +142,16 @@ const ClearingForm = ({
142
142
  setValue("Current_Assets_Under_Management__c", value);
143
143
  if (value) setRequiredAUM(true);
144
144
  };
145
+ const handleAUMerror = () => {
146
+ if (!requiredAUM) {
147
+ setError("Current_Assets_Under_Management__c", {
148
+ type: "manual",
149
+ message: "Assets Under Management is required"
150
+ });
151
+ } else {
152
+ clearErrors("Current_Assets_Under_Management__c");
153
+ }
154
+ };
145
155
  const variant = getVariant(fullVariant);
146
156
  return /* @__PURE__ */ jsx(
147
157
  "section",
@@ -253,8 +263,10 @@ const ClearingForm = ({
253
263
  variant,
254
264
  defaultValue: "Select option",
255
265
  onChange: handleDropdownChange,
266
+ onClick: handleAUMerror,
267
+ onBlur: handleAUMerror,
256
268
  children: [
257
- /* @__PURE__ */ jsx("option", { value: "Select option", disabled: true, children: "Select Option" }),
269
+ /* @__PURE__ */ jsx("option", { disabled: true, value: "Select option", children: "Select Option" }),
258
270
  /* @__PURE__ */ jsx("option", { value: "$0 - $100MM", children: "$0 - $100MM" }),
259
271
  /* @__PURE__ */ jsx("option", { value: "$101MM - $200MM", children: "$101MM - $200MM" }),
260
272
  /* @__PURE__ */ jsx("option", { value: "$201MM - $500MM", children: "$201MM - $500MM" }),
@@ -276,7 +288,8 @@ const ClearingForm = ({
276
288
  sizes: "medium",
277
289
  placeholder: "Select All That Apply",
278
290
  error: !!errors.Business_Type__c,
279
- disabled: true
291
+ readOnly: true,
292
+ className: ro_input
280
293
  }
281
294
  ),
282
295
  showBusinessTypes && /* @__PURE__ */ jsx(
@@ -284,7 +297,8 @@ const ClearingForm = ({
284
297
  {
285
298
  options,
286
299
  selectedValues,
287
- onChange: handleBusinessTypeChange
300
+ onChange: handleBusinessTypeChange,
301
+ error: !!errors.Business_Type__c
288
302
  }
289
303
  )
290
304
  ] }),
@@ -0,0 +1,27 @@
1
+ import { FormProps } from './FormProps';
2
+
3
+ export type CpraInputs = {
4
+ California_Resident: "Yes" | "No";
5
+ Categories_of_personal_info: "Yes" | "No";
6
+ Pieces_of_personal_information: "Yes" | "No";
7
+ Request_Correction_of_Information: "Yes" | "No";
8
+ Corrected_Information: string;
9
+ Delete_personal_info: "Yes" | "No";
10
+ Opt_out_of_sale_of_info: "Yes" | "No";
11
+ Current_client: "Yes" | "No";
12
+ Currently_Employed_by_Axos_Financial: "Yes" | "No";
13
+ Previously_Employed_by_Axos_Financial: "Yes" | "No";
14
+ Ever_Applied_for_Employment_with_Axos_Financial: "Yes" | "No";
15
+ Axos_Financial_interaction_outlet: string;
16
+ First_Name: string;
17
+ Last_Name: string;
18
+ DOB: string;
19
+ email: string;
20
+ Telephone: string;
21
+ "Street Address": string;
22
+ City: string;
23
+ State: string;
24
+ "Zip Code": string;
25
+ Contact_Method: "Email" | "Postal Mail";
26
+ };
27
+ export declare const CpraRequest: ({ icon, children, onSubmit, disclosure, variant: fullVariant, headline, description, callToAction, id, }: FormProps) => import("react/jsx-runtime").JSX.Element;