@axos-web-dev/shared-components 1.0.100-dev.5 → 1.0.100-dev.50

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 (305) hide show
  1. package/dist/ATMLocator/ATMLocator.js +9 -3
  2. package/dist/Article/Article.css.d.ts +9 -36
  3. package/dist/Article/Article.css.js +10 -8
  4. package/dist/Article/index.js +3 -2
  5. package/dist/ArticlesSet/ArticlesSet.css.d.ts +10 -70
  6. package/dist/ArticlesSet/ArticlesSet.js +3 -3
  7. package/dist/Auth/ErrorAlert.js +8 -2
  8. package/dist/Auth/SignInPassword.js +2 -2
  9. package/dist/Avatar/Avatar.module.js +7 -7
  10. package/dist/AwardsBanner/AwardsBanner.css.js +4 -1
  11. package/dist/AwardsItem/AwardsItem.css.js +1 -2
  12. package/dist/Blockquote/Blockquote.module.js +3 -3
  13. package/dist/BulletItem/BulletItem.js +1 -0
  14. package/dist/Button/Button.css.d.ts +3 -3
  15. package/dist/Button/Button.js +8 -2
  16. package/dist/Calculators/AnnualFeeCalculator/index.js +1 -1
  17. package/dist/Calculators/ApyCalculator/ApyCalculator.css.d.ts +2 -30
  18. package/dist/Calculators/ApyCalculator/index.js +11 -5
  19. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.d.ts +1 -0
  20. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js +3 -1
  21. package/dist/Calculators/AxosOneCalculator/index.d.ts +3 -0
  22. package/dist/Calculators/AxosOneCalculator/index.js +48 -20
  23. package/dist/Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.d.ts +2 -30
  24. package/dist/Calculators/BuyDownCalculator/BuyDownCalculator.css.d.ts +0 -1
  25. package/dist/Calculators/BuyDownCalculator/BuyDownCalculator.css.js +2 -4
  26. package/dist/Calculators/BuyDownCalculator/index.d.ts +4 -1
  27. package/dist/Calculators/BuyDownCalculator/index.js +108 -68
  28. package/dist/Calculators/Calculator.d.ts +3 -0
  29. package/dist/Calculators/Calculator.js +16 -6
  30. package/dist/Calculators/MarineLoanMonthlyPaymentCalculator/index.js +1 -1
  31. package/dist/Calculators/MaxLoanCalculator/index.js +1 -1
  32. package/dist/Calculators/MonthlyPaymentCalculator/index.js +1 -1
  33. package/dist/Calculators/SummitApyCalculator/index.js +15 -6
  34. package/dist/Calculators/calculator.css.d.ts +2 -8
  35. package/dist/CallToActionBar/CallToActionBar.css.d.ts +3 -1
  36. package/dist/CallToActionBar/CallToActionBar.css.js +22 -16
  37. package/dist/CallToActionBar/index.js +4 -3
  38. package/dist/Carousel/Carousel.css.d.ts +8 -19
  39. package/dist/Carousel/index.js +8 -2
  40. package/dist/Chatbot/Bubble.css.d.ts +2 -0
  41. package/dist/Chatbot/Bubble.css.js +7 -0
  42. package/dist/Chatbot/Bubble.d.ts +5 -0
  43. package/dist/Chatbot/Bubble.js +103 -0
  44. package/dist/Chatbot/Chat.d.ts +1 -0
  45. package/dist/Chatbot/Chat.js +165 -0
  46. package/dist/Chatbot/ChatWindow.css.d.ts +19 -0
  47. package/dist/Chatbot/ChatWindow.css.js +41 -0
  48. package/dist/Chatbot/ChatWindow.d.ts +26 -0
  49. package/dist/Chatbot/ChatWindow.js +467 -0
  50. package/dist/Chatbot/Chatbot.css.d.ts +2 -0
  51. package/dist/Chatbot/Chatbot.css.js +7 -0
  52. package/dist/Chatbot/Chatbot.css.ts.vanilla.css.js +1 -0
  53. package/dist/Chatbot/Chatbot.d.ts +10 -0
  54. package/dist/Chatbot/Chatbot.js +257 -0
  55. package/dist/Chatbot/EllipsisAnimation.d.ts +2 -0
  56. package/dist/Chatbot/EllipsisAnimation.js +85 -0
  57. package/dist/Chatbot/EllipsisIcon.d.ts +4 -0
  58. package/dist/Chatbot/EllipsisIcon.js +19 -0
  59. package/dist/Chatbot/authenticate.d.ts +3 -0
  60. package/dist/Chatbot/authenticate.js +16 -0
  61. package/dist/Chatbot/index.d.ts +8 -0
  62. package/dist/Chatbot/index.js +39 -0
  63. package/dist/Chatbot/store/chat.d.ts +10 -0
  64. package/dist/Chatbot/store/chat.js +18 -0
  65. package/dist/Chatbot/store/messages.d.ts +15 -0
  66. package/dist/Chatbot/store/messages.js +13 -0
  67. package/dist/Chatbot/useHeadlessChat.d.ts +27 -0
  68. package/dist/Chatbot/useHeadlessChat.js +240 -0
  69. package/dist/Chevron/Chevron.css.d.ts +2 -2
  70. package/dist/Chevron/index.js +8 -2
  71. package/dist/CollectInformationAlert/index.js +1 -1
  72. package/dist/Comparison/Comparison.js +8 -2
  73. package/dist/Comparison/ComparisonSet.js +33 -24
  74. package/dist/ContentBanner/ContentBanner.css.js +2 -1
  75. package/dist/ExecutiveBio/ExecutiveBio.css.d.ts +153 -0
  76. package/dist/ExecutiveBio/ExecutiveBio.css.js +50 -0
  77. package/dist/ExecutiveBio/ExecutiveBio.d.ts +1 -1
  78. package/dist/ExecutiveBio/ExecutiveBio.interface.d.ts +11 -4
  79. package/dist/ExecutiveBio/ExecutiveBio.js +266 -7
  80. package/dist/ExecutiveBio/Overlay.d.ts +8 -0
  81. package/dist/ExecutiveBio/Overlay.js +589 -0
  82. package/dist/ExecutiveBio/index.js +26 -1
  83. package/dist/FaqAccordion/index.js +8 -2
  84. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +11 -9
  85. package/dist/Forms/ApplicationStart.js +4 -2
  86. package/dist/Forms/ApplyNow.js +9 -3
  87. package/dist/Forms/ClearingForm.js +4 -2
  88. package/dist/Forms/CommercialDeposits.js +4 -2
  89. package/dist/Forms/CommercialDepositsNoLendingOption.d.ts +16 -0
  90. package/dist/Forms/CommercialDepositsNoLendingOption.js +332 -0
  91. package/dist/Forms/CommercialLending.js +4 -2
  92. package/dist/Forms/CommercialPremiumFinance.js +4 -2
  93. package/dist/Forms/ContactCompany.js +4 -2
  94. package/dist/Forms/ContactCompanyTitle.js +4 -2
  95. package/dist/Forms/ContactUs.js +4 -2
  96. package/dist/Forms/ContactUsAAS.js +4 -2
  97. package/dist/Forms/ContactUsBusiness.d.ts +1 -1
  98. package/dist/Forms/ContactUsBusiness.js +16 -8
  99. package/dist/Forms/ContactUsBusinessNameEmail.js +12 -4
  100. package/dist/Forms/ContactUsLVF.js +4 -2
  101. package/dist/Forms/ContactUsNMLSId.js +12 -4
  102. package/dist/Forms/CpraRequest.d.ts +1 -1
  103. package/dist/Forms/CpraRequest.js +5 -2
  104. package/dist/Forms/CraPublicFile.js +12 -4
  105. package/dist/Forms/DealerServices.js +4 -2
  106. package/dist/Forms/EmailOnly.js +94 -66
  107. package/dist/Forms/EmailUs.js +7 -5
  108. package/dist/Forms/FormEnums.js +4 -1
  109. package/dist/Forms/Forms.css.d.ts +8 -31
  110. package/dist/Forms/Forms.css.js +50 -44
  111. package/dist/Forms/HoneyPot/index.js +2 -1
  112. package/dist/Forms/MortgageRate/MortgageRateForm.js +44 -15
  113. package/dist/Forms/MortgageRate/MortgageRateQuoteFilters.js +11 -5
  114. package/dist/Forms/MortgageRate/MortgageRateWatch.js +8 -2
  115. package/dist/Forms/MortgageWarehouseLending.js +12 -4
  116. package/dist/Forms/QuickPricer/QuickPricerForm.js +16 -12
  117. package/dist/Forms/ScheduleCall.js +4 -2
  118. package/dist/Forms/ScheduleCallPremier.js +4 -2
  119. package/dist/Forms/SuccesForm.js +10 -4
  120. package/dist/Forms/VendorQuestionnaire.js +6 -2
  121. package/dist/Forms/index.d.ts +1 -0
  122. package/dist/Forms/index.js +7 -1
  123. package/dist/HeroBanner/HeroBanner.css.d.ts +5 -17
  124. package/dist/HeroBanner/HeroBanner.css.js +2 -1
  125. package/dist/HeroBanner/HeroBanner.js +14 -16
  126. package/dist/HeroBanner/SelectionBanner.css.d.ts +1 -19
  127. package/dist/HeroBanner/SelectionBanner.css.js +6 -6
  128. package/dist/Hyperlink/Hyperlink.css.d.ts +4 -4
  129. package/dist/Hyperlink/Hyperlink.css.js +4 -1
  130. package/dist/Hyperlink/index.js +8 -2
  131. package/dist/IconBillboard/IconBillboard.css.d.ts +6 -40
  132. package/dist/ImageBillboard/ImageBillboard.css.d.ts +5 -61
  133. package/dist/ImageBillboard/ImageBillboard.css.js +2 -1
  134. package/dist/ImageLink/ImageLink.js +9 -3
  135. package/dist/ImageLink/ImageLinkSet.js +8 -2
  136. package/dist/ImageLink/index.js +8 -2
  137. package/dist/Input/Input.css.d.ts +1 -0
  138. package/dist/Input/Input.css.js +10 -8
  139. package/dist/Input/index.js +2 -1
  140. package/dist/Insight/Featured/CategorySelector.js +8 -2
  141. package/dist/Insight/Featured/Featured.js +8 -2
  142. package/dist/Insight/Featured/Header.js +8 -2
  143. package/dist/Insight/Insight.css.d.ts +18 -0
  144. package/dist/Insight/Insight.css.js +44 -8
  145. package/dist/Insight/index.js +19 -1
  146. package/dist/LandingPageHeader/LandingPageHeader.css.d.ts +2 -0
  147. package/dist/LandingPageHeader/LandingPageHeader.css.js +6 -2
  148. package/dist/LandingPageHeader/LandingPageHeader.js +18 -9
  149. package/dist/LandingPageHeader/index.js +3 -1
  150. package/dist/LoadingIndicator/LoadingIndicator.css.d.ts +4 -4
  151. package/dist/LoadingIndicator/index.js +1 -0
  152. package/dist/Modal/Modal.css.d.ts +1 -0
  153. package/dist/Modal/Modal.css.js +5 -3
  154. package/dist/Modal/Modal.js +11 -5
  155. package/dist/Modal/contextApi/store.js +1 -1
  156. package/dist/NavigationMenu/AxosALTS/NavData.js +8 -2
  157. package/dist/NavigationMenu/AxosALTS/index.js +8 -2
  158. package/dist/NavigationMenu/AxosAdvisor/NavBar.css.d.ts +2 -0
  159. package/dist/NavigationMenu/AxosAdvisor/NavBar.css.js +7 -2
  160. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +52 -52
  161. package/dist/NavigationMenu/AxosAdvisor/index.js +40 -22
  162. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.css.d.ts +2 -0
  163. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.css.js +7 -2
  164. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +53 -53
  165. package/dist/NavigationMenu/AxosAdvisorServices/SubNavbar.css.d.ts +1 -1
  166. package/dist/NavigationMenu/AxosAdvisorServices/SubNavbar.css.js +2 -2
  167. package/dist/NavigationMenu/AxosAdvisorServices/index.js +14 -8
  168. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.js +2 -2
  169. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +16 -16
  170. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +5 -8
  171. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +17 -14
  172. package/dist/NavigationMenu/AxosBank/NavBar.css.js +2 -1
  173. package/dist/NavigationMenu/AxosBank/NavBar.module.js +41 -41
  174. package/dist/NavigationMenu/AxosBank/NavData.js +8 -2
  175. package/dist/NavigationMenu/AxosBank/SubNavBar.js +287 -301
  176. package/dist/NavigationMenu/AxosBank/SubNavbar.css.d.ts +2 -0
  177. package/dist/NavigationMenu/AxosBank/SubNavbar.css.js +4 -0
  178. package/dist/NavigationMenu/AxosBank/index.js +8 -2
  179. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +37 -37
  180. package/dist/NavigationMenu/AxosFiduciary/NavBar.module.js +41 -41
  181. package/dist/NavigationMenu/LaVictoire/NavData.js +8 -2
  182. package/dist/NavigationMenu/LaVictoire/index.js +8 -2
  183. package/dist/NavigationMenu/NavDataJson.js +8 -2
  184. package/dist/NavigationMenu/Navbar.js +8 -2
  185. package/dist/NavigationMenu/SignInNavButton.js +8 -2
  186. package/dist/PageNavItem/PageNavItem.css.d.ts +4 -22
  187. package/dist/Pagination/Pagination.js +6 -6
  188. package/dist/SetContainer/SetContainer.js +9 -3
  189. package/dist/SocialMediaBar/iconsRepository.js +8 -2
  190. package/dist/StepItem/StepItem.css.d.ts +8 -36
  191. package/dist/StepItemSet/StepItemSet.css.d.ts +6 -32
  192. package/dist/StepItemSet/StepItemSet.css.js +12 -6
  193. package/dist/StepItemSet/StepItemSet.d.ts +8 -0
  194. package/dist/StepItemSet/StepItemSet.js +38 -14
  195. package/dist/StepItemSet/index.js +4 -2
  196. package/dist/Tab/Tab.js +1 -0
  197. package/dist/Table/Table.css.d.ts +7 -7
  198. package/dist/Table/Table.css.js +5 -5
  199. package/dist/Table/Table.d.ts +1 -1
  200. package/dist/Table/Table.js +1 -1
  201. package/dist/VideoTile/VideoTile.js +8 -2
  202. package/dist/VideoWrapper/index.js +8 -2
  203. package/dist/WalnutIframe/wrapper.module.js +3 -3
  204. package/dist/assets/Accordion/Accordion.css +4 -4
  205. package/dist/assets/Article/Article.css +87 -86
  206. package/dist/assets/ArticlesSet/ArticlesSet.css +26 -56
  207. package/dist/assets/Auth/SignIn.css +12 -12
  208. package/dist/assets/Avatar/Avatar.css.css +59 -59
  209. package/dist/assets/AwardsBanner/AwardsBanner.css +1 -1
  210. package/dist/assets/AwardsItem/AwardsItem.css +3 -4
  211. package/dist/assets/Blockquote/Blockquote.css.css +72 -68
  212. package/dist/assets/Button/Button.css +28 -28
  213. package/dist/assets/Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css +8 -8
  214. package/dist/assets/Calculators/ApyCalculator/ApyCalculator.css +12 -21
  215. package/dist/assets/Calculators/AxosOneCalculator/BalanceAPYCalculator.css +32 -12
  216. package/dist/assets/Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css +22 -34
  217. package/dist/assets/Calculators/BuyDownCalculator/BuyDownCalculator.css +15 -21
  218. package/dist/assets/Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css +9 -9
  219. package/dist/assets/Calculators/MonthlyPaymentLVFCalculator/MonthlyPaymentCalculator.css +10 -10
  220. package/dist/assets/Calculators/SummitApyCalculator/BalanceAPYCalculator.css +18 -10
  221. package/dist/assets/Calculators/calculator.css +9 -15
  222. package/dist/assets/CallToActionBar/CallToActionBar.css +95 -69
  223. package/dist/assets/Carousel/Carousel.css +27 -41
  224. package/dist/assets/Chatbot/Bubble.css +51 -0
  225. package/dist/assets/Chatbot/ChatWindow.css +225 -0
  226. package/dist/assets/Chevron/Chevron.css +11 -10
  227. package/dist/assets/CollectInformationAlert/CollectInformationAlert.css +4 -3
  228. package/dist/assets/Comparison/Comparison.css +8 -5
  229. package/dist/assets/ContentBanner/ContentBanner.css +14 -8
  230. package/dist/assets/DownloadTile/DownloadTile.css +6 -6
  231. package/dist/assets/ExecutiveBio/ExecutiveBio.css +342 -27
  232. package/dist/assets/FaqAccordion/FaqAccordion.css +5 -5
  233. package/dist/assets/FooterDisclosure/FooterDisclosure.css +1 -1
  234. package/dist/assets/FooterSiteMap/AxosBank/FooterSiteMap.css +3 -8
  235. package/dist/assets/Forms/Forms.css +176 -165
  236. package/dist/assets/Forms/QuickPricer/UserInformation.css +1 -1
  237. package/dist/assets/HeroBanner/HeroBanner.css +85 -76
  238. package/dist/assets/HeroBanner/LargeBanner.css +15 -15
  239. package/dist/assets/HeroBanner/SelectionBanner.css +15 -29
  240. package/dist/assets/Hyperlink/Hyperlink.css +4 -4
  241. package/dist/assets/IconBillboard/IconBillboard.css +32 -48
  242. package/dist/assets/ImageBillboard/ImageBillboard.css +59 -64
  243. package/dist/assets/Input/Input.css +54 -47
  244. package/dist/assets/Inputs/Input.css +4 -4
  245. package/dist/assets/Insight/Featured/CategorySelector.css +1 -1
  246. package/dist/assets/Insight/Insight.css +212 -43
  247. package/dist/assets/Interstitial/Interstitial-variants.css +3 -3
  248. package/dist/assets/LandingPageHeader/LandingPageHeader.css +37 -4
  249. package/dist/assets/LoadingIndicator/LoadingIndicator.css +5 -5
  250. package/dist/assets/Modal/Modal.css +17 -28
  251. package/dist/assets/NavigationMenu/AxosALTS/NavBar.css +1 -1
  252. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css +25 -2
  253. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css.css +609 -597
  254. package/dist/assets/NavigationMenu/AxosAdvisor/SubNavbar.css +5 -4
  255. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css +25 -2
  256. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css.css +630 -618
  257. package/dist/assets/NavigationMenu/AxosAdvisorServices/SubNavbar.css +22 -4
  258. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css.css +192 -191
  259. package/dist/assets/NavigationMenu/AxosBank/NavBar.css +21 -9
  260. package/dist/assets/NavigationMenu/AxosBank/NavBar.css.css +445 -473
  261. package/dist/assets/NavigationMenu/AxosBank/SubNavbar.css +35 -1
  262. package/dist/assets/NavigationMenu/AxosClearing/NavBar.css.css +484 -458
  263. package/dist/assets/NavigationMenu/AxosFiduciary/NavBar.css.css +427 -426
  264. package/dist/assets/PageNavItem/PageNavItem.css +16 -33
  265. package/dist/assets/Pagination/Pagination.css +1 -1
  266. package/dist/assets/SetContainer/SetContainer.css +5 -5
  267. package/dist/assets/StepItem/StepItem.css +26 -42
  268. package/dist/assets/StepItemSet/StepItemSet.css +50 -41
  269. package/dist/assets/Tab/Tab.css +12 -12
  270. package/dist/assets/Table/Table.css +90 -97
  271. package/dist/assets/TextBlock/TextBlock.css +1 -1
  272. package/dist/assets/TopicalNavItem/TopicalNavItem.css +3 -3
  273. package/dist/assets/TopicalNavSet/TopicalNavSet.css +1 -1
  274. package/dist/assets/VideoTile/VideoTile.css +1 -1
  275. package/dist/assets/WalnutIframe/wrapper.css.css +48 -49
  276. package/dist/assets/globals.css +11 -8
  277. package/dist/assets/icons/ArrowIcon/ArrowIcon.css +3 -3
  278. package/dist/assets/icons/DownloadIcon/DownloadIcon.css +1 -1
  279. package/dist/assets/icons/FollowIcon/FollowIcon.css +1 -1
  280. package/dist/assets/themes/axos.css +32 -32
  281. package/dist/assets/themes/premier.css +31 -31
  282. package/dist/assets/themes/victorie.css +23 -23
  283. package/dist/icons/CheckCircle.js +1 -1
  284. package/dist/icons/CheckCircleLight.js +1 -1
  285. package/dist/icons/CheckIcon/index.js +1 -1
  286. package/dist/icons/Clock/index.js +6 -6
  287. package/dist/icons/Logos/SPB.d.ts +4 -0
  288. package/dist/icons/Logos/SPB.js +132 -0
  289. package/dist/icons/QuoteIconGrey.js +2 -2
  290. package/dist/icons/index.d.ts +1 -0
  291. package/dist/icons/index.js +2 -0
  292. package/dist/main.d.ts +1 -0
  293. package/dist/main.js +121 -22
  294. package/dist/themes/axos.css.d.ts +12 -12
  295. package/dist/themes/axos.css.js +1 -1
  296. package/dist/utils/allowedAxosDomains.js +2 -1
  297. package/dist/utils/emailValidation.d.ts +1 -0
  298. package/dist/utils/emailValidation.js +31 -0
  299. package/dist/utils/index.d.ts +4 -1
  300. package/dist/utils/index.js +9 -1
  301. package/dist/utils/nmlsValidation.d.ts +1 -0
  302. package/dist/utils/nmlsValidation.js +34 -0
  303. package/dist/utils/useCachedValidators.d.ts +2 -0
  304. package/dist/utils/useCachedValidators.js +22 -0
  305. package/package.json +5 -2
@@ -0,0 +1,26 @@
1
+ import { MessageResponse as BaseMessageResponse, HumanAgent, VirtualAgent } from '@ujet/websdk-headless';
2
+ import { default as React } from 'react';
3
+
4
+ interface MessageResponse extends BaseMessageResponse {
5
+ to_agent?: HumanAgent;
6
+ }
7
+ export interface ChatBubble {
8
+ id: string | number;
9
+ body: string;
10
+ sender?: string;
11
+ timestamp?: string;
12
+ isOwn?: boolean;
13
+ }
14
+ interface ChatWindowProps {
15
+ messages: MessageResponse[];
16
+ status?: string;
17
+ onSend: (msg: string) => void;
18
+ inputDisabled?: boolean;
19
+ onClose?: () => void;
20
+ endChat?: () => void;
21
+ showReconnect?: boolean;
22
+ virtualAgent?: VirtualAgent | null;
23
+ showAvatar?: boolean;
24
+ }
25
+ export declare const ChatWindow: React.FC<ChatWindowProps>;
26
+ export {};
@@ -0,0 +1,467 @@
1
+ "use client";
2
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
3
+ import clsx from "clsx";
4
+ import React, { useRef, useEffect, Fragment as Fragment$1 } from "react";
5
+ import ReactMarkdown from "react-markdown";
6
+ import { useNetworkState, useMount } from "react-use";
7
+ import remarkGfm from "remark-gfm";
8
+ import { windowBarStyle, chat_title, chatbotMenuItem, chatbotMenu, chatFinishDialog, endChatButtonStyle, button_reset, arrowFill, chatNetworkStatus, notificationStyle, messageStyle, inline_button_wrapper, inline_button, messagesContainerStyle, inputStyle, autoResize, sendButtonStyle, windowStyle, windowOpenStyle } from "./ChatWindow.css.js";
9
+ import EllipsisLoader from "./EllipsisAnimation.js";
10
+ import { EllipsisIcon } from "./EllipsisIcon.js";
11
+ import { useOpenChat } from "./store/chat.js";
12
+ const ChatWindow = ({
13
+ messages,
14
+ status = "connected",
15
+ onSend,
16
+ inputDisabled = false,
17
+ onClose,
18
+ endChat = () => {
19
+ console.log("End chat");
20
+ },
21
+ showReconnect = false,
22
+ virtualAgent,
23
+ showAvatar = false
24
+ }) => {
25
+ const [mounted, setMounted] = React.useState(false);
26
+ const [menuOpen, setMenuOpen] = React.useState(false);
27
+ const [showEndChatDialog, setShowEndChatDialog] = React.useState(false);
28
+ const state = useNetworkState();
29
+ const [input, setInput] = React.useState("");
30
+ const messagesEndRef = useRef(null);
31
+ const inputRef = useRef(null);
32
+ const isOpen = useOpenChat((state2) => state2.isOpen);
33
+ useEffect(() => {
34
+ messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
35
+ }, [messages]);
36
+ const handleSend = (e) => {
37
+ e.preventDefault();
38
+ const cleaned = cleanInput(input);
39
+ if (cleaned) {
40
+ onSend(cleaned);
41
+ setInput("");
42
+ }
43
+ };
44
+ useMount(() => {
45
+ setMounted(true);
46
+ });
47
+ const project = process.env.CCAI_PROJECT_ID;
48
+ const isAxos = project === "axos";
49
+ const endUserBg = isAxos ? "#14263d" : "#323339";
50
+ const chatbotBg = isAxos ? "#E9F8FF" : "#EAE8E8";
51
+ const escalationDeflected = messages?.filter(
52
+ (item) => item.type == "noti" && item.event == "escalationDeflected"
53
+ ).length > 0;
54
+ const cleanInput = (text) => text.replace(/[\r\n]+/g, " ").trim();
55
+ const autoResizeTextarea = () => {
56
+ if (inputRef.current) {
57
+ inputRef.current.style.height = "auto";
58
+ inputRef.current.style.maxHeight = "80px";
59
+ inputRef.current.style.height = inputRef.current.scrollHeight + "px";
60
+ inputRef.current.style.overflowY = inputRef.current.scrollHeight > 80 ? "auto" : "hidden";
61
+ }
62
+ };
63
+ useEffect(() => {
64
+ autoResizeTextarea();
65
+ }, [input]);
66
+ return /* @__PURE__ */ jsxs("div", { className: clsx(windowStyle, isOpen && windowOpenStyle), children: [
67
+ /* @__PURE__ */ jsxs("div", { className: windowBarStyle, children: [
68
+ /* @__PURE__ */ jsxs("div", { className: "flex middle", style: { paddingBlock: "6px" }, children: [
69
+ /* @__PURE__ */ jsx(
70
+ "img",
71
+ {
72
+ src: "https://www.axos.com/images/2xmVfQm5l0HWOKjgxQO1Iw/axb-assistant.svg",
73
+ style: { marginRight: 12 },
74
+ height: 18,
75
+ width: 18
76
+ }
77
+ ),
78
+ /* @__PURE__ */ jsx("h2", { className: chat_title, children: "Evo Virtual Assistant" })
79
+ ] }),
80
+ /* @__PURE__ */ jsx(
81
+ "button",
82
+ {
83
+ onClick: () => {
84
+ setMenuOpen(!menuOpen);
85
+ },
86
+ style: {
87
+ border: "none",
88
+ background: "transparent",
89
+ marginLeft: "auto",
90
+ cursor: "pointer",
91
+ padding: 0,
92
+ display: "flex",
93
+ alignContent: "center"
94
+ },
95
+ children: /* @__PURE__ */ jsx(EllipsisIcon, { color: "#fff" })
96
+ }
97
+ ),
98
+ menuOpen && /* @__PURE__ */ jsx("ul", { className: clsx(chatbotMenu), children: /* @__PURE__ */ jsx("li", { className: chatbotMenuItem, children: /* @__PURE__ */ jsx(
99
+ "button",
100
+ {
101
+ type: "button",
102
+ onClick: () => {
103
+ setShowEndChatDialog(true);
104
+ setMenuOpen(false);
105
+ },
106
+ style: { width: "100%" },
107
+ children: "Finish chat"
108
+ }
109
+ ) }) }),
110
+ showEndChatDialog && /* @__PURE__ */ jsxs(Fragment, { children: [
111
+ /* @__PURE__ */ jsx(
112
+ "div",
113
+ {
114
+ style: {
115
+ background: "#00000080",
116
+ position: "fixed",
117
+ top: 0,
118
+ left: 0,
119
+ right: 0,
120
+ bottom: 0,
121
+ zIndex: 999,
122
+ opacity: 0.75
123
+ }
124
+ }
125
+ ),
126
+ /* @__PURE__ */ jsx(
127
+ "dialog",
128
+ {
129
+ open: showEndChatDialog,
130
+ style: {
131
+ padding: "1rem",
132
+ borderRadius: 8,
133
+ background: "#fff",
134
+ color: "#000",
135
+ border: `1px solid ${endUserBg}`,
136
+ outline: "none",
137
+ maxWidth: "90%",
138
+ top: "25%",
139
+ marginInline: "auto",
140
+ zIndex: 1e3
141
+ },
142
+ children: /* @__PURE__ */ jsxs("form", { method: "dialog", className: chatFinishDialog, children: [
143
+ /* @__PURE__ */ jsx("p", { children: "Are you sure you want to end this chat?" }),
144
+ /* @__PURE__ */ jsxs(
145
+ "div",
146
+ {
147
+ style: { display: "flex", gap: "1rem", marginTop: "1rem" },
148
+ children: [
149
+ /* @__PURE__ */ jsx(
150
+ "button",
151
+ {
152
+ className: endChatButtonStyle,
153
+ type: "submit",
154
+ onClick: () => {
155
+ endChat();
156
+ setShowEndChatDialog(false);
157
+ },
158
+ children: "Yes"
159
+ }
160
+ ),
161
+ /* @__PURE__ */ jsx(
162
+ "button",
163
+ {
164
+ className: endChatButtonStyle,
165
+ type: "button",
166
+ onClick: () => {
167
+ setShowEndChatDialog(false);
168
+ },
169
+ children: "No"
170
+ }
171
+ )
172
+ ]
173
+ }
174
+ )
175
+ ] })
176
+ }
177
+ )
178
+ ] }),
179
+ onClose && /* @__PURE__ */ jsx(
180
+ "button",
181
+ {
182
+ onClick: onClose,
183
+ className: button_reset,
184
+ "aria-label": "Close chat",
185
+ title: "Close",
186
+ children: /* @__PURE__ */ jsx(
187
+ "svg",
188
+ {
189
+ xmlns: "http://www.w3.org/2000/svg",
190
+ width: "24",
191
+ height: "24",
192
+ viewBox: "0 0 24 24",
193
+ fill: "none",
194
+ children: /* @__PURE__ */ jsx(
195
+ "path",
196
+ {
197
+ className: arrowFill,
198
+ d: "M2.46875 7.76574L11.9991 17.2961L21.5294 7.76574L20.4687 6.70508L11.9991 15.1749L3.52941 6.70508L2.46875 7.76574Z",
199
+ fill: "#98DDFF"
200
+ }
201
+ )
202
+ }
203
+ )
204
+ }
205
+ )
206
+ ] }),
207
+ mounted && !state.online ? /* @__PURE__ */ jsx("div", { className: clsx(chatNetworkStatus), children: /* @__PURE__ */ jsxs(
208
+ "div",
209
+ {
210
+ style: {
211
+ color: "#d32f2f",
212
+ textAlign: "center",
213
+ padding: "8px 0",
214
+ fontWeight: 500
215
+ },
216
+ children: [
217
+ /* @__PURE__ */ jsx(
218
+ "span",
219
+ {
220
+ role: "img",
221
+ "aria-label": "disconnected",
222
+ style: { marginRight: 6 },
223
+ children: "⚠️"
224
+ }
225
+ ),
226
+ "You are currently disconnected. Please check your connection."
227
+ ]
228
+ }
229
+ ) }) : null,
230
+ /* @__PURE__ */ jsxs("div", { className: clsx(messagesContainerStyle), children: [
231
+ (status === "idle" || messages.length == 0) && /* @__PURE__ */ jsx(
232
+ "div",
233
+ {
234
+ className: clsx(),
235
+ style: {
236
+ textAlign: "left",
237
+ alignSelf: "flex-start",
238
+ background: "#eee",
239
+ color: "#1e3860",
240
+ borderRadius: 16,
241
+ padding: "8px 8px",
242
+ maxWidth: "80%",
243
+ marginBottom: 2
244
+ },
245
+ children: /* @__PURE__ */ jsx(
246
+ "div",
247
+ {
248
+ style: {
249
+ fontSize: 13,
250
+ display: "flex",
251
+ flexDirection: "column",
252
+ gap: 4
253
+ },
254
+ children: /* @__PURE__ */ jsx(EllipsisLoader, {})
255
+ }
256
+ )
257
+ }
258
+ ),
259
+ messages?.map((msg) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
260
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationStarted" && /* @__PURE__ */ jsx("div", { className: notificationStyle, children: "We are connecting you with a human agent..." }, msg.$index),
261
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "memberLeft" && /* @__PURE__ */ jsxs("div", { className: notificationStyle, children: [
262
+ /* @__PURE__ */ jsx("strong", { children: "Virtual Agent" }),
263
+ " just left the conversation."
264
+ ] }, msg.$index),
265
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationAccepted" && /* @__PURE__ */ jsxs("div", { className: notificationStyle, children: [
266
+ "You are now connected with a",
267
+ " ",
268
+ msg.to_agent ? /* @__PURE__ */ jsx("strong", { children: msg?.to_agent?.name }) : "an agent"
269
+ ] }, msg.$index),
270
+ msg.type == "noti" && msg.$userType == "virtual_agent" && msg.event == "escalationDeflected" && /* @__PURE__ */ jsxs(Fragment, { children: [
271
+ /* @__PURE__ */ jsxs(
272
+ "div",
273
+ {
274
+ className: notificationStyle,
275
+ style: { fontSize: 12 },
276
+ children: [
277
+ "Our chat team is available weekdays, 8am-5pm, except federal bank holidays. For immediate assistance you can reach out to us at ",
278
+ /* @__PURE__ */ jsx("a", { href: "tel:1-888-502-2967", children: "1-888-502-2967" }),
279
+ "."
280
+ ]
281
+ },
282
+ msg.$index
283
+ ),
284
+ /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: endChat, children: "End Chat" }) })
285
+ ] }),
286
+ ["text", "markdown_template", "markdown"].includes(msg.type) && /* @__PURE__ */ jsx(
287
+ "div",
288
+ {
289
+ className: messageStyle,
290
+ style: {
291
+ textAlign: msg.$userType == "end_user" ? "right" : "left",
292
+ alignSelf: msg.$userType == "end_user" ? "flex-end" : "flex-start",
293
+ background: msg.$userType == "end_user" ? endUserBg : chatbotBg,
294
+ color: msg.$userType == "end_user" ? "#fff" : "#1F1F1F",
295
+ boxShadow: msg.$userType == "end_user" ? "0 1px 4px #b3e0ff55" : void 0
296
+ },
297
+ children: /* @__PURE__ */ jsxs(
298
+ "div",
299
+ {
300
+ style: {
301
+ fontSize: 13,
302
+ display: "flex",
303
+ flexDirection: "column",
304
+ gap: 4
305
+ },
306
+ children: [
307
+ msg.$userType == "virtual_agent" && /* @__PURE__ */ jsxs(
308
+ "div",
309
+ {
310
+ style: {
311
+ display: "flex",
312
+ alignItems: "center",
313
+ gap: "8px"
314
+ },
315
+ children: [
316
+ showAvatar && /* @__PURE__ */ jsx(
317
+ "img",
318
+ {
319
+ width: 24,
320
+ height: 24,
321
+ src: virtualAgent?.avatar_url,
322
+ alt: "agent avatar"
323
+ }
324
+ ),
325
+ /* @__PURE__ */ jsx("strong", { children: virtualAgent?.name })
326
+ ]
327
+ }
328
+ ),
329
+ msg.$userType != "end_user" ? /* @__PURE__ */ jsx(
330
+ ReactMarkdown,
331
+ {
332
+ remarkPlugins: [[remarkGfm, { singleTilde: false }]],
333
+ components: {
334
+ p: ({ ...props }) => /* @__PURE__ */ jsx(
335
+ "p",
336
+ {
337
+ style: { margin: 0, fontSize: "inherit" },
338
+ title: new Date(msg.$timestamp).toLocaleString(),
339
+ ...props
340
+ }
341
+ )
342
+ },
343
+ children: msg.content
344
+ }
345
+ ) : /* @__PURE__ */ jsx("div", { title: new Date(msg.$timestamp).toLocaleString(), children: msg.content })
346
+ ]
347
+ }
348
+ )
349
+ },
350
+ msg.$index
351
+ ),
352
+ msg.type == "inline_button" && Array.isArray(msg.buttons) && msg.buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: inline_button_wrapper, children: msg.buttons.length !== 0 && Array.isArray(msg.buttons) && msg.buttons.map((button, index) => {
353
+ const lastItem = msg.buttons && msg.buttons?.length - 1;
354
+ return /* @__PURE__ */ jsx(
355
+ "button",
356
+ {
357
+ className: inline_button,
358
+ style: {
359
+ borderRadius: "0px",
360
+ borderTopLeftRadius: [0].includes(index) ? 8 : 0,
361
+ borderTopRightRadius: [0].includes(index) ? 8 : 0,
362
+ borderBottomLeftRadius: [lastItem].includes(index) ? 8 : 0,
363
+ borderBottomRightRadius: [lastItem].includes(index) ? 8 : 0
364
+ },
365
+ onClick: () => {
366
+ onSend(button?.title);
367
+ },
368
+ children: button.title
369
+ },
370
+ index
371
+ );
372
+ }) }),
373
+ msg.event == "chatEnded" && /* @__PURE__ */ jsxs(Fragment, { children: [
374
+ /* @__PURE__ */ jsxs(
375
+ "div",
376
+ {
377
+ title: (/* @__PURE__ */ new Date()).toLocaleString(),
378
+ style: {
379
+ fontSize: 12,
380
+ color: "#888",
381
+ marginBottom: 4,
382
+ textAlign: "center"
383
+ },
384
+ children: [
385
+ "Thank you for chatting!",
386
+ /* @__PURE__ */ jsx("br", {}),
387
+ " This conversation has ended."
388
+ ]
389
+ }
390
+ ),
391
+ /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: endChat, children: "End Chat" }) })
392
+ ] })
393
+ ] }, msg.$index)),
394
+ showReconnect && /* @__PURE__ */ jsx(
395
+ "button",
396
+ {
397
+ style: { margin: "12px auto", display: "block" },
398
+ onClick: () => {
399
+ },
400
+ children: "Reconnect Chat"
401
+ }
402
+ ),
403
+ /* @__PURE__ */ jsx("div", { ref: messagesEndRef })
404
+ ] }),
405
+ /* @__PURE__ */ jsxs(
406
+ "form",
407
+ {
408
+ onSubmit: handleSend,
409
+ style: {
410
+ borderTop: "1px solid #eee",
411
+ display: "flex"
412
+ // gap: 8,
413
+ },
414
+ children: [
415
+ /* @__PURE__ */ jsx(
416
+ "textarea",
417
+ {
418
+ ref: inputRef,
419
+ value: input,
420
+ onChange: (e) => setInput(e.target.value),
421
+ onKeyDown: (e) => {
422
+ if (e.key === "Enter" && !e.shiftKey) {
423
+ e.preventDefault();
424
+ const cleaned = cleanInput(input);
425
+ if (cleaned) {
426
+ onSend(cleaned);
427
+ setInput("");
428
+ }
429
+ }
430
+ },
431
+ placeholder: "Ask something...",
432
+ className: clsx(inputStyle, autoResize),
433
+ autoFocus: true,
434
+ disabled: inputDisabled || status !== "connected" || messages.length == 0 || escalationDeflected,
435
+ rows: 1
436
+ }
437
+ ),
438
+ /* @__PURE__ */ jsx(
439
+ "button",
440
+ {
441
+ className: clsx(sendButtonStyle, input.trim().length > 0 && "active"),
442
+ type: "submit",
443
+ title: "Send message",
444
+ disabled: inputDisabled || status !== "connected" || !input.trim() || messages.length == 0 || escalationDeflected,
445
+ children: /* @__PURE__ */ jsxs(
446
+ "svg",
447
+ {
448
+ xmlns: "http://www.w3.org/2000/svg",
449
+ id: "send-icon",
450
+ width: 24,
451
+ height: 24,
452
+ children: [
453
+ /* @__PURE__ */ jsx("path", { d: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" }),
454
+ /* @__PURE__ */ jsx("path", { d: "M0 0h24v24H0z", fill: "none" })
455
+ ]
456
+ }
457
+ )
458
+ }
459
+ )
460
+ ]
461
+ }
462
+ )
463
+ ] });
464
+ };
465
+ export {
466
+ ChatWindow
467
+ };
@@ -0,0 +1,2 @@
1
+ export declare const chatbotAXB: string;
2
+ export declare const chatbotUFB: string;
@@ -0,0 +1,7 @@
1
+ import "./Chatbot.css.ts.vanilla.css.js";
2
+ var chatbotAXB = "_1hpv6vm0";
3
+ var chatbotUFB = "_1hpv6vm1";
4
+ export {
5
+ chatbotAXB,
6
+ chatbotUFB
7
+ };
@@ -0,0 +1,10 @@
1
+ export type ChatbotProps = {
2
+ project?: "axos" | "ufb";
3
+ debug?: boolean;
4
+ };
5
+ export declare const Chatbot: ({ project, projectEnv, menuOption, debug, }: {
6
+ project?: "axos" | "ufb";
7
+ projectEnv?: "dev" | "qa" | "uat" | "stg" | "prod";
8
+ menuOption?: "Support Virtual Agent" | string;
9
+ debug?: boolean;
10
+ }) => import("react/jsx-runtime").JSX.Element;