@axos-web-dev/shared-components 1.0.101-dev.1 → 2.0.0-dev.2

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 (162) hide show
  1. package/dist/ATMLocator/ATMLocator.js +3 -8
  2. package/dist/Article/Article.d.ts +2 -2
  3. package/dist/Article/Article.js +13 -2
  4. package/dist/Auth/ErrorAlert.js +4 -9
  5. package/dist/Auth/SignInPassword.js +0 -1
  6. package/dist/Blockquote/Blockquote.module.js +3 -3
  7. package/dist/BulletItem/BulletItem.js +0 -1
  8. package/dist/Button/Button.js +3 -9
  9. package/dist/Calculators/AnnualFeeCalculator/index.js +0 -1
  10. package/dist/Calculators/ApyCalculator/index.js +3 -1
  11. package/dist/Calculators/AxosOneCalculator/index.js +16 -9
  12. package/dist/Calculators/BalanceAPYCalculator/index.js +0 -1
  13. package/dist/Calculators/BuyDownCalculator/index.js +0 -1
  14. package/dist/Calculators/Calculator.js +0 -5
  15. package/dist/Calculators/MarginTradingCalculator/index.js +119 -2
  16. package/dist/Calculators/MarineLoanMonthlyPaymentCalculator/index.js +0 -1
  17. package/dist/Calculators/MaxLoanCalculator/index.js +0 -1
  18. package/dist/Calculators/MonthlyPaymentCalculator/index.js +0 -1
  19. package/dist/Calculators/MonthlyPaymentLVFCalculator/index.js +0 -1
  20. package/dist/Calculators/SummitApyCalculator/index.js +3 -2
  21. package/dist/Carousel/index.js +10 -12
  22. package/dist/Chatbot/Bubble.js +1 -1
  23. package/dist/Chatbot/Chat.js +0 -7
  24. package/dist/Chatbot/ChatWindow.d.ts +2 -0
  25. package/dist/Chatbot/ChatWindow.js +27 -14
  26. package/dist/Chatbot/Chatbot.d.ts +1 -1
  27. package/dist/Chatbot/Chatbot.js +118 -13
  28. package/dist/Chatbot/ChatbotMessage.d.ts +1 -0
  29. package/dist/Chatbot/ChatbotMessage.js +42 -22
  30. package/dist/Chatbot/store/chat.d.ts +6 -0
  31. package/dist/Chatbot/store/chat.js +14 -2
  32. package/dist/Chatbot/store/messages.d.ts +1 -0
  33. package/dist/Chatbot/store/messages.js +5 -2
  34. package/dist/Chevron/index.js +2 -8
  35. package/dist/Comparison/Comparison.js +3 -8
  36. package/dist/ExecutiveBio/ExecutiveBio.css.d.ts +51 -1
  37. package/dist/ExecutiveBio/ExecutiveBio.css.js +48 -46
  38. package/dist/ExecutiveBio/ExecutiveBio.d.ts +1 -1
  39. package/dist/ExecutiveBio/ExecutiveBio.interface.d.ts +3 -1
  40. package/dist/ExecutiveBio/ExecutiveBio.js +142 -151
  41. package/dist/ExecutiveBio/ExecutiveBioSet.d.ts +1 -2
  42. package/dist/ExecutiveBio/ExecutiveBioSet.js +29 -16
  43. package/dist/ExecutiveBio/index.js +2 -1
  44. package/dist/FaqAccordion/index.js +3 -8
  45. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +83 -184
  46. package/dist/Forms/ApplicationStart.js +0 -1
  47. package/dist/Forms/ApplyNow.js +1 -6
  48. package/dist/Forms/BoatMooringLocation.js +0 -1
  49. package/dist/Forms/ClearingForm.js +0 -1
  50. package/dist/Forms/CommercialDeposits.js +0 -1
  51. package/dist/Forms/CommercialDepositsNoLendingOption.js +0 -1
  52. package/dist/Forms/CommercialLending.js +3 -2
  53. package/dist/Forms/CommercialPremiumFinance.js +0 -1
  54. package/dist/Forms/ConstructionLendingDynamic.d.ts +12 -0
  55. package/dist/Forms/ConstructionLendingDynamic.js +324 -0
  56. package/dist/Forms/ContactCompany.js +0 -1
  57. package/dist/Forms/ContactCompanyTitle.js +0 -1
  58. package/dist/Forms/ContactUs.js +0 -1
  59. package/dist/Forms/ContactUsAAS.js +0 -1
  60. package/dist/Forms/ContactUsBusiness.js +3 -8
  61. package/dist/Forms/ContactUsBusinessNameEmail.js +3 -8
  62. package/dist/Forms/ContactUsLVF.js +0 -1
  63. package/dist/Forms/ContactUsNMLSId.js +3 -8
  64. package/dist/Forms/CpraRequest.js +100 -3
  65. package/dist/Forms/CraPublicFile.js +3 -8
  66. package/dist/Forms/DealerServices.js +0 -1
  67. package/dist/Forms/EmailOnly.js +10 -10
  68. package/dist/Forms/EmailUs.js +0 -1
  69. package/dist/Forms/FormEnums.js +1 -3
  70. package/dist/Forms/Forms.css.d.ts +1 -1
  71. package/dist/Forms/Forms.css.js +3 -3
  72. package/dist/Forms/HoneyPot/index.js +0 -1
  73. package/dist/Forms/MortgageRate/MortgageRateForm.js +4 -9
  74. package/dist/Forms/MortgageRate/MortgageRateWatch.js +3 -8
  75. package/dist/Forms/MortgageWarehouseLending.js +3 -8
  76. package/dist/Forms/QuickPricer/QuickPricerForm.js +0 -1
  77. package/dist/Forms/ScheduleCall.js +0 -1
  78. package/dist/Forms/ScheduleCallPremier.js +0 -1
  79. package/dist/Forms/SuccesForm.js +3 -8
  80. package/dist/Forms/VendorQuestionnaire.js +0 -1
  81. package/dist/Forms/index.d.ts +1 -0
  82. package/dist/Forms/index.js +2 -1
  83. package/dist/Hyperlink/index.js +6 -10
  84. package/dist/IconBillboard/IconBillboard.css.d.ts +1 -0
  85. package/dist/IconBillboard/IconBillboard.css.js +11 -9
  86. package/dist/IconBillboard/index.js +2 -1
  87. package/dist/ImageBillboard/ImageBillboardSet.js +14 -8
  88. package/dist/ImageLink/ImageLink.js +3 -8
  89. package/dist/ImageLink/ImageLinkSet.js +3 -8
  90. package/dist/ImageLink/index.js +1 -6
  91. package/dist/Insight/Featured/CategorySelector.js +1 -6
  92. package/dist/Insight/Featured/Featured.js +3 -8
  93. package/dist/Insight/Featured/Header.js +3 -8
  94. package/dist/LandingPageHeader/LandingPageHeader.css.d.ts +19 -1
  95. package/dist/LandingPageHeader/LandingPageHeader.css.js +6 -6
  96. package/dist/LandingPageHeader/LandingPageHeader.d.ts +3 -1
  97. package/dist/LandingPageHeader/LandingPageHeader.js +42 -16
  98. package/dist/LoadingIndicator/index.js +0 -1
  99. package/dist/Modal/Modal.js +1 -6
  100. package/dist/Modal/contextApi/store.d.ts +16 -2
  101. package/dist/Modal/contextApi/store.js +37 -6
  102. package/dist/NavigationMenu/AxosALTS/NavData.d.ts +7 -1
  103. package/dist/NavigationMenu/AxosALTS/NavData.js +6 -137
  104. package/dist/NavigationMenu/AxosALTS/index.js +10 -12
  105. package/dist/NavigationMenu/AxosAdvisor/SubNavBar.js +0 -1
  106. package/dist/NavigationMenu/AxosAdvisor/index.js +0 -1
  107. package/dist/NavigationMenu/AxosAdvisorServices/SubNavBar.js +0 -1
  108. package/dist/NavigationMenu/AxosAdvisorServices/index.js +0 -1
  109. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +341 -73
  110. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +50 -17
  111. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +20 -6
  112. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +211 -355
  113. package/dist/NavigationMenu/AxosBank/NavData.d.ts +39 -2
  114. package/dist/NavigationMenu/AxosBank/NavData.js +34 -166
  115. package/dist/NavigationMenu/AxosBank/SubNavBar.js +199 -220
  116. package/dist/NavigationMenu/AxosBank/index.js +16 -43
  117. package/dist/NavigationMenu/AxosClearing/index.js +0 -1
  118. package/dist/NavigationMenu/LaVictoire/NavData.d.ts +13 -2
  119. package/dist/NavigationMenu/LaVictoire/NavData.js +14 -146
  120. package/dist/NavigationMenu/LaVictoire/SubNavBar.js +4 -1
  121. package/dist/NavigationMenu/LaVictoire/index.js +16 -41
  122. package/dist/NavigationMenu/Navbar.js +4 -5
  123. package/dist/NavigationMenu/SignInNavButton.js +16 -24
  124. package/dist/SetContainer/SetContainer.js +4 -9
  125. package/dist/SocialMediaBar/iconsRepository.d.ts +44 -14
  126. package/dist/SocialMediaBar/iconsRepository.js +28 -37
  127. package/dist/SocialMediaBar/index.js +3 -1
  128. package/dist/Tab/Tab.js +0 -1
  129. package/dist/Table/Table.js +0 -1
  130. package/dist/VideoTile/VideoTile.js +0 -5
  131. package/dist/VideoWrapper/index.js +0 -5
  132. package/dist/assets/Blockquote/Blockquote.css +72 -72
  133. package/dist/assets/Calculators/ApyCalculator/ApyCalculator.css +1 -1
  134. package/dist/assets/Calculators/MarginTradingCalculator/MarginTradingCalculator.css +2 -2
  135. package/dist/assets/Calculators/SummitApyCalculator/BalanceAPYCalculator.css +1 -1
  136. package/dist/assets/Carousel/Carousel.css +1 -1
  137. package/dist/assets/Chatbot/AnimatedGradientBorder.css +2 -1
  138. package/dist/assets/Chatbot/ChatWindow.css +16 -8
  139. package/dist/assets/DownloadTile/DownloadTile.css +2 -2
  140. package/dist/assets/ExecutiveBio/ExecutiveBio.css +281 -171
  141. package/dist/assets/Forms/Forms.css +29 -25
  142. package/dist/assets/HelpArticle/HelpArticle.css +2 -2
  143. package/dist/assets/IconBillboard/IconBillboard.css +35 -28
  144. package/dist/assets/Inputs/Input.css +1 -1
  145. package/dist/assets/Insight/Featured/CategorySelector.css +1 -1
  146. package/dist/assets/Insight/Insight.css +4 -4
  147. package/dist/assets/LandingPageHeader/LandingPageHeader.css +28 -15
  148. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css +353 -192
  149. package/dist/assets/Topic/Topic.css +1 -1
  150. package/dist/assets/Typography/Typography.css +1 -1
  151. package/dist/assets/VideoTile/VideoTile.css +1 -1
  152. package/dist/assets/globals.css +24 -14
  153. package/dist/main.js +8 -3
  154. package/dist/utils/allowedAxosDomains.d.ts +5 -2
  155. package/dist/utils/allowedAxosDomains.js +50 -47
  156. package/dist/utils/appendQueryParams.js +36 -5
  157. package/dist/utils/index.js +2 -1
  158. package/dist/utils/validateExternalLinks.d.ts +1 -1
  159. package/dist/utils/validateExternalLinks.js +4 -6
  160. package/package.json +148 -145
  161. package/dist/NavigationMenu/NavDataJson.d.ts +0 -2
  162. package/dist/NavigationMenu/NavDataJson.js +0 -317
@@ -16,12 +16,11 @@ import "../../Chevron/Chevron.css.js";
16
16
  import "../../AlertBanner/AlertBanner.css.js";
17
17
  import "../../Article/Article.css.js";
18
18
  import "../../IconBillboard/IconBillboard.css.js";
19
- import { findMoreAxosDomains } from "../../utils/allowedAxosDomains.js";
20
19
  /* empty css */
21
20
  /* empty css */
22
21
  import "../../Interstitial/Interstitial-variants.css.js";
23
22
  /* empty css */
24
- import "../../Modal/contextApi/store.js";
23
+ import { useGlobalContext } from "../../Modal/contextApi/store.js";
25
24
  import "../../Button/Button.css.js";
26
25
  import "react-use";
27
26
  import "../../ArticlesSet/ArticlesSet.css.js";
@@ -109,13 +108,10 @@ import "next/navigation.js";
109
108
  /* empty css */
110
109
  /* empty css */
111
110
  import "next/link.js";
112
- import "../AxosBank/MobileMenu/MobileNavData.js";
113
111
  /* empty css */
114
- import "../AxosBank/NavData.js";
115
112
  /* empty css */
116
113
  /* empty css */
117
114
  /* empty css */
118
- import "../LaVictoire/NavData.js";
119
115
  import "../../PageNavItem/PageNavItem.css.js";
120
116
  import "react-slick";
121
117
  /* empty css */
@@ -129,10 +125,12 @@ import "../../StepItemSet/StepItemSet.css.js";
129
125
  /* empty css */
130
126
  /* empty css */
131
127
  /* empty css */
132
- import { navItems } from "./NavData.js";
128
+ import { getNavItems } from "./NavData.js";
133
129
  import { alt_main_nav_link } from "./NavBar.css.js";
134
130
  import styles from "./NavBar.module.js";
135
131
  function NavBar() {
132
+ const { resolveUrl } = useGlobalContext();
133
+ const navItems = getNavItems(resolveUrl);
136
134
  const [isOpenMobile, setisOpenMobile] = useState(false);
137
135
  const [activeIndex, setActiveIndex] = useState();
138
136
  const mobileToggle = () => setisOpenMobile(!isOpenMobile);
@@ -171,7 +169,7 @@ function NavBar() {
171
169
  /* @__PURE__ */ jsx("div", { className: styles.alts_logo_wrap, children: /* @__PURE__ */ jsx(
172
170
  "a",
173
171
  {
174
- href: findMoreAxosDomains("{AXOSBANK}/labs"),
172
+ href: resolveUrl("{AXOSBANK}/labs"),
175
173
  "aria-label": "return to Alternative Lending and Treasury Solution webpage",
176
174
  children: /* @__PURE__ */ jsxs(
177
175
  "svg",
@@ -286,7 +284,7 @@ function NavBar() {
286
284
  children: /* @__PURE__ */ jsx(
287
285
  "a",
288
286
  {
289
- href: findMoreAxosDomains("{AXOSBANK}/labs"),
287
+ href: resolveUrl("{AXOSBANK}/labs"),
290
288
  "aria-label": "return to Alternative Lending and Treasury Solution webpage",
291
289
  children: /* @__PURE__ */ jsxs(
292
290
  "svg",
@@ -394,7 +392,7 @@ function NavBar() {
394
392
  /* @__PURE__ */ jsx("li", { className: `${styles.alts_mobile_nav_item}`, children: /* @__PURE__ */ jsx(
395
393
  "a",
396
394
  {
397
- href: findMoreAxosDomains(
395
+ href: resolveUrl(
398
396
  "{AXOSBANK}/labs/alternative-lending-and-treasury-solutions"
399
397
  ),
400
398
  role: "button",
@@ -405,7 +403,7 @@ function NavBar() {
405
403
  /* @__PURE__ */ jsx("li", { className: `${styles.alts_mobile_nav_item}`, children: /* @__PURE__ */ jsx(
406
404
  "a",
407
405
  {
408
- href: findMoreAxosDomains(
406
+ href: resolveUrl(
409
407
  "{AXOSBANK}/labs/alternative-lending-and-treasury-solutions/digital-banking-for-funds"
410
408
  ),
411
409
  role: "button",
@@ -416,7 +414,7 @@ function NavBar() {
416
414
  /* @__PURE__ */ jsx("li", { className: `${styles.alts_mobile_nav_item}`, children: /* @__PURE__ */ jsx(
417
415
  "a",
418
416
  {
419
- href: findMoreAxosDomains(
417
+ href: resolveUrl(
420
418
  "{AXOSBANK}/labs/alternative-lending-and-treasury-solutions/solutions-for-fund-admins"
421
419
  ),
422
420
  role: "button",
@@ -427,7 +425,7 @@ function NavBar() {
427
425
  /* @__PURE__ */ jsx("li", { className: `${styles.alts_mobile_nav_item}`, children: /* @__PURE__ */ jsx(
428
426
  "a",
429
427
  {
430
- href: findMoreAxosDomains(
428
+ href: resolveUrl(
431
429
  "{AXOSBANK}/labs/alternative-lending-and-treasury-solutions/insured-cash-sweep"
432
430
  ),
433
431
  role: "button",
@@ -4,7 +4,6 @@ import { Button } from "../../Button/Button.js";
4
4
  import "../../Button/Button.css.js";
5
5
  import { useRef, useState, useEffect } from "react";
6
6
  import "react-use";
7
- import "../../utils/allowedAxosDomains.js";
8
7
  import { appendQueryParams } from "../../utils/appendQueryParams.js";
9
8
  import clsx from "clsx";
10
9
  import { usePathname } from "next/navigation.js";
@@ -4,7 +4,6 @@ import { Button } from "../../Button/Button.js";
4
4
  import "../../Button/Button.css.js";
5
5
  import { useState, useRef, useEffect } from "react";
6
6
  import { useClickAway } from "react-use";
7
- import "../../utils/allowedAxosDomains.js";
8
7
  import { appendQueryParams } from "../../utils/appendQueryParams.js";
9
8
  import clsx from "clsx";
10
9
  import { NavItem } from "../NavItem/index.js";
@@ -5,7 +5,6 @@ import { useLocation } from "react-use";
5
5
  import styles from "./NavBar.module.js";
6
6
  import { subNavItems } from "./NavData.js";
7
7
  import { sub_nav } from "./SubNavbar.css.js";
8
- import "../../utils/allowedAxosDomains.js";
9
8
  import { appendQueryParams } from "../../utils/appendQueryParams.js";
10
9
  function SubNavBar() {
11
10
  const { pathname } = useLocation();
@@ -4,7 +4,6 @@ import { Button } from "../../Button/Button.js";
4
4
  import "../../Button/Button.css.js";
5
5
  import { useState, useRef, useEffect } from "react";
6
6
  import { useClickAway } from "react-use";
7
- import "../../utils/allowedAxosDomains.js";
8
7
  import { appendQueryParams } from "../../utils/appendQueryParams.js";
9
8
  import clsx from "clsx";
10
9
  import { NavItem } from "../NavItem/index.js";
@@ -1,11 +1,133 @@
1
1
  "use client";
2
2
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
3
- import { useState, useRef, useEffect } from "react";
3
+ import { useState, useRef, useMemo, useEffect } from "react";
4
4
  import { AnimatePresence, motion } from "framer-motion";
5
5
  import { usePathname } from "next/navigation.js";
6
6
  import Link from "next/link.js";
7
- import { menuData, getQuickLinks } from "./MobileNavData.js";
7
+ import { getMenuData, getLoginGroups, getQuickLinks } from "./MobileNavData.js";
8
8
  import styles from "./MobileMenu.module.js";
9
+ import "../../../Chevron/Chevron.css.js";
10
+ import "../../../Accordion/Accordion.js";
11
+ import "../../../Accordion/Accordion.css.js";
12
+ import "../../../icons/ArrowIcon/ArrowIcon.css.js";
13
+ import "../../../icons/CheckIcon/CheckIcon.css.js";
14
+ import '../../../assets/Modal/Modal.css';import '../../../assets/VideoWrapper/VideoWrapper.css';import '../../../assets/TopicalNavSet/TopicalNavSet.css';import '../../../assets/TopicalNavItem/TopicalNavItem.css';import '../../../assets/Topic/Topic.css';import '../../../assets/TextBlock/TextBlock.css';import '../../../assets/SocialMediaBar/SocialMediaBar.css';import '../../../assets/SecondaryFooter/SecondaryFooter.css';import '../../../assets/Pagination/Pagination.css';import '../../../assets/PageNavSet/PageNavigationSet.css';import '../../../assets/NavigationMenu/LaVictoire/NavBar2.css';import '../../../assets/NavigationMenu/AxosALTS/NavBar2.css';import '../../../assets/NavigationMenu/AxosClearing/NavBar2.css';import '../../../assets/NavigationMenu/AxosBank/SubNavbar.css';import '../../../assets/NavigationMenu/AxosBank/NavBar2.css';import '../../../assets/NavigationMenu/AxosAdvisorServices/SubNavbar.css';import '../../../assets/NavigationMenu/AxosAdvisorServices/NavBar2.css';import '../../../assets/NavigationMenu/AxosAdvisor/SubNavbar.css';import '../../../assets/NavigationMenu/AxosAdvisor/NavBar2.css';import '../../../assets/Insight/Featured/Header.css';import '../../../assets/Insight/Featured/CategorySelector.css';import '../../../assets/Insight/Featured/Featured.css';import '../../../assets/ImageLink/ImageLink.css';import '../../../assets/VideoTile/VideoTile.css';import '../../../assets/HelpArticle/HelpArticle.css';import '../../../assets/FooterSiteMap/AxosBank/FooterSiteMap.css';import '../../../assets/FooterDisclosure/LVF/LaVictorieFooter.css';import '../../../assets/DownloadTile/DownloadTile.css';import '../../../assets/CollectInformationAlert/CollectInformationAlert.css';import '../../../assets/Chatbot/ChatWindow.css';import '../../../assets/Chatbot/Chatbot.css';import '../../../assets/Chatbot/Bubble.css';import '../../../assets/Chatbot/AnimatedGradientBorder.css';import '../../../assets/CallToActionBar/CallToActionBar.css';import '../../../assets/Insight/Insight.css';import '../../../assets/AwardsItem/AwardsItem.css';import '../../../assets/AwardsBanner/AwardsBanner.css';import '../../../assets/Auth/SignIn.css';import '../../../assets/Auth/ErrorAlert.css';import '../../../assets/Calculators/MarginTradingCalculator/MarginTradingCalculator.css';import '../../../assets/Forms/QuickPricer/UserInformation.css';import '../../../assets/Forms/QuickPricer/QuickPricerResults.css';import '../../../assets/BulletItem/BulletItem.css';import '../../../assets/Typography/Typography.css';import '../../../assets/icons/FollowIcon/FollowIcon.css';import '../../../assets/icons/DownloadIcon/DownloadIcon.css';import '../../../assets/themes/victorie.css';import '../../../assets/themes/ufb.css';import '../../../assets/themes/premier.css';import '../../../assets/themes/axos.css';/* empty css */
15
+ /* empty css */
16
+ /* empty css */
17
+ /* empty css */
18
+ /* empty css */
19
+ /* empty css */
20
+ import "clsx";
21
+ import "../../../AlertBanner/AlertBanner.css.js";
22
+ import "../../../Article/Article.css.js";
23
+ import "../../../IconBillboard/IconBillboard.css.js";
24
+ /* empty css */
25
+ /* empty css */
26
+ import "../../../Interstitial/Interstitial-variants.css.js";
27
+ import "../../../Button/Button.css.js";
28
+ import "react-use";
29
+ import "../../../ArticlesSet/ArticlesSet.css.js";
30
+ import "../../../Calculators/calculator.css.js";
31
+ import "../../../Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js";
32
+ import { useGlobalContext } from "../../../Modal/contextApi/store.js";
33
+ import "../../../Calculators/ApyCalculator/ApyCalculator.css.js";
34
+ import "../../../Table/Table.css.js";
35
+ import "../../../Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js";
36
+ import "../../../Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js";
37
+ import "@hookform/resolvers/zod";
38
+ import "../../../Input/Checkbox.js";
39
+ import "../../../Input/CurrencyInput.js";
40
+ import "../../../Input/Dropdown.js";
41
+ import "../../../Input/Dropdown.css.js";
42
+ import "../../../Input/Input.js";
43
+ import "../../../Input/Input.css.js";
44
+ import "../../../Input/InputAmount.js";
45
+ import "../../../Input/InputPhone.js";
46
+ import "../../../Input/InputTextArea.js";
47
+ import "../../../Input/DownPaymentInput.js";
48
+ import "../../../Input/RadioButton.js";
49
+ import "../../../Input/PercentageInput.js";
50
+ import "react-hook-form";
51
+ import "../../../Calculators/BuyDownCalculator/BuyDownCalculator.css.js";
52
+ import "../../../Forms/Forms.css.js";
53
+ import "../../../Forms/HoneyPot/index.js";
54
+ import "../../../Forms/SalesforceFieldsForm.js";
55
+ import "../../../Input/RadioButton.css.js";
56
+ import "../../../Input/Checkbox.css.js";
57
+ import "../../../LoadingIndicator/LoadingIndicator.css.js";
58
+ import "../../../Inputs/Input.css.js";
59
+ /* empty css */
60
+ import "../../../Hyperlink/Hyperlink.css.js";
61
+ /* empty css */
62
+ import "iframe-resizer";
63
+ /* empty css */
64
+ import "../../../Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
65
+ import "../../../Calculators/MonthlyPaymentLVFCalculator/MonthlyPaymentCalculator.css.js";
66
+ import "../../../Calculators/SummitApyCalculator/BalanceAPYCalculator.css.js";
67
+ /* empty css */
68
+ import "react-dom";
69
+ /* empty css */
70
+ import "../../../Auth/SignInPassword.js";
71
+ /* empty css */
72
+ /* empty css */
73
+ /* empty css */
74
+ /* empty css */
75
+ import "../../../Carousel/index.js";
76
+ /* empty css */
77
+ /* empty css */
78
+ import "../../../Chatbot/store/chat.js";
79
+ import "../../../Chatbot/authenticate.js";
80
+ /* empty css */
81
+ /* empty css */
82
+ import "../../../Chatbot/store/messages.js";
83
+ /* empty css */
84
+ import "../../../Comparison/Comparison.css.js";
85
+ import "next/image.js";
86
+ import "../../../HeroBanner/HeroBanner.css.js";
87
+ import "../../../HeroBanner/LargeBanner.css.js";
88
+ import "../../../HeroBanner/SelectionBanner.css.js";
89
+ import "../../../SetContainer/SetContainer.css.js";
90
+ import "../../../Tab/Tab.css.js";
91
+ import "../../../icons/Star/Star.css.js";
92
+ import "../../../ContentBanner/ContentBanner.css.js";
93
+ /* empty css */
94
+ import "../../../ExecutiveBio/ExecutiveBio.css.js";
95
+ import "../../../FaqAccordion/index.js";
96
+ import "../../../FooterDisclosure/FooterDisclosure.css.js";
97
+ /* empty css */
98
+ /* empty css */
99
+ /* empty css */
100
+ import "../../../ImageBillboard/ImageBillboard.css.js";
101
+ import "next/script.js";
102
+ /* empty css */
103
+ /* empty css */
104
+ /* empty css */
105
+ /* empty css */
106
+ /* empty css */
107
+ import "../../../LandingPageHeader/LandingPageHeader.css.js";
108
+ /* empty css */
109
+ /* empty css */
110
+ /* empty css */
111
+ /* empty css */
112
+ /* empty css */
113
+ /* empty css */
114
+ /* empty css */
115
+ /* empty css */
116
+ /* empty css */
117
+ import "../../../PageNavItem/PageNavItem.css.js";
118
+ import "react-slick";
119
+ /* empty css */
120
+ /* empty css */
121
+ /* empty css */
122
+ /* empty css */
123
+ import "../../../StepItem/StepItem.css.js";
124
+ import "../../../StepItemSet/StepItemSet.css.js";
125
+ /* empty css */
126
+ /* empty css */
127
+ /* empty css */
128
+ /* empty css */
129
+ /* empty css */
130
+ /* empty css */
9
131
  const slideVariants = {
10
132
  enter: (direction) => ({
11
133
  x: direction === "forward" ? "100%" : "-100%",
@@ -26,6 +148,8 @@ const slideVariants = {
26
148
  };
27
149
  const MobileDrawerMenu = () => {
28
150
  const pathname = usePathname();
151
+ const { resolveUrl } = useGlobalContext();
152
+ const menuData = getMenuData(resolveUrl);
29
153
  const [queryString, setQueryString] = useState("");
30
154
  const [open, setOpen] = useState(false);
31
155
  const [stack, setStack] = useState([
@@ -34,15 +158,18 @@ const MobileDrawerMenu = () => {
34
158
  const [hasOpenedOnce, setHasOpenedOnce] = useState(false);
35
159
  const [direction, setDirection] = useState("forward");
36
160
  const [quickLinks, setQuickLinks] = useState([]);
161
+ const [loginDrawerOpen, setLoginDrawerOpen] = useState(false);
37
162
  const drawerRef = useRef(null);
163
+ const loginDrawerRef = useRef(null);
164
+ const loginGroups = useMemo(() => getLoginGroups(resolveUrl), [resolveUrl]);
38
165
  const currentLevel = stack[stack.length - 1];
39
166
  const prevLevel = stack[stack.length - 2];
40
167
  useEffect(() => {
41
168
  if (!pathname) return;
42
169
  const pathnameParts = "/" + pathname.split("/")[1];
43
- const links = getQuickLinks(pathnameParts);
170
+ const links = getQuickLinks(pathnameParts, resolveUrl);
44
171
  setQuickLinks(links);
45
- }, [pathname]);
172
+ }, [pathname, resolveUrl]);
46
173
  useEffect(() => {
47
174
  if (typeof window !== "undefined") {
48
175
  const search = window.location.search;
@@ -74,6 +201,13 @@ const MobileDrawerMenu = () => {
74
201
  return isOpening;
75
202
  });
76
203
  };
204
+ const handleLoginDrawerOpen = () => setLoginDrawerOpen(true);
205
+ const handleLoginDrawerClose = () => setLoginDrawerOpen(false);
206
+ const handleLoginDrawerOutsideClick = (e) => {
207
+ if (loginDrawerRef.current && !loginDrawerRef.current.contains(e.target)) {
208
+ setLoginDrawerOpen(false);
209
+ }
210
+ };
77
211
  const handleOutsideClick = (e) => {
78
212
  if (drawerRef.current && !drawerRef.current.contains(e.target)) {
79
213
  setOpen(false);
@@ -96,35 +230,61 @@ const MobileDrawerMenu = () => {
96
230
  }
97
231
  return () => document.removeEventListener("keydown", onEsc);
98
232
  }, [open]);
233
+ useEffect(() => {
234
+ if (!loginDrawerOpen) return;
235
+ document.addEventListener("mousedown", handleLoginDrawerOutsideClick);
236
+ return () => document.removeEventListener("mousedown", handleLoginDrawerOutsideClick);
237
+ }, [loginDrawerOpen]);
238
+ useEffect(() => {
239
+ const onEsc = (e) => {
240
+ if (e.key === "Escape") setLoginDrawerOpen(false);
241
+ };
242
+ if (loginDrawerOpen) {
243
+ document.addEventListener("keydown", onEsc);
244
+ }
245
+ return () => document.removeEventListener("keydown", onEsc);
246
+ }, [loginDrawerOpen]);
99
247
  return /* @__PURE__ */ jsxs(Fragment, { children: [
100
- /* @__PURE__ */ jsx(
101
- "button",
102
- {
103
- onClick: handleToggle,
104
- className: `${styles.hamburger} flex_col`,
105
- "aria-label": "open navigation menu",
106
- children: /* @__PURE__ */ jsx(
107
- "svg",
108
- {
109
- width: 24,
110
- height: 24,
111
- viewBox: "0 0 24 24",
112
- fill: "none",
113
- xmlns: "http://www.w3.org/2000/svg",
114
- "aria-hidden": "true",
115
- children: /* @__PURE__ */ jsx(
116
- "path",
117
- {
118
- fillRule: "evenodd",
119
- clipRule: "evenodd",
120
- d: "M22.5 15.75V17.25H1.5V15.75H22.5ZM22.5 11.25V12.75H1.5V11.25H22.5ZM22.5 6.75V8.25H1.5V6.75H22.5Z",
121
- fill: "#14263D"
122
- }
123
- )
124
- }
125
- )
126
- }
127
- ),
248
+ /* @__PURE__ */ jsxs("div", { className: styles.mobileNavRow, children: [
249
+ /* @__PURE__ */ jsx(
250
+ "button",
251
+ {
252
+ type: "button",
253
+ onClick: handleLoginDrawerOpen,
254
+ className: styles.loginTrigger,
255
+ "aria-label": "Open login options",
256
+ children: "Log in"
257
+ }
258
+ ),
259
+ /* @__PURE__ */ jsx(
260
+ "button",
261
+ {
262
+ onClick: handleToggle,
263
+ className: `${styles.hamburger} flex_col`,
264
+ "aria-label": "open navigation menu",
265
+ children: /* @__PURE__ */ jsx(
266
+ "svg",
267
+ {
268
+ width: 24,
269
+ height: 24,
270
+ viewBox: "0 0 24 24",
271
+ fill: "none",
272
+ xmlns: "http://www.w3.org/2000/svg",
273
+ "aria-hidden": "true",
274
+ children: /* @__PURE__ */ jsx(
275
+ "path",
276
+ {
277
+ fillRule: "evenodd",
278
+ clipRule: "evenodd",
279
+ d: "M22.5 15.75V17.25H1.5V15.75H22.5ZM22.5 11.25V12.75H1.5V11.25H22.5ZM22.5 6.75V8.25H1.5V6.75H22.5Z",
280
+ fill: "#14263D"
281
+ }
282
+ )
283
+ }
284
+ )
285
+ }
286
+ )
287
+ ] }),
128
288
  /* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsx(
129
289
  motion.div,
130
290
  {
@@ -264,47 +424,51 @@ const MobileDrawerMenu = () => {
264
424
  animate: "center",
265
425
  exit: "exit",
266
426
  transition: { duration: 0.3, ease: "linear" },
267
- children: Object.entries(currentLevel.items).map(
268
- ([key, value]) => {
269
- const hasChildren = typeof value === "object";
270
- return /* @__PURE__ */ jsx("li", { children: hasChildren ? /* @__PURE__ */ jsxs(
271
- "button",
272
- {
273
- className: styles.menuItem,
274
- onClick: () => handleClick(key),
275
- "aria-label": `open submenu for ${key}`,
276
- children: [
277
- /* @__PURE__ */ jsx("span", { children: key }),
278
- /* @__PURE__ */ jsx("span", { className: styles.chevron, children: /* @__PURE__ */ jsx(
279
- "svg",
280
- {
281
- className: styles.chevronIcon,
282
- width: 12,
283
- height: 20,
284
- viewBox: "0 0 12 20",
285
- fill: "none",
286
- xmlns: "http://www.w3.org/2000/svg",
287
- children: /* @__PURE__ */ jsx(
288
- "path",
289
- {
290
- d: "M1.76378 0.46875L11.2941 9.99908L1.76378 19.5294L0.703125 18.4687L9.17295 9.99908L0.703125 1.52941L1.76378 0.46875Z",
291
- fill: "#4A5560"
292
- }
293
- )
294
- }
295
- ) })
296
- ]
297
- }
298
- ) : /* @__PURE__ */ jsx(
299
- Link,
300
- {
301
- href: value + (queryString && !value.includes("?") ? `?${queryString}` : ""),
302
- className: styles.menuItem,
303
- children: /* @__PURE__ */ jsx("span", { children: key })
304
- }
305
- ) }, key);
306
- }
307
- )
427
+ children: Object.entries(
428
+ stack.length === 1 ? Object.fromEntries(
429
+ Object.entries(currentLevel.items).filter(
430
+ ([k]) => k !== "Log in"
431
+ )
432
+ ) : currentLevel.items
433
+ ).map(([key, value]) => {
434
+ const hasChildren = typeof value === "object";
435
+ return /* @__PURE__ */ jsx("li", { children: hasChildren ? /* @__PURE__ */ jsxs(
436
+ "button",
437
+ {
438
+ className: styles.menuItem,
439
+ onClick: () => handleClick(key),
440
+ "aria-label": `open submenu for ${key}`,
441
+ children: [
442
+ /* @__PURE__ */ jsx("span", { children: key }),
443
+ /* @__PURE__ */ jsx("span", { className: styles.chevron, children: /* @__PURE__ */ jsx(
444
+ "svg",
445
+ {
446
+ className: styles.chevronIcon,
447
+ width: 12,
448
+ height: 20,
449
+ viewBox: "0 0 12 20",
450
+ fill: "none",
451
+ xmlns: "http://www.w3.org/2000/svg",
452
+ children: /* @__PURE__ */ jsx(
453
+ "path",
454
+ {
455
+ d: "M1.76378 0.46875L11.2941 9.99908L1.76378 19.5294L0.703125 18.4687L9.17295 9.99908L0.703125 1.52941L1.76378 0.46875Z",
456
+ fill: "#4A5560"
457
+ }
458
+ )
459
+ }
460
+ ) })
461
+ ]
462
+ }
463
+ ) : /* @__PURE__ */ jsx(
464
+ Link,
465
+ {
466
+ href: `${value}${queryString && !value.includes("?") ? `?${queryString}` : ""}`,
467
+ className: styles.menuItem,
468
+ children: /* @__PURE__ */ jsx("span", { children: key })
469
+ }
470
+ ) }, key);
471
+ })
308
472
  },
309
473
  currentLevel.title
310
474
  )
@@ -337,6 +501,110 @@ const MobileDrawerMenu = () => {
337
501
  }
338
502
  )
339
503
  }
504
+ ) }),
505
+ /* @__PURE__ */ jsx(AnimatePresence, { children: loginDrawerOpen && /* @__PURE__ */ jsx(
506
+ motion.div,
507
+ {
508
+ className: styles.overlay,
509
+ initial: { opacity: 0 },
510
+ animate: { opacity: 1 },
511
+ exit: { opacity: 0 },
512
+ children: /* @__PURE__ */ jsxs(
513
+ motion.div,
514
+ {
515
+ className: `${styles.drawer} flex_col`,
516
+ ref: loginDrawerRef,
517
+ initial: { x: "100%" },
518
+ animate: { x: 0 },
519
+ exit: { x: "100%" },
520
+ transition: { type: "tween", duration: 0.3 },
521
+ role: "dialog",
522
+ "aria-modal": "true",
523
+ "aria-label": "Login options",
524
+ children: [
525
+ /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
526
+ /* @__PURE__ */ jsx(
527
+ "a",
528
+ {
529
+ href: window.location.href.split("/")[3] === "invest" ? "/invest" : "/",
530
+ "aria-label": "return to home page",
531
+ children: /* @__PURE__ */ jsx(
532
+ "img",
533
+ {
534
+ src: "https://www.axos.com/images/1sBwCIn5mqOg5DK2uXDJPc/axb_mobile_logo.png",
535
+ alt: "",
536
+ width: 86,
537
+ height: 19
538
+ }
539
+ )
540
+ }
541
+ ),
542
+ /* @__PURE__ */ jsx("span", { className: styles.loginDrawerTitle, children: "Log in" }),
543
+ /* @__PURE__ */ jsx(
544
+ "button",
545
+ {
546
+ type: "button",
547
+ className: `${styles.close} flex_col`,
548
+ "aria-label": "Close login options",
549
+ onClick: handleLoginDrawerClose,
550
+ children: /* @__PURE__ */ jsx(
551
+ "svg",
552
+ {
553
+ xmlns: "http://www.w3.org/2000/svg",
554
+ width: "24",
555
+ height: "24",
556
+ viewBox: "0 0 24 24",
557
+ fill: "none",
558
+ "aria-hidden": "true",
559
+ children: /* @__PURE__ */ jsx(
560
+ "path",
561
+ {
562
+ d: "M20.2812 2.65625L21.3419 3.71691L13.0602 11.9982L21.3419 20.2812L20.2812 21.3419L11.9982 13.0602L3.71691 21.3419L2.65625 20.2812L10.9377 11.9982L2.65625 3.71691L3.71691 2.65625L11.9982 10.9377L20.2812 2.65625Z",
563
+ fill: "#14263D"
564
+ }
565
+ )
566
+ }
567
+ )
568
+ }
569
+ )
570
+ ] }),
571
+ /* @__PURE__ */ jsx("div", { className: styles.loginDrawerContent, children: /* @__PURE__ */ jsx("div", { className: styles.loginAccordion, children: /* @__PURE__ */ jsx(
572
+ "ul",
573
+ {
574
+ className: styles.loginAccordionList,
575
+ "aria-label": "Login options",
576
+ children: loginGroups.map((group) => /* @__PURE__ */ jsxs(
577
+ "li",
578
+ {
579
+ className: styles.loginAccordionGroup,
580
+ "aria-label": `${group.heading} login options`,
581
+ children: [
582
+ /* @__PURE__ */ jsx("span", { className: styles.loginAccordionHeading, children: group.heading }),
583
+ /* @__PURE__ */ jsx("ul", { className: styles.loginAccordionGroupList, children: group.items.map((item) => /* @__PURE__ */ jsx(
584
+ "li",
585
+ {
586
+ "aria-label": `access ${item.title}`,
587
+ children: /* @__PURE__ */ jsx(
588
+ Link,
589
+ {
590
+ href: item.url + (queryString && !item.url.includes("?") ? `?${queryString}` : ""),
591
+ className: styles.menuItem,
592
+ children: /* @__PURE__ */ jsx("span", { children: item.title })
593
+ }
594
+ )
595
+ },
596
+ item.title
597
+ )) })
598
+ ]
599
+ },
600
+ group.heading
601
+ ))
602
+ }
603
+ ) }) })
604
+ ]
605
+ }
606
+ )
607
+ }
340
608
  ) })
341
609
  ] });
342
610
  };