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

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 (189) hide show
  1. package/README.md +111 -111
  2. package/dist/ATMLocator/ATMLocator.js +3 -8
  3. package/dist/Article/Article.d.ts +2 -2
  4. package/dist/Article/Article.js +13 -2
  5. package/dist/Auth/ErrorAlert.js +4 -9
  6. package/dist/Auth/SignInPassword.js +0 -1
  7. package/dist/Avatar/Avatar.module.js +7 -7
  8. package/dist/Blockquote/Blockquote.module.js +3 -3
  9. package/dist/BulletItem/BulletItem.js +0 -1
  10. package/dist/Button/Button.js +10 -10
  11. package/dist/Calculators/AnnualFeeCalculator/index.js +0 -1
  12. package/dist/Calculators/ApyCalculator/index.js +3 -1
  13. package/dist/Calculators/AxosOneCalculator/index.js +16 -9
  14. package/dist/Calculators/BalanceAPYCalculator/index.js +0 -1
  15. package/dist/Calculators/BuyDownCalculator/index.js +0 -1
  16. package/dist/Calculators/Calculator.js +0 -5
  17. package/dist/Calculators/MarginTradingCalculator/index.js +119 -2
  18. package/dist/Calculators/MarineLoanMonthlyPaymentCalculator/index.js +0 -1
  19. package/dist/Calculators/MaxLoanCalculator/index.js +0 -1
  20. package/dist/Calculators/MonthlyPaymentCalculator/index.js +0 -1
  21. package/dist/Calculators/MonthlyPaymentLVFCalculator/index.js +0 -1
  22. package/dist/Calculators/SummitApyCalculator/index.js +3 -2
  23. package/dist/Carousel/index.js +3 -8
  24. package/dist/Chatbot/Bubble.js +1 -1
  25. package/dist/Chatbot/Chat.js +0 -7
  26. package/dist/Chatbot/ChatWindow.d.ts +2 -0
  27. package/dist/Chatbot/ChatWindow.js +27 -14
  28. package/dist/Chatbot/Chatbot.d.ts +1 -1
  29. package/dist/Chatbot/Chatbot.js +118 -13
  30. package/dist/Chatbot/ChatbotMessage.d.ts +1 -0
  31. package/dist/Chatbot/ChatbotMessage.js +42 -22
  32. package/dist/Chatbot/store/chat.d.ts +6 -0
  33. package/dist/Chatbot/store/chat.js +14 -2
  34. package/dist/Chatbot/store/messages.d.ts +1 -0
  35. package/dist/Chatbot/store/messages.js +5 -2
  36. package/dist/Chevron/index.js +2 -8
  37. package/dist/Comparison/Comparison.js +3 -8
  38. package/dist/ExecutiveBio/ExecutiveBio.css.d.ts +51 -1
  39. package/dist/ExecutiveBio/ExecutiveBio.css.js +48 -46
  40. package/dist/ExecutiveBio/ExecutiveBio.d.ts +1 -1
  41. package/dist/ExecutiveBio/ExecutiveBio.interface.d.ts +3 -1
  42. package/dist/ExecutiveBio/ExecutiveBio.js +142 -151
  43. package/dist/ExecutiveBio/ExecutiveBioSet.d.ts +1 -2
  44. package/dist/ExecutiveBio/ExecutiveBioSet.js +29 -16
  45. package/dist/ExecutiveBio/index.js +2 -1
  46. package/dist/FaqAccordion/index.js +3 -8
  47. package/dist/FdicCallout/FdicCallout.module.js +2 -2
  48. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +83 -184
  49. package/dist/Forms/ApplicationStart.js +0 -1
  50. package/dist/Forms/ApplyNow.js +1 -6
  51. package/dist/Forms/BoatMooringLocation.js +0 -1
  52. package/dist/Forms/ClearingForm.js +0 -1
  53. package/dist/Forms/CommercialDeposits.js +0 -1
  54. package/dist/Forms/CommercialDepositsNoLendingOption.js +0 -1
  55. package/dist/Forms/CommercialLending.js +0 -1
  56. package/dist/Forms/CommercialPremiumFinance.js +0 -1
  57. package/dist/Forms/ConstructionLendingDynamic.d.ts +12 -0
  58. package/dist/Forms/ConstructionLendingDynamic.js +324 -0
  59. package/dist/Forms/ContactCompany.js +0 -1
  60. package/dist/Forms/ContactCompanyTitle.js +0 -1
  61. package/dist/Forms/ContactUs.js +0 -1
  62. package/dist/Forms/ContactUsAAS.js +0 -1
  63. package/dist/Forms/ContactUsBusiness.js +3 -8
  64. package/dist/Forms/ContactUsBusinessNameEmail.js +3 -8
  65. package/dist/Forms/ContactUsLVF.js +0 -1
  66. package/dist/Forms/ContactUsNMLSId.js +3 -8
  67. package/dist/Forms/CpraRequest.js +100 -3
  68. package/dist/Forms/CraPublicFile.js +3 -8
  69. package/dist/Forms/DealerServices.js +0 -1
  70. package/dist/Forms/EmailOnly.js +10 -10
  71. package/dist/Forms/EmailUs.js +0 -1
  72. package/dist/Forms/FormEnums.js +1 -3
  73. package/dist/Forms/Forms.css.d.ts +1 -1
  74. package/dist/Forms/Forms.css.js +3 -3
  75. package/dist/Forms/HoneyPot/index.js +0 -1
  76. package/dist/Forms/MortgageRate/MortgageRateForm.js +4 -9
  77. package/dist/Forms/MortgageRate/MortgageRateWatch.js +3 -8
  78. package/dist/Forms/MortgageWarehouseLending.js +3 -8
  79. package/dist/Forms/QuickPricer/QuickPricerForm.js +0 -1
  80. package/dist/Forms/ScheduleCall.js +0 -1
  81. package/dist/Forms/ScheduleCallPremier.js +0 -1
  82. package/dist/Forms/SuccesForm.js +3 -8
  83. package/dist/Forms/VendorQuestionnaire.js +0 -1
  84. package/dist/Forms/index.d.ts +1 -0
  85. package/dist/Forms/index.js +2 -1
  86. package/dist/Hyperlink/index.js +6 -10
  87. package/dist/IconBillboard/IconBillboard.css.d.ts +1 -0
  88. package/dist/IconBillboard/IconBillboard.css.js +11 -9
  89. package/dist/IconBillboard/index.js +2 -1
  90. package/dist/ImageBillboard/ImageBillboardSet.js +14 -8
  91. package/dist/ImageLink/ImageLink.js +3 -8
  92. package/dist/ImageLink/ImageLinkSet.js +3 -8
  93. package/dist/ImageLink/index.js +1 -6
  94. package/dist/Insight/Featured/CategorySelector.js +1 -6
  95. package/dist/Insight/Featured/Featured.js +3 -8
  96. package/dist/Insight/Featured/Header.js +3 -8
  97. package/dist/Interstitial/Interstitial.module.js +10 -10
  98. package/dist/LandingPageHeader/LandingPageHeader.css.d.ts +19 -1
  99. package/dist/LandingPageHeader/LandingPageHeader.css.js +6 -6
  100. package/dist/LandingPageHeader/LandingPageHeader.d.ts +3 -1
  101. package/dist/LandingPageHeader/LandingPageHeader.js +42 -16
  102. package/dist/LoadingIndicator/index.js +0 -1
  103. package/dist/Modal/Modal.js +1 -6
  104. package/dist/Modal/contextApi/store.d.ts +16 -2
  105. package/dist/Modal/contextApi/store.js +37 -6
  106. package/dist/NavigationMenu/AxosALTS/NavBar.module.js +23 -23
  107. package/dist/NavigationMenu/AxosALTS/NavData.d.ts +7 -1
  108. package/dist/NavigationMenu/AxosALTS/NavData.js +6 -137
  109. package/dist/NavigationMenu/AxosALTS/index.js +10 -12
  110. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +52 -52
  111. package/dist/NavigationMenu/AxosAdvisor/SubNavBar.js +0 -1
  112. package/dist/NavigationMenu/AxosAdvisor/index.js +0 -1
  113. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +53 -53
  114. package/dist/NavigationMenu/AxosAdvisorServices/SubNavBar.js +0 -1
  115. package/dist/NavigationMenu/AxosAdvisorServices/index.js +0 -1
  116. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +341 -73
  117. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +50 -17
  118. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +20 -6
  119. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +211 -355
  120. package/dist/NavigationMenu/AxosBank/NavBar.module.js +39 -39
  121. package/dist/NavigationMenu/AxosBank/NavData.d.ts +39 -2
  122. package/dist/NavigationMenu/AxosBank/NavData.js +34 -166
  123. package/dist/NavigationMenu/AxosBank/SubNavBar.js +199 -220
  124. package/dist/NavigationMenu/AxosBank/index.js +16 -43
  125. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +37 -37
  126. package/dist/NavigationMenu/AxosClearing/index.js +0 -1
  127. package/dist/NavigationMenu/AxosFiduciary/NavBar.module.js +41 -41
  128. package/dist/NavigationMenu/LaVictoire/NavBar.module.js +37 -37
  129. package/dist/NavigationMenu/LaVictoire/NavData.d.ts +13 -2
  130. package/dist/NavigationMenu/LaVictoire/NavData.js +14 -146
  131. package/dist/NavigationMenu/LaVictoire/SubNavBar.js +4 -1
  132. package/dist/NavigationMenu/LaVictoire/index.js +16 -41
  133. package/dist/NavigationMenu/Navbar.js +4 -5
  134. package/dist/NavigationMenu/SignInNavButton.js +16 -24
  135. package/dist/SetContainer/SetContainer.js +4 -9
  136. package/dist/SocialMediaBar/iconsRepository.d.ts +44 -14
  137. package/dist/SocialMediaBar/iconsRepository.js +28 -37
  138. package/dist/SocialMediaBar/index.js +3 -1
  139. package/dist/Tab/Tab.js +0 -1
  140. package/dist/Table/Table.js +0 -1
  141. package/dist/VideoTile/VideoTile.js +0 -5
  142. package/dist/VideoWrapper/index.js +0 -5
  143. package/dist/WalnutIframe/wrapper.module.js +3 -3
  144. package/dist/assets/Avatar/Avatar.css +59 -59
  145. package/dist/assets/Blockquote/Blockquote.css +72 -72
  146. package/dist/assets/Calculators/ApyCalculator/ApyCalculator.css +1 -1
  147. package/dist/assets/Calculators/MarginTradingCalculator/MarginTradingCalculator.css +2 -2
  148. package/dist/assets/Calculators/SummitApyCalculator/BalanceAPYCalculator.css +1 -1
  149. package/dist/assets/Carousel/Carousel.css +1 -1
  150. package/dist/assets/Chatbot/AnimatedGradientBorder.css +2 -1
  151. package/dist/assets/Chatbot/ChatWindow.css +16 -8
  152. package/dist/assets/DownloadTile/DownloadTile.css +2 -2
  153. package/dist/assets/ExecutiveBio/ExecutiveBio.css +281 -171
  154. package/dist/assets/FdicCallout/FdicCallout.css +48 -48
  155. package/dist/assets/Forms/Forms.css +29 -25
  156. package/dist/assets/HelpArticle/HelpArticle.css +2 -2
  157. package/dist/assets/IconBillboard/IconBillboard.css +35 -28
  158. package/dist/assets/Inputs/Input.css +1 -1
  159. package/dist/assets/Insight/Featured/CategorySelector.css +1 -1
  160. package/dist/assets/Insight/Insight.css +4 -4
  161. package/dist/assets/Interstitial/Interstitial.css +142 -142
  162. package/dist/assets/LandingPageHeader/LandingPageHeader.css +28 -15
  163. package/dist/assets/NavigationMenu/AxosALTS/NavBar.css +264 -264
  164. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css +609 -609
  165. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css +630 -630
  166. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css +353 -192
  167. package/dist/assets/NavigationMenu/AxosBank/NavBar.css +445 -445
  168. package/dist/assets/NavigationMenu/AxosClearing/NavBar.css +484 -484
  169. package/dist/assets/NavigationMenu/AxosFiduciary/NavBar.css +427 -427
  170. package/dist/assets/NavigationMenu/LaVictoire/NavBar.css +429 -429
  171. package/dist/assets/Topic/Topic.css +1 -1
  172. package/dist/assets/Typography/Typography.css +1 -1
  173. package/dist/assets/VideoTile/VideoTile.css +1 -1
  174. package/dist/assets/WalnutIframe/wrapper.css +48 -48
  175. package/dist/assets/globals.css +24 -14
  176. package/dist/assets/utils/optimizeImage/optimizeImage.css +47 -47
  177. package/dist/main.js +8 -3
  178. package/dist/utils/allowedAxosDomains.d.ts +5 -2
  179. package/dist/utils/allowedAxosDomains.js +50 -47
  180. package/dist/utils/appendQueryParams.js +36 -5
  181. package/dist/utils/index.js +2 -1
  182. package/dist/utils/optimizeImage/optimizeImage.module.js +3 -3
  183. package/dist/utils/samePageNavigation.d.ts +3 -0
  184. package/dist/utils/samePageNavigation.js +23 -0
  185. package/dist/utils/validateExternalLinks.d.ts +1 -1
  186. package/dist/utils/validateExternalLinks.js +4 -6
  187. package/package.json +149 -148
  188. package/dist/NavigationMenu/NavDataJson.d.ts +0 -2
  189. package/dist/NavigationMenu/NavDataJson.js +0 -317
@@ -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
  };
@@ -1,23 +1,38 @@
1
- import '../../../assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css';const overlay = "_overlay_pl06n_1";
2
- const drawer = "_drawer_pl06n_9";
3
- const hamburger = "_hamburger_pl06n_29";
4
- const header = "_header_pl06n_40";
5
- const back = "_back_pl06n_51";
6
- const close = "_close_pl06n_59";
7
- const levelContainer = "_levelContainer_pl06n_70";
8
- const level = "_level_pl06n_70";
9
- const levelTitle = "_levelTitle_pl06n_86";
10
- const menu = "_menu_pl06n_91";
11
- const menuItem = "_menuItem_pl06n_111";
12
- const chevron = "_chevron_pl06n_127";
13
- const chevronIcon = "_chevronIcon_pl06n_132";
14
- const quickLinks = "_quickLinks_pl06n_143";
15
- const quickLink = "_quickLink_pl06n_143";
16
- const sr_only = "_sr_only_pl06n_167";
1
+ import '../../../assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css';const overlay = "_overlay_rqqo3_1";
2
+ const drawer = "_drawer_rqqo3_17";
3
+ const mobileNavRow = "_mobileNavRow_rqqo3_57";
4
+ const loginTrigger = "_loginTrigger_rqqo3_69";
5
+ const hamburger = "_hamburger_rqqo3_101";
6
+ const loginDrawerTitle = "_loginDrawerTitle_rqqo3_145";
7
+ const loginDrawerContent = "_loginDrawerContent_rqqo3_157";
8
+ const header = "_header_rqqo3_169";
9
+ const back = "_back_rqqo3_191";
10
+ const close = "_close_rqqo3_207";
11
+ const levelContainer = "_levelContainer_rqqo3_229";
12
+ const level = "_level_rqqo3_229";
13
+ const levelTitle = "_levelTitle_rqqo3_261";
14
+ const menu = "_menu_rqqo3_271";
15
+ const menuItem = "_menuItem_rqqo3_303";
16
+ const loginAccordion = "_loginAccordion_rqqo3_335";
17
+ const loginAccordionList = "_loginAccordionList_rqqo3_343";
18
+ const loginAccordionGroup = "_loginAccordionGroup_rqqo3_355";
19
+ const loginAccordionHeading = "_loginAccordionHeading_rqqo3_429";
20
+ const loginAccordionGroupList = "_loginAccordionGroupList_rqqo3_449";
21
+ const loginHeading = "_loginHeading_rqqo3_537";
22
+ const chevron = "_chevron_rqqo3_557";
23
+ const chevronIcon = "_chevronIcon_rqqo3_567";
24
+ const quickLinks = "_quickLinks_rqqo3_589";
25
+ const quickLink = "_quickLink_rqqo3_589";
26
+ const sr_only = "_sr_only_rqqo3_637";
27
+ const loginAccordionOverlay = "_loginAccordionOverlay_rqqo3_687";
17
28
  const styles = {
18
29
  overlay,
19
30
  drawer,
31
+ mobileNavRow,
32
+ loginTrigger,
20
33
  hamburger,
34
+ loginDrawerTitle,
35
+ loginDrawerContent,
21
36
  header,
22
37
  back,
23
38
  close,
@@ -26,11 +41,18 @@ const styles = {
26
41
  levelTitle,
27
42
  menu,
28
43
  menuItem,
44
+ loginAccordion,
45
+ loginAccordionList,
46
+ loginAccordionGroup,
47
+ loginAccordionHeading,
48
+ loginAccordionGroupList,
49
+ loginHeading,
29
50
  chevron,
30
51
  chevronIcon,
31
52
  quickLinks,
32
53
  quickLink,
33
- sr_only
54
+ sr_only,
55
+ loginAccordionOverlay
34
56
  };
35
57
  export {
36
58
  back,
@@ -44,8 +66,19 @@ export {
44
66
  level,
45
67
  levelContainer,
46
68
  levelTitle,
69
+ loginAccordion,
70
+ loginAccordionGroup,
71
+ loginAccordionGroupList,
72
+ loginAccordionHeading,
73
+ loginAccordionList,
74
+ loginAccordionOverlay,
75
+ loginDrawerContent,
76
+ loginDrawerTitle,
77
+ loginHeading,
78
+ loginTrigger,
47
79
  menu,
48
80
  menuItem,
81
+ mobileNavRow,
49
82
  overlay,
50
83
  quickLink,
51
84
  quickLinks,
@@ -1,4 +1,6 @@
1
- export declare const menuData: {
1
+ import { UrlResolver } from '../../../utils/allowedAxosDomains';
2
+
3
+ export declare const getMenuData: (resolveUrl: UrlResolver) => {
2
4
  Personal: {
3
5
  "Personal Home": string;
4
6
  Bank: {
@@ -39,6 +41,7 @@ export declare const menuData: {
39
41
  "Apply Now": string;
40
42
  "Mortgage Services": string;
41
43
  "Make a Payment": string;
44
+ "Construction Lending": string;
42
45
  };
43
46
  "Personal Loans": {
44
47
  "Personal Loans Home": string;
@@ -116,6 +119,7 @@ export declare const menuData: {
116
119
  "Business Premium Savings": string;
117
120
  "Business Savings": string;
118
121
  "Non-Profit Money Market": string;
122
+ "Business CDs": string;
119
123
  };
120
124
  Bundles: {
121
125
  "Axos Business Bundle": string;
@@ -165,6 +169,7 @@ export declare const menuData: {
165
169
  "Merchant Services": string;
166
170
  "Treasury Management": string;
167
171
  "IntraFi\u00AE Network Deposits\u2120": string;
172
+ "Payroll Services": string;
168
173
  };
169
174
  "Other Resources": {
170
175
  "Business Support": string;
@@ -242,25 +247,34 @@ export declare const menuData: {
242
247
  };
243
248
  "Log in": {
244
249
  Personal: {
245
- "Personal Banking Home": string;
246
250
  "Account Login": string;
247
251
  "Make a Payment": string;
248
252
  };
249
253
  Business: {
250
- "Business Banking Home": string;
251
254
  "Business Banking Login": string;
252
255
  "MWA Business Login": string;
253
256
  "Commercial Portal": string;
254
257
  };
255
258
  Partners: {
256
- "Partners Home": string;
257
259
  "Wholesale and Correspondent": string;
258
260
  "Advisor Login": string;
259
261
  };
262
+ Additional: {
263
+ "Customer Support": string;
264
+ "Return to Application": string;
265
+ };
260
266
  };
261
- "Return to Application": string;
262
267
  };
263
- export declare const getQuickLinks: (pathname: string) => {
268
+ export type FlattenedLoginItem = {
269
+ title: string;
270
+ url: string;
271
+ };
272
+ export type LoginGroup = {
273
+ heading: string;
274
+ items: FlattenedLoginItem[];
275
+ };
276
+ export declare const getLoginGroups: (resolveUrl: UrlResolver) => LoginGroup[];
277
+ export declare const getQuickLinks: (pathname: string, resolveUrl: UrlResolver) => {
264
278
  icon: string;
265
279
  title: string;
266
280
  url: string;