@axos-web-dev/shared-components 1.0.100-dev.76-feature-lp-logos → 1.0.100-dev.78

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.
@@ -2,36 +2,50 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { getVariant } from "../utils/getVariant.js";
3
3
  import { ExecutiveBio } from "./ExecutiveBio.js";
4
4
  import { section_theme, bio_section_text, header_theme, components, details } from "./ExecutiveBio.css.js";
5
+ import "../utils/allowedAxosDomains.js";
6
+ import "react";
7
+ import { columnValues } from "../utils/variant.types.js";
8
+ import { getNumOfColumns } from "../utils/getNumber.js";
5
9
  const ExecutiveBioSet = ({
6
10
  id,
7
11
  title,
8
12
  description,
9
13
  executiveBios,
10
14
  additionalDetails,
11
- variant: fullVariant = "primary"
15
+ variant: fullVariant = "primary",
16
+ numberOfColumns = "1 Column"
12
17
  }) => {
13
18
  const variant = getVariant(fullVariant);
19
+ const numOfCols = getNumOfColumns(numberOfColumns);
14
20
  return /* @__PURE__ */ jsxs("section", { id, className: section_theme({ variant }), children: [
15
21
  /* @__PURE__ */ jsx("div", { className: "containment", children: (title || description) && /* @__PURE__ */ jsxs("div", { className: bio_section_text, children: [
16
22
  title && /* @__PURE__ */ jsx("h2", { className: `header_1 ${header_theme({ variant })}`, children: title }),
17
23
  description && /* @__PURE__ */ jsx(Fragment, { children: description })
18
24
  ] }) }),
19
- /* @__PURE__ */ jsx("div", { className: components, children: executiveBios.map((bio) => /* @__PURE__ */ jsx(
20
- ExecutiveBio,
25
+ /* @__PURE__ */ jsx(
26
+ "div",
21
27
  {
22
- id: `id_${bio.id}`,
23
- executiveName: bio?.executiveName,
24
- executiveTitle: bio?.executiveTitle,
25
- executiveBodyCopy: bio?.executiveBodyCopy,
26
- executiveEmailAddress: bio?.executiveEmailAddress,
27
- executivePhoneNumber: bio?.executivePhoneNumber,
28
- executiveLinkedIn: bio?.executiveLinkedIn,
29
- executiveWebsite: bio?.executiveWebsite,
30
- executiveHeadshot: { src: bio?.executiveHeadshot?.src || "" },
31
- variant: bio?.variant
32
- },
33
- bio.id
34
- )) }),
28
+ className: numOfCols && columnValues.includes(numOfCols) ? `${components({ columns: numOfCols })} cols_${numOfCols} containment` : "",
29
+ children: executiveBios.map((bio) => /* @__PURE__ */ jsx(
30
+ ExecutiveBio,
31
+ {
32
+ id: `id_${bio.id}`,
33
+ hasParentH2: Boolean(title),
34
+ executiveName: bio?.executiveName,
35
+ executiveTitle: bio?.executiveTitle,
36
+ executiveBodyCopy: bio?.executiveBodyCopy,
37
+ executiveEmailAddress: bio?.executiveEmailAddress,
38
+ executivePhoneNumber: bio?.executivePhoneNumber,
39
+ executiveLinkedIn: bio?.executiveLinkedIn,
40
+ executiveWebsite: bio?.executiveWebsite,
41
+ executiveHeadshot: { src: bio?.executiveHeadshot?.src || "" },
42
+ variant: bio?.variant,
43
+ bannerType: bio?.bannerType
44
+ },
45
+ bio.id
46
+ ))
47
+ }
48
+ ),
35
49
  additionalDetails && /* @__PURE__ */ jsx("div", { className: "containment", children: /* @__PURE__ */ jsx("div", { className: details, children: /* @__PURE__ */ jsx(Fragment, { children: additionalDetails }) }) })
36
50
  ] });
37
51
  };
@@ -1,5 +1,5 @@
1
1
  import { ExecutiveBio } from "./ExecutiveBio.js";
2
- import { bio_section_text, bulletsHeadline, bulletsWrapper, ceoContainer, ceoContent, ceoHeader, ceoImgWrapper, ceoMedia, ceoPersonalInfo, ceoSection, ceoWrapper, ceo_body, ceo_contacts, ceo_name, ceo_quote, ceo_title, components, contact_col, contact_entry, contacts, copy, description, details, executive_bio, flexColumn, header_theme, headline_setting, headshot, highlights, hover, imgAlignment, img_area, item_bio, job_title, media, order_3, overlay, padding, person, section_theme, shift, social, stroke_color, svg_color, svg_icon, tooltip, url_row } from "./ExecutiveBio.css.js";
2
+ import { bio_section_text, bulletsHeadline, bulletsWrapper, ceoContainer, ceoContent, ceoHeader, ceoImgWrapper, ceoMedia, ceoPersonalInfo, ceoSection, ceoWrapper, ceo_body, ceo_contacts, ceo_name, ceo_quote, ceo_title, compact, components, contact_col, contact_entry, contacts, copy, description, details, executive_bio, flexColumn, header_theme, headline_setting, headshot, highlights, hover, imgAlignment, img_area, item_bio, job_title, media, order_3, overlay, padding, person, section_theme, shift, social, stroke_color, svg_color, svg_icon, tooltip, url_row } from "./ExecutiveBio.css.js";
3
3
  import { ExecutiveBioSet } from "./ExecutiveBioSet.js";
4
4
  export {
5
5
  ExecutiveBio,
@@ -20,6 +20,7 @@ export {
20
20
  ceo_name,
21
21
  ceo_quote,
22
22
  ceo_title,
23
+ compact,
23
24
  components,
24
25
  contact_col,
25
26
  contact_entry,
@@ -3,7 +3,7 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { zodResolver } from "@hookform/resolvers/zod";
4
4
  import { Button } from "../Button/Button.js";
5
5
  import "../Button/Button.css.js";
6
- import "react";
6
+ import { useEffect } from "react";
7
7
  import "react-use";
8
8
  import "../Input/Checkbox.js";
9
9
  import "../Input/CurrencyInput.js";
@@ -39,6 +39,15 @@ import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
39
39
  import { SalesforceSchema } from "./SalesforceFieldsForm.js";
40
40
  const HOMEOWNER_VALUE = "I am a homeowner.";
41
41
  const BROKER_VALUE = "I am a broker.";
42
+ const USER_TYPE_PARAM = "user_type";
43
+ function getInitialUserTypeFromQuery() {
44
+ if (typeof window === "undefined") return "";
45
+ const params = new URLSearchParams(window.location.search);
46
+ const value = params.get(USER_TYPE_PARAM)?.toLowerCase();
47
+ if (value === "homeowner") return HOMEOWNER_VALUE;
48
+ if (value === "broker") return BROKER_VALUE;
49
+ return "";
50
+ }
42
51
  const ConstructionLendingDynamic = ({
43
52
  icon = false,
44
53
  children,
@@ -129,8 +138,25 @@ const ConstructionLendingDynamic = ({
129
138
  handleSubmit,
130
139
  register,
131
140
  watch,
141
+ setValue,
132
142
  formState: { errors, isValid, isSubmitting }
133
143
  } = methods;
144
+ useEffect(() => {
145
+ const initialUserType = getInitialUserTypeFromQuery();
146
+ if (initialUserType) {
147
+ setValue("User_Type__c", initialUserType, { shouldValidate: true });
148
+ }
149
+ }, [setValue]);
150
+ useEffect(() => {
151
+ const syncUserTypeFromUrl = () => {
152
+ const userType2 = getInitialUserTypeFromQuery();
153
+ if (userType2) {
154
+ setValue("User_Type__c", userType2, { shouldValidate: true });
155
+ }
156
+ };
157
+ window.addEventListener("popstate", syncUserTypeFromUrl);
158
+ return () => window.removeEventListener("popstate", syncUserTypeFromUrl);
159
+ }, [setValue]);
134
160
  const userType = watch("User_Type__c");
135
161
  const isBroker = userType === BROKER_VALUE;
136
162
  const isExpanded = userType === HOMEOWNER_VALUE || userType === BROKER_VALUE;
@@ -48,9 +48,7 @@ const PurposeOfLoan = ["Bridge", "Construction"];
48
48
  const Purposes = [
49
49
  { value: "Purchase", text: "Purchase" },
50
50
  { value: "RefiCashout", text: "Refi Cashout" },
51
- { value: "RefiRateTermLimitedCO", text: "Refi Rate-Term/Limited C.O." },
52
- { value: "ConstructiontoPerm", text: "Construction to Perm" },
53
- { value: "InvestorConstruction", text: "Investor Construction" }
51
+ { value: "RefiRateTermLimitedCO", text: "Refi Rate-Term/Limited C.O." }
54
52
  ];
55
53
  const RepresentativesFico = [
56
54
  { value: "780", text: "780+" },
@@ -17,7 +17,7 @@ import "../AlertBanner/AlertBanner.css.js";
17
17
  import "../Article/Article.css.js";
18
18
  import "../IconBillboard/IconBillboard.css.js";
19
19
  import { findMoreAxosDomains } from "../utils/allowedAxosDomains.js";
20
- import { validateLink } from "../utils/validateExternalLinks.js";
20
+ import { isPhoneLink, isEmailLink, validateLink } from "../utils/validateExternalLinks.js";
21
21
  /* empty css */
22
22
  /* empty css */
23
23
  import "../Interstitial/Interstitial-variants.css.js";
@@ -144,6 +144,7 @@ const Hyperlink = ({
144
144
  }) => {
145
145
  const hyperlink_variant = variant.toLowerCase();
146
146
  const { setTargetLinkUrl, setOpenModal } = useGlobalContext();
147
+ const isTelOrMailto = targetUrl && (isPhoneLink(targetUrl) || isEmailLink(targetUrl));
147
148
  const onClick = (e) => {
148
149
  if (targetUrl) {
149
150
  const external_link = validateLink(targetUrl);
@@ -167,7 +168,7 @@ const Hyperlink = ({
167
168
  ),
168
169
  onClick,
169
170
  "aria-label": ariaLabel,
170
- target: newTab ? "_blank" : "_self",
171
+ target: newTab && !isTelOrMailto ? "_blank" : "_self",
171
172
  ...noFollow && { rel: "nofollow" },
172
173
  children
173
174
  }
@@ -9,28 +9,10 @@ export declare const lp_theme: import('@vanilla-extract/recipes').RuntimeFn<{
9
9
  tertiary: {
10
10
  background: `var(--${string})`;
11
11
  };
12
- quaternary: {
13
- background: `var(--${string})`;
14
- };
15
12
  };
16
13
  }>;
17
14
  export declare const lp_container: string;
18
15
  export declare const spb_container: string;
19
16
  export declare const lp_hover: string;
20
17
  export declare const spb_hover: string;
21
- export declare const svg_fill: import('@vanilla-extract/recipes').RuntimeFn<{
22
- variant: {
23
- primary: {
24
- fill: `var(--${string})`;
25
- };
26
- secondary: {
27
- fill: `var(--${string})`;
28
- };
29
- tertiary: {
30
- fill: `var(--${string})`;
31
- };
32
- quaternary: {
33
- fill: `var(--${string})`;
34
- };
35
- };
36
- }>;
18
+ export declare const svg_fill: string;
@@ -4,12 +4,12 @@ import '../assets/LandingPageHeader/LandingPageHeader.css';import '../assets/the
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  import { createRuntimeFn } from "@vanilla-extract/recipes/createRuntimeFn";
7
- var lp_theme = createRuntimeFn({ defaultClassName: "_1o1hxre0", variantClassNames: { variant: { primary: "_1o1hxre1", secondary: "_1o1hxre2", tertiary: "_1o1hxre3", quaternary: "_1o1hxre4" } }, defaultVariants: {}, compoundVariants: [] });
8
- var lp_container = "_1o1hxre5";
9
- var spb_container = "_1o1hxre6";
10
- var lp_hover = "_1o1hxre7";
11
- var spb_hover = "_1o1hxre8";
12
- var svg_fill = createRuntimeFn({ defaultClassName: "_1o1hxre9", variantClassNames: { variant: { primary: "_1o1hxrea", secondary: "_1o1hxreb", tertiary: "_1o1hxrec", quaternary: "_1o1hxred" } }, defaultVariants: {}, compoundVariants: [] });
7
+ var lp_theme = createRuntimeFn({ defaultClassName: "_1o1hxre0", variantClassNames: { variant: { primary: "_1o1hxre1", secondary: "_1o1hxre2", tertiary: "_1o1hxre3" } }, defaultVariants: {}, compoundVariants: [] });
8
+ var lp_container = "_1o1hxre4";
9
+ var spb_container = "_1o1hxre5";
10
+ var lp_hover = "_1o1hxre6";
11
+ var spb_hover = "_1o1hxre7";
12
+ var svg_fill = "_1o1hxre8";
13
13
  export {
14
14
  lp_container,
15
15
  lp_hover,
@@ -1,11 +1,9 @@
1
1
  import { QuaternaryTypes } from '../utils/variant.types';
2
- import { ImageInterface } from '../main';
3
2
 
4
3
  export interface LandingPageHeaderProps {
5
4
  id: string;
6
5
  variant: QuaternaryTypes;
7
6
  project?: string;
8
7
  alt?: string;
9
- logo?: ImageInterface;
10
8
  }
11
- export declare const LandingPageHeader: ({ id, variant: fullVariant, project, alt, logo, }: LandingPageHeaderProps) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const LandingPageHeader: ({ id, variant: fullVariant, project, alt, }: LandingPageHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -13,45 +13,28 @@ import SvgComponent from "../icons/Logos/AXA.js";
13
13
  import SvgComponent$2 from "../icons/Logos/AXC.js";
14
14
  import SvgComponent$4 from "../icons/Logos/AXI.js";
15
15
  import SvgComponent$5 from "../icons/Logos/AXOS.js";
16
- import SvgComponent$6 from "../icons/Logos/GBLVF.js";
17
- import SvgComponent$7 from "../icons/Logos/SPB.js";
16
+ import SvgComponent$7 from "../icons/Logos/GBLVF.js";
17
+ import SvgComponent$6 from "../icons/Logos/LVF.js";
18
+ import SvgComponent$8 from "../icons/Logos/SPB.js";
18
19
  import { getVariant } from "../utils/getVariant.js";
19
- import { svg_fill, lp_theme, spb_container, lp_container, spb_hover, lp_hover } from "./LandingPageHeader.css.js";
20
+ import { lp_theme, spb_container, lp_container, spb_hover, lp_hover, svg_fill } from "./LandingPageHeader.css.js";
20
21
  const LandingPageHeader = ({
21
22
  id,
22
23
  variant: fullVariant = "primary",
23
24
  project = "AXB",
24
- alt,
25
- logo
25
+ alt
26
26
  }) => {
27
27
  const variant = getVariant(fullVariant);
28
28
  const website = /* @__PURE__ */ new Map([
29
- [
30
- "AXA",
31
- /* @__PURE__ */ jsx(SvgComponent, { classNameFill: svg_fill({ variant }), height: 36, width: 120 })
32
- ],
33
- [
34
- "AFS",
35
- /* @__PURE__ */ jsx(SvgComponent$1, { classNameFill: svg_fill({ variant }), height: 36, width: 120 })
36
- ],
37
- [
38
- "AXC",
39
- /* @__PURE__ */ jsx(SvgComponent$2, { classNameFill: svg_fill({ variant }), height: 36, width: 120 })
40
- ],
41
- [
42
- "AAS",
43
- /* @__PURE__ */ jsx(SvgComponent$3, { classNameFill: svg_fill({ variant }), height: 36, width: 120 })
44
- ],
45
- [
46
- "AXI",
47
- /* @__PURE__ */ jsx(SvgComponent$4, { classNameFill: svg_fill({ variant }), height: 36, width: 120 })
48
- ],
49
- [
50
- "AXB",
51
- /* @__PURE__ */ jsx(SvgComponent$5, { height: 30, width: 120, classNameFill: svg_fill({ variant }) })
52
- ],
53
- ["GBLVF", /* @__PURE__ */ jsx(SvgComponent$6, { height: 60, width: 220 })],
54
- ["SPB", /* @__PURE__ */ jsx(SvgComponent$7, { height: "100%", width: "100%" })]
29
+ ["AXA", /* @__PURE__ */ jsx(SvgComponent, { classNameFill: svg_fill, height: 36, width: 120 })],
30
+ ["AFS", /* @__PURE__ */ jsx(SvgComponent$1, { classNameFill: svg_fill, height: 36, width: 120 })],
31
+ ["AXC", /* @__PURE__ */ jsx(SvgComponent$2, { classNameFill: svg_fill, height: 36, width: 120 })],
32
+ ["AAS", /* @__PURE__ */ jsx(SvgComponent$3, { classNameFill: svg_fill, height: 36, width: 120 })],
33
+ ["AXI", /* @__PURE__ */ jsx(SvgComponent$4, { classNameFill: svg_fill, height: 36, width: 120 })],
34
+ ["AXB", /* @__PURE__ */ jsx(SvgComponent$5, { height: 30, width: 120, classNameFill: svg_fill })],
35
+ ["LVF", /* @__PURE__ */ jsx(SvgComponent$6, { height: 30, width: 120, classNameFill: `${svg_fill}` })],
36
+ ["GBLVF", /* @__PURE__ */ jsx(SvgComponent$7, { height: 60, width: 220 })],
37
+ ["SPB", /* @__PURE__ */ jsx(SvgComponent$8, { height: "100%", width: "100%" })]
55
38
  ]);
56
39
  const isSPBPage = project === "SPB";
57
40
  return /* @__PURE__ */ jsx("header", { className: `${lp_theme({ variant })}`, id: `id_${id}`, children: /* @__PURE__ */ jsx(
@@ -63,17 +46,8 @@ const LandingPageHeader = ({
63
46
  {
64
47
  href: project == "AXI" ? "/invest" : "/",
65
48
  className: isSPBPage ? spb_hover : lp_hover,
66
- "aria-label": alt ?? "return to homepage",
67
- children: logo ? /* @__PURE__ */ jsx(
68
- "img",
69
- {
70
- src: logo.src,
71
- alt: logo.alt ?? "",
72
- height: Number(logo.height),
73
- width: Number(logo.width),
74
- className: "img_fluid"
75
- }
76
- ) : website.get(project)
49
+ "aria-label": alt ?? "axos logo, return to homepage",
50
+ children: website.get(project)
77
51
  }
78
52
  )
79
53
  }
@@ -39,6 +39,7 @@ export declare const menuData: {
39
39
  "Apply Now": string;
40
40
  "Mortgage Services": string;
41
41
  "Make a Payment": string;
42
+ "Construction Lending": string;
42
43
  };
43
44
  "Personal Loans": {
44
45
  "Personal Loans Home": string;
@@ -214,6 +214,9 @@ const menuData = {
214
214
  ),
215
215
  "Make a Payment": findMoreAxosDomains(
216
216
  "{AXOSBANK}/personal/support/manage-my-loan"
217
+ ),
218
+ "Construction Lending": findMoreAxosDomains(
219
+ "{AXOSBANK}/personal/borrow/mortgages/construction-lending"
217
220
  )
218
221
  },
219
222
  "Personal Loans": {
@@ -1245,6 +1245,15 @@ function SubNavBar() {
1245
1245
  ),
1246
1246
  children: "Make a Payment"
1247
1247
  }
1248
+ ) }),
1249
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1250
+ Link,
1251
+ {
1252
+ href: findMoreAxosDomains(
1253
+ "{AXOSBANK}/personal/borrow/mortgages/construction-lending"
1254
+ ),
1255
+ children: "Construction Lending"
1256
+ }
1248
1257
  ) })
1249
1258
  ] })
1250
1259
  ] }),
@@ -89,6 +89,7 @@ import { heroSupertag } from "../HeroBanner/HeroBanner.css.js";
89
89
  import "../ContentBanner/ContentBanner.css.js";
90
90
  /* empty css */
91
91
  import "../ExecutiveBio/ExecutiveBio.css.js";
92
+ import { getNumOfColumns } from "../utils/getNumber.js";
92
93
  import "../FaqAccordion/index.js";
93
94
  import "../FooterDisclosure/FooterDisclosure.css.js";
94
95
  /* empty css */
@@ -133,7 +134,6 @@ import "../StepItemSet/StepItemSet.css.js";
133
134
  /* empty css */
134
135
  import "../HeroBanner/LargeBanner.css.js";
135
136
  import "../HeroBanner/SelectionBanner.css.js";
136
- import { getNumOfColumns } from "../utils/getNumber.js";
137
137
  const SetContainer = ({
138
138
  id,
139
139
  variant,