@axos-web-dev/shared-components 1.0.8 → 1.0.9-9.dev.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 (242) hide show
  1. package/dist/ATMLocator/ATMLocator.js +42 -32
  2. package/dist/Accordion/Accordion.css.d.ts +1 -1
  3. package/dist/Article/Article.css.d.ts +41 -41
  4. package/dist/Article/Article.js +3 -13
  5. package/dist/ArticlesSet/ArticlesSet.css.d.ts +16 -16
  6. package/dist/Auth/ErrorAlert.css.d.ts +4 -0
  7. package/dist/Auth/ErrorAlert.css.js +11 -0
  8. package/dist/Auth/ErrorAlert.d.ts +14 -0
  9. package/dist/Auth/ErrorAlert.js +184 -0
  10. package/dist/Auth/Logout.d.ts +3 -0
  11. package/dist/Auth/Logout.js +29 -0
  12. package/dist/Auth/SignIn.css.d.ts +6 -0
  13. package/dist/Auth/SignIn.css.js +18 -0
  14. package/dist/Auth/SignInPassword.d.ts +15 -0
  15. package/dist/Auth/SignInPassword.js +118 -0
  16. package/dist/Auth/index.d.ts +5 -0
  17. package/dist/Auth/index.js +20 -0
  18. package/dist/Button/Button.css.d.ts +31 -18
  19. package/dist/Button/Button.css.js +1 -1
  20. package/dist/Button/Button.js +14 -4
  21. package/dist/Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.d.ts +12 -12
  22. package/dist/Calculators/ApyCalculator/ApyCalculator.css.d.ts +14 -14
  23. package/dist/Calculators/ApyCalculator/index.js +20 -12
  24. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.d.ts +8 -8
  25. package/dist/Calculators/AxosOneCalculator/index.js +18 -10
  26. package/dist/Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.d.ts +22 -22
  27. package/dist/Calculators/BuyDownCalculator/BuyDownCalculator.css.d.ts +101 -0
  28. package/dist/Calculators/BuyDownCalculator/BuyDownCalculator.css.js +56 -0
  29. package/dist/Calculators/BuyDownCalculator/index.d.ts +25 -0
  30. package/dist/Calculators/BuyDownCalculator/index.js +855 -0
  31. package/dist/Calculators/Calculator.js +29 -10
  32. package/dist/Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.d.ts +12 -12
  33. package/dist/Calculators/MonthlyPaymentLVFCalculator/MonthlyPaymentCalculator.css.d.ts +12 -12
  34. package/dist/Calculators/SummitApyCalculator/BalanceAPYCalculator.css.d.ts +8 -8
  35. package/dist/Calculators/calculator.css.d.ts +12 -12
  36. package/dist/Calculators/index.d.ts +1 -0
  37. package/dist/Calculators/index.js +2 -0
  38. package/dist/CallToActionBar/index.js +3 -1
  39. package/dist/Carousel/Carousel.css.d.ts +20 -20
  40. package/dist/Carousel/index.js +23 -13
  41. package/dist/Chevron/Chevron.css.d.ts +6 -6
  42. package/dist/Chevron/index.js +14 -4
  43. package/dist/Comparison/Comparison.css.d.ts +11 -10
  44. package/dist/Comparison/Comparison.css.js +3 -1
  45. package/dist/Comparison/Comparison.js +23 -13
  46. package/dist/Comparison/index.js +2 -1
  47. package/dist/ContentBanner/ContentBanner.css.d.ts +12 -12
  48. package/dist/ExecutiveBio/ExecutiveBio.css.d.ts +31 -31
  49. package/dist/ExecutiveBio/ExecutiveBio.js +16 -22
  50. package/dist/FaqAccordion/index.js +16 -6
  51. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +14 -4
  52. package/dist/Forms/ApplicationStart.js +21 -4
  53. package/dist/Forms/ApplyNow.js +14 -4
  54. package/dist/Forms/ClearingForm.js +19 -2
  55. package/dist/Forms/CommercialDeposits.js +19 -2
  56. package/dist/Forms/CommercialLending.js +20 -3
  57. package/dist/Forms/CommercialPremiumFinance.d.ts +10 -0
  58. package/dist/Forms/CommercialPremiumFinance.js +212 -0
  59. package/dist/Forms/ContactCompany.js +20 -3
  60. package/dist/Forms/ContactCompanyTitle.js +20 -3
  61. package/dist/Forms/ContactUs.d.ts +1 -1
  62. package/dist/Forms/ContactUs.js +107 -79
  63. package/dist/Forms/ContactUsAAS.js +20 -5
  64. package/dist/Forms/ContactUsBusiness.d.ts +2 -2
  65. package/dist/Forms/ContactUsBusiness.js +45 -19
  66. package/dist/Forms/ContactUsBusinessNameEmail.d.ts +9 -0
  67. package/dist/Forms/ContactUsBusinessNameEmail.js +282 -0
  68. package/dist/Forms/ContactUsLVF.js +20 -3
  69. package/dist/Forms/ContactUsNMLSId.js +35 -9
  70. package/dist/Forms/CpraRequest.d.ts +1 -1
  71. package/dist/Forms/CpraRequest.js +75 -63
  72. package/dist/Forms/CraPublicFile.d.ts +5 -5
  73. package/dist/Forms/CraPublicFile.js +69 -45
  74. package/dist/Forms/DealerServices.js +20 -4
  75. package/dist/Forms/EmailOnly.js +45 -28
  76. package/dist/Forms/EmailUs.js +12 -2
  77. package/dist/Forms/FormEnums.d.ts +21 -0
  78. package/dist/Forms/FormEnums.js +308 -0
  79. package/dist/Forms/FormProps.d.ts +3 -0
  80. package/dist/Forms/Forms.css.d.ts +42 -42
  81. package/dist/Forms/HoneyPot/HoneyPot.css.d.ts +1 -0
  82. package/dist/Forms/HoneyPot/HoneyPot.css.js +5 -0
  83. package/dist/Forms/HoneyPot/index.d.ts +24 -0
  84. package/dist/Forms/HoneyPot/index.js +71 -0
  85. package/dist/Forms/MortgageRate/MortgageRateForm.js +17 -7
  86. package/dist/Forms/MortgageRate/MortgageRateWatch.js +16 -6
  87. package/dist/Forms/QuickPricer/QuickPricerForm.js +19 -20
  88. package/dist/Forms/ScheduleCall.js +20 -3
  89. package/dist/Forms/ScheduleCallPremier.js +20 -3
  90. package/dist/Forms/SuccesForm.js +31 -21
  91. package/dist/Forms/VendorQuestionnaire.js +12 -2
  92. package/dist/Forms/WcplSurvey.js +20 -3
  93. package/dist/Forms/index.d.ts +3 -0
  94. package/dist/Forms/index.js +8 -0
  95. package/dist/HelpArticle/HelpArticle.css.d.ts +4 -0
  96. package/dist/HelpArticle/HelpArticle.css.js +12 -0
  97. package/dist/HelpArticle/index.d.ts +1 -0
  98. package/dist/HelpArticle/index.js +7 -0
  99. package/dist/HeroBanner/HeroBanner.css.d.ts +19 -17
  100. package/dist/HeroBanner/HeroBanner.css.js +9 -5
  101. package/dist/HeroBanner/HeroBanner.d.ts +1 -1
  102. package/dist/HeroBanner/HeroBanner.interface.d.ts +3 -0
  103. package/dist/HeroBanner/HeroBanner.js +47 -1
  104. package/dist/HeroBanner/LargeBanner.css.d.ts +20 -20
  105. package/dist/HeroBanner/SelectionBanner.css.d.ts +8 -8
  106. package/dist/HeroBanner/index.js +3 -1
  107. package/dist/Hyperlink/index.js +17 -7
  108. package/dist/IconBillboard/IconBillboard.css.d.ts +26 -25
  109. package/dist/IconBillboard/IconBillboard.css.js +5 -3
  110. package/dist/IconBillboard/IconBillboard.d.ts +1 -2
  111. package/dist/IconBillboard/IconBillboard.interface.d.ts +1 -0
  112. package/dist/IconBillboard/IconBillboard.js +46 -80
  113. package/dist/IconBillboard/IconBillboardSet.js +1 -1
  114. package/dist/IconBillboard/index.js +3 -3
  115. package/dist/IconBillboard/sections/CallToActionSection.d.ts +12 -0
  116. package/dist/IconBillboard/sections/CallToActionSection.js +101 -0
  117. package/dist/IconBillboard/sections/HeaderSection.d.ts +11 -0
  118. package/dist/IconBillboard/sections/HeaderSection.js +23 -0
  119. package/dist/IconBillboard/sections/IconSection.d.ts +7 -0
  120. package/dist/IconBillboard/sections/IconSection.js +18 -0
  121. package/dist/IconBillboard/sections/ItemsSection.d.ts +11 -0
  122. package/dist/IconBillboard/sections/ItemsSection.js +11 -0
  123. package/dist/IconBillboard/sections/LayoutSection.d.ts +8 -0
  124. package/dist/IconBillboard/sections/LayoutSection.js +6 -0
  125. package/dist/ImageBillboard/ExitIntentModal/ModalWrapper.d.ts +9 -0
  126. package/dist/ImageBillboard/ExitIntentModal/ModalWrapper.js +85 -0
  127. package/dist/ImageBillboard/ExitIntentModal/useExitIntentModal.d.ts +5 -0
  128. package/dist/ImageBillboard/ExitIntentModal/useExitIntentModal.js +90 -0
  129. package/dist/ImageBillboard/ImageBillboard.css.d.ts +36 -20
  130. package/dist/ImageBillboard/ImageBillboard.css.js +50 -18
  131. package/dist/ImageBillboard/ImageBillboard.interface.d.ts +20 -2
  132. package/dist/ImageBillboard/ImageBillboardSet.d.ts +1 -1
  133. package/dist/ImageBillboard/ImageBillboardSet.js +104 -28
  134. package/dist/ImageBillboard/index.js +17 -1
  135. package/dist/ImageLink/ImageLink.d.ts +2 -2
  136. package/dist/ImageLink/ImageLink.js +17 -13
  137. package/dist/ImageLink/ImageLinkSet.js +20 -10
  138. package/dist/ImageLink/index.js +17 -7
  139. package/dist/Input/Checkbox.js +2 -1
  140. package/dist/Input/Input.css.d.ts +16 -16
  141. package/dist/Input/Input.js +4 -1
  142. package/dist/Input/PercentageInput.d.ts +3 -0
  143. package/dist/Input/PercentageInput.js +32 -0
  144. package/dist/Input/RadioButton.js +12 -3
  145. package/dist/Inputs/Input.css.d.ts +14 -14
  146. package/dist/Insight/Featured/CategorySelector.js +28 -20
  147. package/dist/Insight/Featured/Featured.js +75 -58
  148. package/dist/Insight/Featured/Header.js +22 -12
  149. package/dist/Interstitial/Interstitial-variants.css.d.ts +2 -2
  150. package/dist/LandingPageHeader/LandingPageHeader.css.d.ts +3 -3
  151. package/dist/Modal/Modal.js +15 -5
  152. package/dist/NavigationMenu/AxosALTS/NavData.js +14 -4
  153. package/dist/NavigationMenu/AxosALTS/index.js +14 -4
  154. package/dist/NavigationMenu/AxosAdvisor/SubNavBar.js +3 -10
  155. package/dist/NavigationMenu/AxosAdvisor/index.js +3 -11
  156. package/dist/NavigationMenu/AxosAdvisorServices/NavData.js +0 -5
  157. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.d.ts +2 -0
  158. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +345 -0
  159. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +53 -0
  160. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +272 -0
  161. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +664 -0
  162. package/dist/NavigationMenu/AxosBank/NavBar.module.js +39 -81
  163. package/dist/NavigationMenu/AxosBank/NavData.js +14 -4
  164. package/dist/NavigationMenu/AxosBank/SubNavBar.js +432 -108
  165. package/dist/NavigationMenu/AxosBank/index.d.ts +2 -1
  166. package/dist/NavigationMenu/AxosBank/index.js +104 -533
  167. package/dist/NavigationMenu/LaVictoire/NavData.js +14 -4
  168. package/dist/NavigationMenu/LaVictoire/index.js +40 -20
  169. package/dist/NavigationMenu/NavDataJson.d.ts +2 -0
  170. package/dist/NavigationMenu/NavDataJson.js +309 -0
  171. package/dist/NavigationMenu/Navbar.d.ts +5 -0
  172. package/dist/NavigationMenu/Navbar.js +195 -0
  173. package/dist/NavigationMenu/SignInNavButton.d.ts +1 -0
  174. package/dist/NavigationMenu/SignInNavButton.js +363 -0
  175. package/dist/PageNavItem/PageNavItem.css.d.ts +2 -2
  176. package/dist/SetContainer/SetContainer.css.d.ts +17 -18
  177. package/dist/SetContainer/SetContainer.css.js +2 -4
  178. package/dist/SetContainer/SetContainer.d.ts +2 -1
  179. package/dist/SetContainer/SetContainer.js +27 -13
  180. package/dist/SetContainer/index.js +1 -2
  181. package/dist/SocialMediaBar/iconsRepository.js +14 -4
  182. package/dist/StepItem/StepItem.css.d.ts +18 -18
  183. package/dist/StepItemSet/StepItemSet.css.d.ts +14 -14
  184. package/dist/StepItemSet/StepItemSet.js +2 -6
  185. package/dist/Tab/Tab.css.d.ts +12 -12
  186. package/dist/Table/Table.css.d.ts +25 -25
  187. package/dist/Table/Table.d.ts +3 -3
  188. package/dist/Topic/Topic.css.d.ts +4 -0
  189. package/dist/Topic/Topic.css.js +12 -0
  190. package/dist/Topic/Topic.d.ts +19 -0
  191. package/dist/Topic/Topic.js +24 -0
  192. package/dist/Topic/index.d.ts +2 -0
  193. package/dist/Topic/index.js +12 -0
  194. package/dist/VideoTile/VideoTile.interface.d.ts +4 -3
  195. package/dist/VideoTile/VideoTile.js +183 -28
  196. package/dist/VideoWrapper/index.js +15 -5
  197. package/dist/WalnutIframe/index.d.ts +6 -0
  198. package/dist/WalnutIframe/index.js +21 -0
  199. package/dist/WalnutIframe/wrapper.module.js +14 -0
  200. package/dist/assets/Auth/ErrorAlert.css +37 -0
  201. package/dist/assets/Auth/SignIn.css +86 -0
  202. package/dist/assets/Button/Button.css +31 -16
  203. package/dist/assets/Calculators/AxosOneCalculator/BalanceAPYCalculator.css +5 -0
  204. package/dist/assets/Calculators/BuyDownCalculator/BuyDownCalculator.css +197 -0
  205. package/dist/assets/Calculators/SummitApyCalculator/BalanceAPYCalculator.css +8 -0
  206. package/dist/assets/CallToActionBar/CallToActionBar.css +4 -0
  207. package/dist/assets/Comparison/Comparison.css +9 -2
  208. package/dist/assets/Forms/HoneyPot/HoneyPot.css +4 -0
  209. package/dist/assets/HelpArticle/HelpArticle.css +70 -0
  210. package/dist/assets/HeroBanner/HeroBanner.css +38 -26
  211. package/dist/assets/HeroBanner/LargeBanner.css +3 -0
  212. package/dist/assets/IconBillboard/IconBillboard.css +43 -36
  213. package/dist/assets/ImageBillboard/ImageBillboard.css +336 -36
  214. package/dist/assets/Insight/Insight.css +12 -0
  215. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css.css +191 -0
  216. package/dist/assets/NavigationMenu/AxosBank/NavBar.css +6 -0
  217. package/dist/assets/NavigationMenu/AxosBank/NavBar.css.css +473 -661
  218. package/dist/assets/SetContainer/SetContainer.css +44 -22
  219. package/dist/assets/Topic/Topic.css +54 -0
  220. package/dist/assets/WalnutIframe/wrapper.css.css +49 -0
  221. package/dist/assets/globals.css +13 -30
  222. package/dist/assets/utils/optimizeImage/optimizeImage.css.css +47 -0
  223. package/dist/icons/ArrowIcon/ArrowIcon.css.d.ts +3 -3
  224. package/dist/icons/CheckIcon/CheckIcon.css.d.ts +2 -2
  225. package/dist/icons/Logos/AXB.d.ts +8 -0
  226. package/dist/icons/Logos/AXB.js +74 -0
  227. package/dist/main.d.ts +5 -0
  228. package/dist/main.js +69 -8
  229. package/dist/themes/axos.css.d.ts +38 -38
  230. package/dist/utils/allowedAxosDomains.js +19 -3
  231. package/dist/utils/appendQueryParams.js +3 -6
  232. package/dist/utils/{lazyImage/lazyImage.d.ts → optimizeImage/OptimizeImage.d.ts} +3 -2
  233. package/dist/utils/optimizeImage/OptimizeImage.js +46 -0
  234. package/dist/utils/optimizeImage/index.d.ts +1 -0
  235. package/dist/utils/optimizeImage/index.js +4 -0
  236. package/dist/utils/optimizeImage/optimizeImage.module.js +14 -0
  237. package/package.json +11 -8
  238. package/dist/utils/lazyImage/imageObserver.d.ts +0 -9
  239. package/dist/utils/lazyImage/imageObserver.js +0 -29
  240. package/dist/utils/lazyImage/index.d.ts +0 -2
  241. package/dist/utils/lazyImage/index.js +0 -7
  242. package/dist/utils/lazyImage/lazyImage.js +0 -26
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useRef, useEffect } from "react";
4
+ import { exit_intent_backdrop, exit_intent, modal_close_button } from "../ImageBillboard.css.js";
5
+ const ModalWrapper = ({
6
+ children,
7
+ onClose,
8
+ modalRef
9
+ }) => {
10
+ const wrapperRef = useRef(null);
11
+ useEffect(() => {
12
+ const originalOverflow = document.body.style.overflow;
13
+ document.body.style.overflow = "hidden";
14
+ return () => {
15
+ document.body.style.overflow = originalOverflow;
16
+ };
17
+ }, []);
18
+ useEffect(() => {
19
+ const focusableSelectors = [
20
+ "a[href]",
21
+ "button:not([disabled])",
22
+ '[tabindex]:not([tabindex="-1"])'
23
+ ];
24
+ const trapFocus = (e) => {
25
+ if (e.key !== "Tab") return;
26
+ const focusableEls = modalRef.current?.querySelectorAll(
27
+ focusableSelectors.join(",")
28
+ );
29
+ if (!focusableEls || focusableEls.length === 0) return;
30
+ const first = focusableEls[0];
31
+ const last = focusableEls[focusableEls.length - 1];
32
+ if (e.shiftKey && document.activeElement === first) {
33
+ e.preventDefault();
34
+ last.focus();
35
+ } else if (!e.shiftKey && document.activeElement === last) {
36
+ e.preventDefault();
37
+ first.focus();
38
+ }
39
+ };
40
+ const focusFirst = () => {
41
+ const focusableEls = modalRef.current?.querySelectorAll(
42
+ focusableSelectors.join(",")
43
+ );
44
+ focusableEls?.[0]?.focus();
45
+ };
46
+ focusFirst();
47
+ document.addEventListener("keydown", trapFocus);
48
+ document.addEventListener("keydown", handleEscape);
49
+ return () => {
50
+ document.removeEventListener("keydown", trapFocus);
51
+ document.removeEventListener("keydown", handleEscape);
52
+ };
53
+ }, [modalRef]);
54
+ const handleEscape = (e) => {
55
+ if (e.key === "Escape") {
56
+ onClose();
57
+ }
58
+ };
59
+ return /* @__PURE__ */ jsx("div", { className: exit_intent_backdrop, role: "presentation", children: /* @__PURE__ */ jsx(
60
+ "div",
61
+ {
62
+ className: exit_intent,
63
+ ref: modalRef,
64
+ role: "dialog",
65
+ "aria-modal": "true",
66
+ "aria-labelledby": "exit-intent-heading",
67
+ "aria-describedby": "exit-intent-description",
68
+ children: /* @__PURE__ */ jsxs("div", { ref: wrapperRef, className: "relative", children: [
69
+ /* @__PURE__ */ jsx(
70
+ "button",
71
+ {
72
+ "aria-label": "Close modal",
73
+ className: modal_close_button,
74
+ onClick: onClose,
75
+ children: "X"
76
+ }
77
+ ),
78
+ children
79
+ ] })
80
+ }
81
+ ) });
82
+ };
83
+ export {
84
+ ModalWrapper
85
+ };
@@ -0,0 +1,5 @@
1
+ export declare const useExitIntentModal: (enabled: boolean) => {
2
+ isVisible: boolean;
3
+ close: () => void;
4
+ modalRef: import('react').MutableRefObject<HTMLDivElement | null>;
5
+ };
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { useState, useRef, useEffect } from "react";
3
+ const useExitIntentModal = (enabled) => {
4
+ const [isVisible, setIsVisible] = useState(false);
5
+ const modalRef = useRef(null);
6
+ useEffect(() => {
7
+ if (!enabled) return;
8
+ const STORAGE_KEY = "exitIntentShown";
9
+ const sessionExpiry = 24 * 60 * 60 * 1e3;
10
+ const hasShown = () => {
11
+ const stored = localStorage.getItem(STORAGE_KEY);
12
+ if (!stored) return false;
13
+ const { timestamp } = JSON.parse(stored);
14
+ return Date.now() - timestamp < sessionExpiry;
15
+ };
16
+ const markShown = () => {
17
+ localStorage.setItem(
18
+ STORAGE_KEY,
19
+ JSON.stringify({ timestamp: Date.now() })
20
+ );
21
+ };
22
+ const showBanner = () => {
23
+ if (!hasShown()) {
24
+ setIsVisible(true);
25
+ markShown();
26
+ }
27
+ };
28
+ const handleMouseLeave = (e) => {
29
+ if (e.clientY <= 0) showBanner();
30
+ };
31
+ const handleScroll = () => {
32
+ const scrollY = window.scrollY;
33
+ const maxScroll = document.body.scrollHeight - window.innerHeight;
34
+ const percentScrolled = scrollY / maxScroll * 100;
35
+ if (percentScrolled > 60) {
36
+ window.addEventListener("scroll", detectScrollUp);
37
+ }
38
+ };
39
+ const detectScrollUp = () => {
40
+ if (window.scrollY < window.innerHeight * 0.25) {
41
+ showBanner();
42
+ window.removeEventListener("scroll", detectScrollUp);
43
+ }
44
+ };
45
+ let inactivityTimer;
46
+ const resetInactivity = () => {
47
+ clearTimeout(inactivityTimer);
48
+ inactivityTimer = setTimeout(() => {
49
+ showBanner();
50
+ }, 15e3);
51
+ };
52
+ const startListeners = () => {
53
+ document.addEventListener("mouseleave", handleMouseLeave);
54
+ window.addEventListener("scroll", handleScroll);
55
+ document.addEventListener("mousemove", resetInactivity);
56
+ document.addEventListener("keydown", resetInactivity);
57
+ };
58
+ const initTimeout = setTimeout(startListeners, 1e4);
59
+ resetInactivity();
60
+ return () => {
61
+ clearTimeout(initTimeout);
62
+ clearTimeout(inactivityTimer);
63
+ document.removeEventListener("mouseleave", handleMouseLeave);
64
+ window.removeEventListener("scroll", handleScroll);
65
+ document.removeEventListener("mousemove", resetInactivity);
66
+ document.removeEventListener("keydown", resetInactivity);
67
+ window.removeEventListener("scroll", detectScrollUp);
68
+ };
69
+ }, [enabled]);
70
+ useEffect(() => {
71
+ if (!isVisible) return;
72
+ const handleClickOutside = (e) => {
73
+ if (modalRef.current && !modalRef.current.contains(e.target)) {
74
+ setIsVisible(false);
75
+ }
76
+ };
77
+ document.addEventListener("mousedown", handleClickOutside);
78
+ return () => {
79
+ document.removeEventListener("mousedown", handleClickOutside);
80
+ };
81
+ }, [isVisible]);
82
+ return {
83
+ isVisible,
84
+ close: () => setIsVisible(false),
85
+ modalRef
86
+ };
87
+ };
88
+ export {
89
+ useExitIntentModal
90
+ };
@@ -1,21 +1,21 @@
1
1
  export declare const billboard: import('@vanilla-extract/recipes').RuntimeFn<{
2
2
  variant: {
3
3
  primary: {
4
- background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
5
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
4
+ background: `var(--${string})`;
5
+ color: `var(--${string})`;
6
6
  border: "1px solid #D4D4D4";
7
7
  };
8
8
  secondary: {
9
- background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
10
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
9
+ background: `var(--${string})`;
10
+ color: `var(--${string})`;
11
11
  };
12
12
  tertiary: {
13
- background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
14
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
13
+ background: `var(--${string})`;
14
+ color: `var(--${string})`;
15
15
  };
16
16
  quaternary: {
17
- background: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
18
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
17
+ background: `var(--${string})`;
18
+ color: `var(--${string})`;
19
19
  };
20
20
  };
21
21
  }>;
@@ -61,12 +61,12 @@ export declare const supertag: import('@vanilla-extract/recipes').RuntimeFn<{
61
61
  selectors: {
62
62
  [x: string]: {
63
63
  WebkitBackgroundClip: "text";
64
- backgroundImage: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
64
+ backgroundImage: `var(--${string})`;
65
65
  WebkitTextFillColor: "transparent";
66
66
  textShadow: "0px 0px #00000000";
67
67
  color?: undefined;
68
68
  } | {
69
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
69
+ color: `var(--${string})`;
70
70
  WebkitBackgroundClip?: undefined;
71
71
  backgroundImage?: undefined;
72
72
  WebkitTextFillColor?: undefined;
@@ -78,12 +78,12 @@ export declare const supertag: import('@vanilla-extract/recipes').RuntimeFn<{
78
78
  selectors: {
79
79
  [x: string]: {
80
80
  WebkitBackgroundClip: "text";
81
- backgroundImage: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
81
+ backgroundImage: `var(--${string})`;
82
82
  WebkitTextFillColor: "transparent";
83
83
  textShadow: "0px 0px #00000000";
84
84
  color?: undefined;
85
85
  } | {
86
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
86
+ color: `var(--${string})`;
87
87
  WebkitBackgroundClip?: undefined;
88
88
  backgroundImage?: undefined;
89
89
  WebkitTextFillColor?: undefined;
@@ -92,10 +92,10 @@ export declare const supertag: import('@vanilla-extract/recipes').RuntimeFn<{
92
92
  };
93
93
  };
94
94
  tertiary: {
95
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
95
+ color: `var(--${string})`;
96
96
  };
97
97
  quaternary: {
98
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
98
+ color: `var(--${string})`;
99
99
  };
100
100
  };
101
101
  }>;
@@ -105,12 +105,12 @@ export declare const header: import('@vanilla-extract/recipes').RuntimeFn<{
105
105
  selectors: {
106
106
  [x: string]: {
107
107
  WebkitBackgroundClip: "text";
108
- backgroundImage: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
108
+ backgroundImage: `var(--${string})`;
109
109
  WebkitTextFillColor: "transparent";
110
110
  textShadow: "0px 0px #00000000";
111
111
  color?: undefined;
112
112
  } | {
113
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
113
+ color: `var(--${string})`;
114
114
  WebkitBackgroundClip?: undefined;
115
115
  backgroundImage?: undefined;
116
116
  WebkitTextFillColor?: undefined;
@@ -122,12 +122,12 @@ export declare const header: import('@vanilla-extract/recipes').RuntimeFn<{
122
122
  selectors: {
123
123
  [x: string]: {
124
124
  WebkitBackgroundClip: "text";
125
- backgroundImage: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
125
+ backgroundImage: `var(--${string})`;
126
126
  WebkitTextFillColor: "transparent";
127
127
  textShadow: "0px 0px #00000000";
128
128
  color?: undefined;
129
129
  } | {
130
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
130
+ color: `var(--${string})`;
131
131
  WebkitBackgroundClip?: undefined;
132
132
  backgroundImage?: undefined;
133
133
  WebkitTextFillColor?: undefined;
@@ -136,15 +136,16 @@ export declare const header: import('@vanilla-extract/recipes').RuntimeFn<{
136
136
  };
137
137
  };
138
138
  tertiary: {
139
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
139
+ color: `var(--${string})`;
140
140
  };
141
141
  quaternary: {
142
- color: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
142
+ color: `var(--${string})`;
143
143
  };
144
144
  };
145
145
  }>;
146
146
  export declare const billboard_container: string;
147
147
  export declare const billboard_img: string;
148
+ export declare const is_bg_img: string;
148
149
  export declare const billboard_body: string;
149
150
  export declare const billboard_header_section: string;
150
151
  export declare const billboard_ctas: string;
@@ -156,6 +157,8 @@ export declare const section_text_ImageBillboard: string;
156
157
  export declare const billboard_image: string;
157
158
  export declare const mh_330: string;
158
159
  export declare const image_background: string;
160
+ export declare const image_inner_wrapper: string;
161
+ export declare const image_based: string;
159
162
  export declare const rate_container: string;
160
163
  export declare const rate_pad: string;
161
164
  export declare const up_to: string;
@@ -163,3 +166,16 @@ export declare const rate_billboard: string;
163
166
  export declare const apy_billboard: string;
164
167
  export declare const body_copy: string;
165
168
  export declare const sub_bullets: string;
169
+ export declare const top_left: string;
170
+ export declare const top_center: string;
171
+ export declare const top_right: string;
172
+ export declare const center_left: string;
173
+ export declare const center_right: string;
174
+ export declare const center_center: string;
175
+ export declare const bottom_left: string;
176
+ export declare const bottom_right: string;
177
+ export declare const bottom_center: string;
178
+ export declare const remove_padding: string;
179
+ export declare const exit_intent_backdrop: string;
180
+ export declare const exit_intent: string;
181
+ export declare const modal_close_button: string;
@@ -11,24 +11,40 @@ var supertag = createRuntimeFn({ defaultClassName: "_1m7m2a8", variantClassNames
11
11
  var header = createRuntimeFn({ defaultClassName: "_1m7m2ad", variantClassNames: { variant: { primary: "_1m7m2ae", secondary: "_1m7m2af", tertiary: "_1m7m2ag", quaternary: "_1m7m2ah" } }, defaultVariants: {}, compoundVariants: [] });
12
12
  var billboard_container = "_1m7m2ai";
13
13
  var billboard_img = "_1m7m2aj";
14
- var billboard_body = "_1m7m2ak";
15
- var billboard_header_section = "_1m7m2al";
16
- var billboard_ctas = "_1m7m2am";
17
- var body = "_1m7m2an";
18
- var single_container = "_1m7m2ao";
19
- var two_inline = "_1m7m2ap";
20
- var three_inline = "_1m7m2aq";
21
- var section_text_ImageBillboard = "_1m7m2ar";
22
- var billboard_image = "_1m7m2as";
23
- var mh_330 = "_1m7m2at";
24
- var image_background = "_1m7m2au";
25
- var rate_container = "_1m7m2av";
26
- var rate_pad = "_1m7m2aw";
27
- var up_to = "_1m7m2ax";
28
- var rate_billboard = "_1m7m2ay";
29
- var apy_billboard = "_1m7m2az";
30
- var body_copy = "_1m7m2a10";
31
- var sub_bullets = "_1m7m2a11";
14
+ var is_bg_img = "_1m7m2ak";
15
+ var billboard_body = "_1m7m2al";
16
+ var billboard_header_section = "_1m7m2am";
17
+ var billboard_ctas = "_1m7m2an";
18
+ var body = "_1m7m2ao";
19
+ var single_container = "_1m7m2ap";
20
+ var two_inline = "_1m7m2aq";
21
+ var three_inline = "_1m7m2ar";
22
+ var section_text_ImageBillboard = "_1m7m2as";
23
+ var billboard_image = "_1m7m2at";
24
+ var mh_330 = "_1m7m2au";
25
+ var image_background = "_1m7m2av";
26
+ var image_inner_wrapper = "_1m7m2aw";
27
+ var image_based = "_1m7m2ax";
28
+ var rate_container = "_1m7m2ay";
29
+ var rate_pad = "_1m7m2az";
30
+ var up_to = "_1m7m2a10";
31
+ var rate_billboard = "_1m7m2a11";
32
+ var apy_billboard = "_1m7m2a12";
33
+ var body_copy = "_1m7m2a13";
34
+ var sub_bullets = "_1m7m2a14";
35
+ var top_left = "_1m7m2a15";
36
+ var top_center = "_1m7m2a16";
37
+ var top_right = "_1m7m2a17";
38
+ var center_left = "_1m7m2a18";
39
+ var center_right = "_1m7m2a19";
40
+ var center_center = "_1m7m2a1a";
41
+ var bottom_left = "_1m7m2a1b";
42
+ var bottom_right = "_1m7m2a1c";
43
+ var bottom_center = "_1m7m2a1d";
44
+ var remove_padding = "_1m7m2a1e";
45
+ var exit_intent_backdrop = "_1m7m2a1f";
46
+ var exit_intent = "_1m7m2a1g";
47
+ var modal_close_button = "_1m7m2a1h";
32
48
  export {
33
49
  apy_billboard,
34
50
  billboard,
@@ -40,18 +56,34 @@ export {
40
56
  billboard_img,
41
57
  body,
42
58
  body_copy,
59
+ bottom_center,
60
+ bottom_left,
61
+ bottom_right,
62
+ center_center,
63
+ center_left,
64
+ center_right,
65
+ exit_intent,
66
+ exit_intent_backdrop,
43
67
  header,
44
68
  imagePlacement,
45
69
  image_background,
70
+ image_based,
71
+ image_inner_wrapper,
72
+ is_bg_img,
46
73
  mh_330,
74
+ modal_close_button,
47
75
  rate_billboard,
48
76
  rate_container,
49
77
  rate_pad,
78
+ remove_padding,
50
79
  section_text_ImageBillboard,
51
80
  single_container,
52
81
  sub_bullets,
53
82
  supertag,
54
83
  three_inline,
84
+ top_center,
85
+ top_left,
86
+ top_right,
55
87
  two_inline,
56
88
  up_to
57
89
  };
@@ -1,6 +1,5 @@
1
1
  import { BulletItemProps } from '../BulletItem';
2
2
  import { ChevronProps } from '../Chevron/Chevron.interface';
3
- import { ImageInterface } from '../IconBillboard';
4
3
  import { QuaternaryTypes } from '../utils/variant.types';
5
4
  import { ReactNode } from 'react';
6
5
 
@@ -13,6 +12,22 @@ export interface ImageBillboardSetProps {
13
12
  variant: QuaternaryTypes;
14
13
  set?: boolean;
15
14
  bordered?: boolean;
15
+ layout?: "Inline" | "Stacked";
16
+ }
17
+ export interface BillboardImageInterface {
18
+ src: string;
19
+ alt?: string;
20
+ imageType?: "Image" | "Background Image";
21
+ imageAlignment?: string;
22
+ imageBackgroundColor?: string;
23
+ height?: string | number;
24
+ width?: string | number;
25
+ }
26
+ export interface BillboardVideoInterface {
27
+ videoId: string;
28
+ videoPlayer: string;
29
+ thubnailImage: string;
30
+ transcript?: string;
16
31
  }
17
32
  export interface ImageBillboardInterface {
18
33
  id: string;
@@ -24,11 +39,14 @@ export interface ImageBillboardInterface {
24
39
  variant: QuaternaryTypes;
25
40
  eyebrow: string | ReactNode;
26
41
  bullets: BulletItemProps[];
27
- image?: ImageInterface;
42
+ image?: BillboardImageInterface;
43
+ video?: BillboardVideoInterface;
28
44
  callToActionRow: ChevronProps[];
29
45
  set?: boolean;
30
46
  textImageLineOneSmall?: ReactNode | string;
31
47
  textImageLineTwoBig?: ReactNode | string;
32
48
  textImageLineThreeSmall?: ReactNode | string;
33
49
  internalName?: string;
50
+ exitIntent?: boolean;
51
+ layout?: ImageBillboardSetProps["layout"];
34
52
  }
@@ -1,3 +1,3 @@
1
1
  import { ImageBillboardInterface } from './ImageBillboard.interface';
2
2
 
3
- export declare const ImageBillboard: ({ id, variant, headline, bodyCopy, bordered, bullets, callToActionRow, eyebrow, image, imagePlacement: position, set, textImageLineOneSmall, textImageLineTwoBig, textImageLineThreeSmall, internalName, }: ImageBillboardInterface) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const ImageBillboard: ({ id, bodyCopy, bordered, bullets, callToActionRow, exitIntent, eyebrow, headline, image, video, imagePlacement: position, internalName, set, textImageLineOneSmall, textImageLineThreeSmall, textImageLineTwoBig, variant, }: ImageBillboardInterface) => import("react/jsx-runtime").JSX.Element | null;