@axos-web-dev/shared-components 1.0.99-sectionSpacerRemoved.2 → 1.0.100-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 (236) hide show
  1. package/dist/ATMLocator/ATMLocator.js +7 -1
  2. package/dist/Accordion/Accordion.css.js +1 -1
  3. package/dist/Accordion/Accordion.js +2 -2
  4. package/dist/AlertBanner/AlertBanner.css.js +1 -1
  5. package/dist/AlertBanner/index.js +1 -1
  6. package/dist/Article/Article.css.js +1 -1
  7. package/dist/ArticlesSet/ArticlesSet.css.js +1 -1
  8. package/dist/ArticlesSet/ArticlesSet.js +2 -2
  9. package/dist/Auth/ErrorAlert.css.js +1 -1
  10. package/dist/Auth/ErrorAlert.js +8 -2
  11. package/dist/Auth/Logout.js +1 -1
  12. package/dist/Auth/SignIn.css.js +1 -1
  13. package/dist/Auth/SignInPassword.js +1 -1
  14. package/dist/Avatar/Avatar.module.js +1 -1
  15. package/dist/AwardsBanner/AwardsBanner.css.js +1 -1
  16. package/dist/AwardsItem/AwardsItem.css.js +1 -1
  17. package/dist/Blockquote/Blockquote.module.js +1 -1
  18. package/dist/BulletItem/BulletItem.css.js +1 -1
  19. package/dist/BulletItem/BulletItem.js +1 -1
  20. package/dist/Button/Button.css.js +1 -1
  21. package/dist/Button/Button.js +7 -1
  22. package/dist/Calculators/AnnualFeeCalculator/AnnualFeeCalculator.css.js +1 -1
  23. package/dist/Calculators/ApyCalculator/ApyCalculator.css.js +1 -1
  24. package/dist/Calculators/AxosOneCalculator/BalanceAPYCalculator.css.js +1 -1
  25. package/dist/Calculators/AxosOneCalculator/index.js +2 -2
  26. package/dist/Calculators/BalanceAPYCalculator/BalanceAPYCalculator.css.js +1 -1
  27. package/dist/Calculators/BalanceAPYCalculator/index.js +2 -2
  28. package/dist/Calculators/BuyDownCalculator/BuyDownCalculator.css.js +1 -1
  29. package/dist/Calculators/BuyDownCalculator/index.js +2 -2
  30. package/dist/Calculators/Calculator.js +7 -1
  31. package/dist/Calculators/MarginTradingCalculator/MarginTradingCalculator.css.js +1 -1
  32. package/dist/Calculators/MarginTradingCalculator/index.js +2 -2
  33. package/dist/Calculators/MaxLoanCalculator/index.js +22 -5
  34. package/dist/Calculators/MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js +1 -1
  35. package/dist/Calculators/MonthlyPaymentCalculator/index.js +15 -5
  36. package/dist/Calculators/MonthlyPaymentLVFCalculator/MonthlyPaymentCalculator.css.js +1 -1
  37. package/dist/Calculators/SummitApyCalculator/BalanceAPYCalculator.css.js +1 -1
  38. package/dist/Calculators/SummitApyCalculator/index.js +2 -2
  39. package/dist/Calculators/calculator.css.js +1 -1
  40. package/dist/CallToActionBar/CallToActionBar.css.js +1 -1
  41. package/dist/CallToActionBar/index.js +1 -1
  42. package/dist/Carousel/Carousel.css.js +1 -1
  43. package/dist/Carousel/index.js +8 -2
  44. package/dist/Chatbot/Bubble.css.d.ts +3 -0
  45. package/dist/Chatbot/Bubble.css.js +9 -0
  46. package/dist/Chatbot/Bubble.d.ts +3 -0
  47. package/dist/Chatbot/Bubble.js +34 -0
  48. package/dist/Chatbot/Chat.d.ts +1 -0
  49. package/dist/Chatbot/Chat.js +165 -0
  50. package/dist/Chatbot/ChatWindow.css.d.ts +7 -0
  51. package/dist/Chatbot/ChatWindow.css.js +17 -0
  52. package/dist/Chatbot/ChatWindow.d.ts +23 -0
  53. package/dist/Chatbot/ChatWindow.js +261 -0
  54. package/dist/Chatbot/Chatbot.css.d.ts +1 -0
  55. package/dist/Chatbot/Chatbot.css.js +5 -0
  56. package/dist/Chatbot/Chatbot.css.ts.vanilla.css.js +1 -0
  57. package/dist/Chatbot/Chatbot.d.ts +1 -0
  58. package/dist/Chatbot/Chatbot.js +39 -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 +9 -0
  62. package/dist/Chatbot/index.js +29 -0
  63. package/dist/Chatbot/store/chat.d.ts +9 -0
  64. package/dist/Chatbot/store/chat.js +11 -0
  65. package/dist/Chatbot/store/messages.d.ts +14 -0
  66. package/dist/Chatbot/store/messages.js +12 -0
  67. package/dist/Chatbot/useHeadlessChat.d.ts +22 -0
  68. package/dist/Chatbot/useHeadlessChat.js +157 -0
  69. package/dist/Chevron/Chevron.css.js +1 -1
  70. package/dist/Chevron/index.js +8 -2
  71. package/dist/CollectInformationAlert/CollectInformationAlert.css.js +1 -1
  72. package/dist/CollectInformationAlert/index.js +1 -1
  73. package/dist/Comparison/Comparison.css.js +1 -1
  74. package/dist/Comparison/Comparison.js +8 -2
  75. package/dist/Comparison/ComparisonSet.js +1 -1
  76. package/dist/ContentBanner/ContentBanner.css.js +1 -1
  77. package/dist/DownloadTile/DownloadTile.css.js +1 -1
  78. package/dist/ExecutiveBio/ExecutiveBio.css.js +1 -1
  79. package/dist/ExecutiveBio/ExecutiveBio.js +7 -1
  80. package/dist/FaqAccordion/FaqAccordion.css.js +1 -1
  81. package/dist/FaqAccordion/index.js +8 -2
  82. package/dist/FdicCallout/FdicCallout.module.js +1 -1
  83. package/dist/FooterDisclosure/FooterDisclosure.css.js +1 -1
  84. package/dist/FooterDisclosure/LVF/LaVictorieFooter.css.js +1 -1
  85. package/dist/FooterDisclosure/LVF/LaVictorieFooter.js +2 -2
  86. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.css.js +1 -1
  87. package/dist/FooterSiteMap/AxosBank/FooterSiteMap.js +7 -1
  88. package/dist/Forms/ApplicationStart.js +3 -3
  89. package/dist/Forms/ApplyNow.js +8 -2
  90. package/dist/Forms/ClearingForm.js +3 -3
  91. package/dist/Forms/CommercialDeposits.js +3 -3
  92. package/dist/Forms/CommercialLending.js +3 -3
  93. package/dist/Forms/CommercialPremiumFinance.js +3 -3
  94. package/dist/Forms/ContactCompany.js +3 -3
  95. package/dist/Forms/ContactCompanyTitle.js +3 -3
  96. package/dist/Forms/ContactUs.js +3 -3
  97. package/dist/Forms/ContactUsAAS.js +3 -3
  98. package/dist/Forms/ContactUsBusiness.js +9 -3
  99. package/dist/Forms/ContactUsBusinessNameEmail.js +9 -3
  100. package/dist/Forms/ContactUsLVF.js +3 -3
  101. package/dist/Forms/ContactUsNMLSId.js +9 -3
  102. package/dist/Forms/CpraRequest.js +3 -3
  103. package/dist/Forms/CraPublicFile.js +9 -3
  104. package/dist/Forms/DealerServices.js +3 -3
  105. package/dist/Forms/EmailOnly.js +9 -3
  106. package/dist/Forms/EmailUs.js +3 -3
  107. package/dist/Forms/Forms.css.js +1 -1
  108. package/dist/Forms/HoneyPot/HoneyPot.css.d.ts +1 -1
  109. package/dist/Forms/HoneyPot/HoneyPot.css.js +3 -3
  110. package/dist/Forms/HoneyPot/index.d.ts +10 -11
  111. package/dist/Forms/HoneyPot/index.js +21 -23
  112. package/dist/Forms/MortgageRate/MortgageRateForm.js +19 -12
  113. package/dist/Forms/MortgageRate/MortgageRateQuoteFilters.js +1 -1
  114. package/dist/Forms/MortgageRate/MortgageRateWatch.js +7 -1
  115. package/dist/Forms/MortgageWarehouseLending.js +9 -4
  116. package/dist/Forms/QuickPricer/QuickPricerForm.js +4 -4
  117. package/dist/Forms/QuickPricer/QuickPricerResults.css.js +1 -1
  118. package/dist/Forms/QuickPricer/UserInformation.css.js +1 -1
  119. package/dist/Forms/ScheduleCall.js +3 -3
  120. package/dist/Forms/ScheduleCallPremier.js +3 -3
  121. package/dist/Forms/SuccesForm.js +8 -2
  122. package/dist/Forms/VendorQuestionnaire.js +2 -2
  123. package/dist/Forms/WcplSurvey.js +3 -3
  124. package/dist/HelpArticle/HelpArticle.css.js +1 -1
  125. package/dist/HeroBanner/HeroBanner.css.js +1 -1
  126. package/dist/HeroBanner/HeroBanner.js +44 -3
  127. package/dist/HeroBanner/LargeBanner.css.js +1 -1
  128. package/dist/HeroBanner/SelectionBanner.css.js +1 -1
  129. package/dist/Hyperlink/Hyperlink.css.js +1 -1
  130. package/dist/Hyperlink/index.js +7 -1
  131. package/dist/IconBillboard/IconBillboard.css.js +1 -1
  132. package/dist/IconBillboard/IconBillboard.js +1 -1
  133. package/dist/ImageBillboard/ExitIntentModal/useExitIntentModal.js +6 -1
  134. package/dist/ImageBillboard/ImageBillboard.css.js +1 -1
  135. package/dist/ImageBillboard/ImageBillboard.js +1 -1
  136. package/dist/ImageBillboard/ImageBillboardSet.js +2 -2
  137. package/dist/ImageLink/ImageLink.css.js +1 -1
  138. package/dist/ImageLink/ImageLink.js +7 -1
  139. package/dist/ImageLink/ImageLinkSet.js +7 -1
  140. package/dist/ImageLink/index.js +7 -1
  141. package/dist/Input/Checkbox.css.js +1 -1
  142. package/dist/Input/Dropdown.css.js +1 -1
  143. package/dist/Input/Input.css.js +1 -1
  144. package/dist/Input/RadioButton.css.js +1 -1
  145. package/dist/Inputs/Input.css.js +1 -1
  146. package/dist/Insight/Featured/CategorySelector.css.js +1 -1
  147. package/dist/Insight/Featured/CategorySelector.js +9 -3
  148. package/dist/Insight/Featured/Featured.css.js +1 -1
  149. package/dist/Insight/Featured/Featured.js +8 -2
  150. package/dist/Insight/Featured/Header.css.js +1 -1
  151. package/dist/Insight/Featured/Header.js +8 -2
  152. package/dist/Insight/Insight.css.js +1 -1
  153. package/dist/Interstitial/Interstitial-variants.css.js +1 -1
  154. package/dist/Interstitial/Interstitial.module.js +1 -1
  155. package/dist/LandingPageHeader/LandingPageHeader.css.js +1 -1
  156. package/dist/LandingPageHeader/LandingPageHeader.js +1 -1
  157. package/dist/LoadingIndicator/LoadingIndicator.css.js +1 -1
  158. package/dist/Modal/Modal.css.js +1 -1
  159. package/dist/Modal/Modal.js +7 -1
  160. package/dist/Modal/contextApi/store.js +1 -1
  161. package/dist/NavigationMenu/AxosALTS/NavBar.css.js +1 -1
  162. package/dist/NavigationMenu/AxosALTS/NavBar.module.js +1 -1
  163. package/dist/NavigationMenu/AxosALTS/NavData.js +7 -1
  164. package/dist/NavigationMenu/AxosALTS/index.js +7 -1
  165. package/dist/NavigationMenu/AxosAdvisor/NavBar.css.js +1 -1
  166. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +1 -1
  167. package/dist/NavigationMenu/AxosAdvisor/SubNavbar.css.js +1 -1
  168. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.css.js +1 -1
  169. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +1 -1
  170. package/dist/NavigationMenu/AxosAdvisorServices/SubNavbar.css.js +1 -1
  171. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +1 -1
  172. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +7 -1
  173. package/dist/NavigationMenu/AxosBank/NavBar.css.js +1 -1
  174. package/dist/NavigationMenu/AxosBank/NavBar.module.js +1 -1
  175. package/dist/NavigationMenu/AxosBank/NavData.js +7 -1
  176. package/dist/NavigationMenu/AxosBank/SubNavBar.js +7 -1
  177. package/dist/NavigationMenu/AxosBank/SubNavbar.css.js +1 -1
  178. package/dist/NavigationMenu/AxosBank/index.js +7 -1
  179. package/dist/NavigationMenu/AxosClearing/NavBar.css.js +1 -1
  180. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +1 -1
  181. package/dist/NavigationMenu/AxosFiduciary/NavBar.module.js +1 -1
  182. package/dist/NavigationMenu/LaVictoire/NavBar.css.js +1 -1
  183. package/dist/NavigationMenu/LaVictoire/NavBar.module.js +1 -1
  184. package/dist/NavigationMenu/LaVictoire/NavData.js +7 -1
  185. package/dist/NavigationMenu/LaVictoire/index.js +7 -1
  186. package/dist/NavigationMenu/NavDataJson.js +7 -1
  187. package/dist/NavigationMenu/Navbar.js +7 -1
  188. package/dist/NavigationMenu/SignInNavButton.js +7 -1
  189. package/dist/PageNavItem/PageNavItem.css.js +1 -1
  190. package/dist/PageNavSet/PageNavSet.js +1 -1
  191. package/dist/PageNavSet/PageNavigationSet.css.js +1 -1
  192. package/dist/Pagination/Pagination.css.js +1 -1
  193. package/dist/Pagination/Pagination.js +2 -2
  194. package/dist/SecondaryFooter/SecondaryFooter.css.js +1 -1
  195. package/dist/SecondaryFooter/index.js +1 -1
  196. package/dist/SetContainer/SetContainer.css.js +1 -1
  197. package/dist/SetContainer/SetContainer.js +8 -2
  198. package/dist/SocialMediaBar/SocialMediaBar.css.js +1 -1
  199. package/dist/SocialMediaBar/iconsRepository.js +7 -1
  200. package/dist/StepItem/StepItem.css.js +1 -1
  201. package/dist/StepItemSet/StepItemSet.css.js +1 -1
  202. package/dist/Tab/Tab.css.js +1 -1
  203. package/dist/Table/Table.css.js +1 -1
  204. package/dist/Table/Table.js +2 -2
  205. package/dist/TextBlock/TextBlock.css.js +1 -1
  206. package/dist/TextBlock/TextBlock.js +1 -1
  207. package/dist/Topic/Topic.css.js +1 -1
  208. package/dist/TopicalNavItem/TopicalNavItem.css.js +1 -1
  209. package/dist/TopicalNavSet/TopicalNavSet.css.js +1 -1
  210. package/dist/Typography/Typography.css.js +1 -1
  211. package/dist/VideoTile/VideoTile.css.js +1 -1
  212. package/dist/VideoTile/VideoTile.js +7 -1
  213. package/dist/VideoWrapper/VideoWrapper.css.js +1 -1
  214. package/dist/VideoWrapper/index.js +7 -1
  215. package/dist/WalnutIframe/wrapper.module.js +1 -1
  216. package/dist/assets/AwardsBanner/AwardsBanner.css +3 -0
  217. package/dist/assets/Chatbot/Bubble.css +51 -0
  218. package/dist/assets/Chatbot/ChatWindow.css +68 -0
  219. package/dist/assets/Forms/HoneyPot/HoneyPot.css +4 -0
  220. package/dist/assets/SetContainer/SetContainer.css +0 -3
  221. package/dist/assets/TopicalNavSet/TopicalNavSet.css +0 -3
  222. package/dist/assets/globals.css +0 -11
  223. package/dist/globals.css.js +1 -1
  224. package/dist/icons/ArrowIcon/ArrowIcon.css.js +1 -1
  225. package/dist/icons/CheckIcon/CheckIcon.css.js +1 -1
  226. package/dist/icons/DownloadIcon/DownloadIcon.css.js +1 -1
  227. package/dist/icons/FollowIcon/FollowIcon.css.js +1 -1
  228. package/dist/icons/Star/Star.css.js +1 -1
  229. package/dist/index.css.js +1 -1
  230. package/dist/main.d.ts +1 -0
  231. package/dist/main.js +26 -0
  232. package/dist/themes/axos.css.js +1 -1
  233. package/dist/themes/premier.css.js +1 -1
  234. package/dist/themes/victorie.css.js +1 -1
  235. package/dist/utils/optimizeImage/optimizeImage.module.js +1 -1
  236. package/package.json +5 -2
@@ -0,0 +1,9 @@
1
+ /* empty css */
2
+ var bubbleWrapper = "_7u9pv30";
3
+ var bubbleCircle = "_7u9pv31";
4
+ var closeIcon = "_7u9pv32";
5
+ export {
6
+ bubbleCircle,
7
+ bubbleWrapper,
8
+ closeIcon
9
+ };
@@ -0,0 +1,3 @@
1
+ import { PropsWithChildren } from 'react';
2
+
3
+ export declare const Bubble: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import clsx from "clsx";
4
+ import { bubbleWrapper, bubbleCircle, closeIcon } from "./Bubble.css.js";
5
+ import { useOpenChat } from "./store/chat.js";
6
+ const Bubble = ({ children }) => {
7
+ const isOpen = useOpenChat((state) => state.isOpen);
8
+ const toggle = useOpenChat((state) => state.toggle);
9
+ return /* @__PURE__ */ jsxs("div", { className: clsx(bubbleWrapper), children: [
10
+ /* @__PURE__ */ jsx("div", { className: clsx("bubble-circle", bubbleCircle), onClick: toggle, children: !isOpen ? /* @__PURE__ */ jsx(
11
+ "img",
12
+ {
13
+ alt: "Evo, Virtual Financial Assistant",
14
+ src: "data:image/png;base64,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"
15
+ }
16
+ ) : /* @__PURE__ */ jsx("span", { className: clsx("close-icon", closeIcon), children: /* @__PURE__ */ jsxs(
17
+ "svg",
18
+ {
19
+ xmlns: "http://www.w3.org/2000/svg",
20
+ width: "24",
21
+ height: "24",
22
+ viewBox: "0 0 24 24",
23
+ children: [
24
+ /* @__PURE__ */ jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }),
25
+ /* @__PURE__ */ jsx("path", { d: "M0 0h24v24H0z", fill: "none" })
26
+ ]
27
+ }
28
+ ) }) }),
29
+ children
30
+ ] });
31
+ };
32
+ export {
33
+ Bubble
34
+ };
@@ -0,0 +1 @@
1
+ export default function Chat(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,165 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { useRef, useEffect } from "react";
4
+ import { authenticate } from "./authenticate.js";
5
+ import { useMessages } from "./store/messages.js";
6
+ const companyId = process.env.CCAI_COMPANY_ID || "";
7
+ const tenant = process.env.CCAI_TENANT_NAME || "";
8
+ const host = process.env.CCAI_HOST || "";
9
+ const COBROWSE_CONSENT_TEMPLATE = `
10
+ <script class="cobrowse-template" type="text/template">
11
+ <div class="cobrowse">
12
+ <div class="cobrowse-title">$title</div>
13
+ <div class="cobrowse-content">$content</div>
14
+ <div class="cobrowse-footer">
15
+ <button class="cobrowse-deny js-cobrowse-deny">$deny</button>
16
+ <button class="cobrowse-allow js-cobrowse-allow">$allow</button>
17
+ </div>
18
+ </div>
19
+ <\/script>
20
+ `;
21
+ function Chat() {
22
+ const clientRef = useRef(null);
23
+ const hasLoadedBefore = useRef(true);
24
+ const addMessages = useMessages((state) => state.addMessages);
25
+ const addMessage = useMessages((state) => state.addMessage);
26
+ const chatRef = useRef(null);
27
+ const isMounted = useRef(true);
28
+ useEffect(() => {
29
+ let messageHandler;
30
+ let identityHandler;
31
+ let chatUpdatedHandler;
32
+ let memberJoinedHandler;
33
+ let chatConnectedHandler;
34
+ async function initChat() {
35
+ const { Client, consoleLoggerHandler, Logger } = await import("@ujet/websdk-headless");
36
+ console.log("this", isMounted);
37
+ Logger.addHandler(consoleLoggerHandler);
38
+ clientRef.current = new Client({
39
+ companyId,
40
+ tenant,
41
+ cobrowse: {
42
+ enabled: true,
43
+ template: COBROWSE_CONSENT_TEMPLATE,
44
+ messages: {
45
+ confirmSessionTitle: "...",
46
+ confirmSessionContent: "...",
47
+ endSessionText: "...",
48
+ confirmRemoteControlTitle: "...",
49
+ confirmRemoteControlContent: "...",
50
+ confirmFullDeviceTitle: "...",
51
+ confirmFullDeviceContent: "...",
52
+ allowText: "...",
53
+ denyText: "..."
54
+ }
55
+ },
56
+ host,
57
+ authenticate
58
+ });
59
+ const menus = await clientRef.current?.getMenus();
60
+ try {
61
+ chatRef.current = await clientRef.current?.loadOngoingChat();
62
+ console.log("chat:", chatRef.current);
63
+ if (!chatRef.current) {
64
+ chatRef.current = await clientRef.current?.createChat(
65
+ menus?.menus[5].id
66
+ );
67
+ }
68
+ } catch (error) {
69
+ console.error("Error creating chat:", error);
70
+ chatRef.current = await clientRef.current?.createChat(
71
+ menus?.menus[5].id
72
+ );
73
+ }
74
+ console.log("this");
75
+ identityHandler = (identity) => {
76
+ if (!isMounted.current) return;
77
+ console.log("identity:", identity);
78
+ };
79
+ messageHandler = (msg) => {
80
+ console.log("new message:", msg);
81
+ console.log("addMessage:", msg);
82
+ addMessage(msg);
83
+ };
84
+ chatUpdatedHandler = (chat) => {
85
+ console.log("chat updated:", chat);
86
+ };
87
+ chatConnectedHandler = async () => {
88
+ console.log("connected");
89
+ const messagesFetched = await clientRef.current?.fetchMessages();
90
+ console.log("[messages]:", messagesFetched);
91
+ addMessages(messagesFetched || []);
92
+ };
93
+ memberJoinedHandler = (identity) => {
94
+ console.log("member joined:", identity);
95
+ };
96
+ console.log(isMounted.current);
97
+ clientRef.current?.on("authenticated", () => {
98
+ console.log("authenticated");
99
+ });
100
+ clientRef.current?.on("chat.ongoing", (chat) => {
101
+ if (!isMounted.current) return;
102
+ console.log("chat:", chat);
103
+ });
104
+ clientRef.current?.on("chat.connected", chatConnectedHandler);
105
+ clientRef.current?.on("chat.updated", chatUpdatedHandler);
106
+ clientRef.current?.on("chat.identity", identityHandler);
107
+ clientRef.current?.on("chat.message", messageHandler);
108
+ clientRef.current?.on("cobrowse.request", ({ from }) => {
109
+ console.log("request by", from);
110
+ });
111
+ clientRef.current?.on("chat.memberJoined", memberJoinedHandler);
112
+ }
113
+ if (hasLoadedBefore.current) {
114
+ console.log("Initial setup");
115
+ initChat();
116
+ hasLoadedBefore.current = false;
117
+ }
118
+ return () => {
119
+ isMounted.current = false;
120
+ console.log("Component unmounted. Cancelling pending async operations.");
121
+ if (clientRef.current) {
122
+ if (messageHandler)
123
+ clientRef.current.off("chat.message", messageHandler);
124
+ if (identityHandler)
125
+ clientRef.current.off("chat.identity", identityHandler);
126
+ clientRef.current.off("chat.connected", chatConnectedHandler);
127
+ clientRef.current.off("chat.updated", chatUpdatedHandler);
128
+ clientRef.current.off("chat.memberJoined", memberJoinedHandler);
129
+ if (typeof clientRef.current.destroyChat === "function") {
130
+ console.log("Destroying chat:", chatRef.current);
131
+ clientRef.current.destroyChat();
132
+ }
133
+ }
134
+ };
135
+ }, [addMessage, addMessages]);
136
+ return /* @__PURE__ */ jsxs("div", { children: [
137
+ /* @__PURE__ */ jsx("h2", { children: "Chat" }),
138
+ /* @__PURE__ */ jsxs(
139
+ "form",
140
+ {
141
+ style: { marginTop: "1rem", display: "flex", gap: "0.5rem" },
142
+ onSubmit: async (e) => {
143
+ e.preventDefault();
144
+ const form = e.target;
145
+ const input = form.elements[0];
146
+ const message = input.value;
147
+ console.log("Sending message:", message);
148
+ try {
149
+ await clientRef.current?.sendTextMessage(message);
150
+ input.value = "";
151
+ } catch (error) {
152
+ console.error("Error sending message:", error);
153
+ }
154
+ },
155
+ children: [
156
+ /* @__PURE__ */ jsx("input", { type: "text", name: "message", placeholder: "Type a message..." }),
157
+ /* @__PURE__ */ jsx("button", { type: "submit", children: "Send" })
158
+ ]
159
+ }
160
+ )
161
+ ] });
162
+ }
163
+ export {
164
+ Chat as default
165
+ };
@@ -0,0 +1,7 @@
1
+ export declare const windowStyle: string;
2
+ export declare const windowOpenStyle: string;
3
+ export declare const windowBarStyle: string;
4
+ export declare const inputStyle: string;
5
+ export declare const sendButtonStyle: string;
6
+ export declare const messagesContainerStyle: string;
7
+ export declare const messageStyle: string;
@@ -0,0 +1,17 @@
1
+ /* empty css */
2
+ var windowStyle = "_13n1jqk0";
3
+ var windowOpenStyle = "_13n1jqk1";
4
+ var windowBarStyle = "_13n1jqk2";
5
+ var inputStyle = "_13n1jqk3";
6
+ var sendButtonStyle = "_13n1jqk4";
7
+ var messagesContainerStyle = "_13n1jqk5";
8
+ var messageStyle = "_13n1jqk6";
9
+ export {
10
+ inputStyle,
11
+ messageStyle,
12
+ messagesContainerStyle,
13
+ sendButtonStyle,
14
+ windowBarStyle,
15
+ windowOpenStyle,
16
+ windowStyle
17
+ };
@@ -0,0 +1,23 @@
1
+ import { MessageResponse as BaseMessageResponse, HumanAgent } 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
+ }
22
+ export declare const ChatWindow: React.FC<ChatWindowProps>;
23
+ export {};
@@ -0,0 +1,261 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import clsx from "clsx";
4
+ import React, { useRef, useEffect, Fragment } from "react";
5
+ import ReactMarkdown from "react-markdown";
6
+ import remarkGfm from "remark-gfm";
7
+ import { windowStyle, windowOpenStyle, windowBarStyle, messagesContainerStyle, inputStyle, sendButtonStyle } from "./ChatWindow.css.js";
8
+ import { useOpenChat } from "./store/chat.js";
9
+ const ChatWindow = ({
10
+ messages,
11
+ status = "connected",
12
+ onSend,
13
+ inputDisabled = false,
14
+ onClose,
15
+ endChat = () => {
16
+ console.log("End chat");
17
+ }
18
+ }) => {
19
+ const [input, setInput] = React.useState("");
20
+ const messagesEndRef = useRef(null);
21
+ const isOpen = useOpenChat((state) => state.isOpen);
22
+ useEffect(() => {
23
+ messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
24
+ }, [messages]);
25
+ const handleSend = (e) => {
26
+ e.preventDefault();
27
+ if (input.trim()) {
28
+ onSend(input);
29
+ setInput("");
30
+ }
31
+ };
32
+ return /* @__PURE__ */ jsxs("div", { className: clsx(windowStyle, isOpen && windowOpenStyle), children: [
33
+ /* @__PURE__ */ jsxs("div", { className: clsx(windowBarStyle), children: [
34
+ /* @__PURE__ */ jsx("b", { children: "Chat" }),
35
+ onClose && /* @__PURE__ */ jsx(
36
+ "button",
37
+ {
38
+ onClick: onClose,
39
+ style: {
40
+ marginLeft: 8,
41
+ background: "transparent",
42
+ border: "none",
43
+ fontSize: 18,
44
+ cursor: "pointer",
45
+ color: "#fff",
46
+ padding: 0,
47
+ lineHeight: 1
48
+ },
49
+ "aria-label": "Close chat",
50
+ title: "Close",
51
+ children: /* @__PURE__ */ jsx(
52
+ "svg",
53
+ {
54
+ xmlns: "http://www.w3.org/2000/svg",
55
+ height: "24px",
56
+ viewBox: "0 -960 960 960",
57
+ width: "24px",
58
+ fill: "#faa74a",
59
+ children: /* @__PURE__ */ jsx("path", { d: "M360-200v-80h264L160-744l56-56 464 464v-264h80v400H360Z" })
60
+ }
61
+ )
62
+ }
63
+ )
64
+ ] }),
65
+ /* @__PURE__ */ jsxs("div", { className: clsx(messagesContainerStyle), children: [
66
+ messages?.map((msg) => /* @__PURE__ */ jsxs(Fragment, { children: [
67
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationStarted" && /* @__PURE__ */ jsx(
68
+ "div",
69
+ {
70
+ style: {
71
+ fontSize: 10,
72
+ color: "#888",
73
+ marginBottom: 4,
74
+ textAlign: "center"
75
+ },
76
+ children: "We are connecting you with a human agent..."
77
+ },
78
+ msg.$index
79
+ ),
80
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "memberLeft" && /* @__PURE__ */ jsxs(
81
+ "div",
82
+ {
83
+ style: {
84
+ fontSize: 10,
85
+ color: "#888",
86
+ marginBottom: 4,
87
+ textAlign: "center"
88
+ },
89
+ children: [
90
+ /* @__PURE__ */ jsx("strong", { children: "Virtual Agent" }),
91
+ " just left the conversation."
92
+ ]
93
+ },
94
+ msg.$index
95
+ ),
96
+ msg.type == "noti" && msg.$userType == "system" && msg.event == "escalationAccepted" && /* @__PURE__ */ jsxs(
97
+ "div",
98
+ {
99
+ style: {
100
+ fontSize: 10,
101
+ color: "#888",
102
+ marginBottom: 4,
103
+ textAlign: "center"
104
+ },
105
+ children: [
106
+ "You are now connected with a",
107
+ " ",
108
+ msg.to_agent ? /* @__PURE__ */ jsx("strong", { children: msg?.to_agent?.name }) : "an agent"
109
+ ]
110
+ },
111
+ msg.$index
112
+ ),
113
+ ["text", "markdown_template", "markdown"].includes(msg.type) && /* @__PURE__ */ jsxs(
114
+ "div",
115
+ {
116
+ className: clsx(),
117
+ style: {
118
+ textAlign: msg.$userType == "end_user" ? "right" : "left",
119
+ alignSelf: msg.$userType == "end_user" ? "flex-end" : "flex-start",
120
+ background: msg.$userType == "end_user" ? "#1e3860" : "#eee",
121
+ color: msg.$userType == "end_user" ? "#fff" : "#1e3860",
122
+ borderRadius: 16,
123
+ padding: "8px 8px",
124
+ maxWidth: "80%",
125
+ boxShadow: msg.$userType == "end_user" ? "0 1px 4px #b3e0ff55" : void 0,
126
+ marginBottom: 2
127
+ },
128
+ children: [
129
+ /* @__PURE__ */ jsx(
130
+ "div",
131
+ {
132
+ style: {
133
+ fontSize: 13,
134
+ display: "flex",
135
+ flexDirection: "column",
136
+ gap: 4
137
+ },
138
+ children: /* @__PURE__ */ jsx(
139
+ ReactMarkdown,
140
+ {
141
+ remarkPlugins: [[remarkGfm, { singleTilde: false }]],
142
+ components: {
143
+ p: ({ ...props }) => /* @__PURE__ */ jsx("p", { style: { margin: 0 }, ...props })
144
+ },
145
+ children: msg.content
146
+ }
147
+ )
148
+ }
149
+ ),
150
+ /* @__PURE__ */ jsx("div", { style: { fontSize: 10, color: "#888", marginTop: 2 } })
151
+ ]
152
+ },
153
+ msg.$index
154
+ ),
155
+ msg.type == "inline_button" && Array.isArray(msg.buttons) && msg.buttons.length > 0 && /* @__PURE__ */ jsx(
156
+ "div",
157
+ {
158
+ style: {
159
+ display: "flex",
160
+ flexDirection: "column",
161
+ // gap: 4,
162
+ marginTop: 4,
163
+ marginBottom: 8,
164
+ border: "1px solid #ddd",
165
+ borderRadius: "12px",
166
+ boxShadow: "0 1px 4px #b3e0ff55"
167
+ },
168
+ children: msg.buttons.length !== 0 && Array.isArray(msg.buttons) && msg.buttons.map((button, index) => {
169
+ const lastItem = msg.buttons && msg.buttons?.length - 1;
170
+ return /* @__PURE__ */ jsx(
171
+ "button",
172
+ {
173
+ style: {
174
+ fontSize: 12,
175
+ textAlign: "left",
176
+ background: "#fff",
177
+ color: "#1e3860",
178
+ borderRadius: "0px",
179
+ borderTopLeftRadius: [0].includes(index) ? 8 : 0,
180
+ borderTopRightRadius: [0].includes(index) ? 8 : 0,
181
+ borderBottomLeftRadius: [lastItem].includes(index) ? 8 : 0,
182
+ borderBottomRightRadius: [lastItem].includes(index) ? 8 : 0
183
+ },
184
+ onClick: () => {
185
+ onSend(button?.title);
186
+ },
187
+ children: button.title
188
+ },
189
+ index
190
+ );
191
+ })
192
+ }
193
+ ),
194
+ msg.event == "chatEnded" && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
195
+ "button",
196
+ {
197
+ style: {
198
+ fontSize: 12,
199
+ textAlign: "center"
200
+ },
201
+ onClick: endChat,
202
+ children: "End Chat"
203
+ }
204
+ ) })
205
+ ] }, msg.$index)),
206
+ /* @__PURE__ */ jsx("div", { ref: messagesEndRef })
207
+ ] }),
208
+ /* @__PURE__ */ jsxs(
209
+ "form",
210
+ {
211
+ onSubmit: handleSend,
212
+ style: {
213
+ display: "flex",
214
+ gap: 8,
215
+ padding: "1rem",
216
+ borderTop: "1px solid #eee",
217
+ background: "#fafbfc",
218
+ borderBottomLeftRadius: 16,
219
+ borderBottomRightRadius: 16
220
+ },
221
+ children: [
222
+ /* @__PURE__ */ jsx(
223
+ "input",
224
+ {
225
+ type: "text",
226
+ value: input,
227
+ onChange: (e) => setInput(e.target.value),
228
+ placeholder: "Ask something.. .",
229
+ className: clsx(inputStyle),
230
+ disabled: inputDisabled || status !== "connected"
231
+ }
232
+ ),
233
+ /* @__PURE__ */ jsx(
234
+ "button",
235
+ {
236
+ className: clsx(sendButtonStyle, input.trim().length > 0 && "active"),
237
+ type: "submit",
238
+ disabled: inputDisabled || status !== "connected" || !input.trim(),
239
+ children: /* @__PURE__ */ jsxs(
240
+ "svg",
241
+ {
242
+ xmlns: "http://www.w3.org/2000/svg",
243
+ id: "send-icon",
244
+ width: 24,
245
+ height: 24,
246
+ children: [
247
+ /* @__PURE__ */ jsx("path", { d: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" }),
248
+ /* @__PURE__ */ jsx("path", { d: "M0 0h24v24H0z", fill: "none" })
249
+ ]
250
+ }
251
+ )
252
+ }
253
+ )
254
+ ]
255
+ }
256
+ )
257
+ ] });
258
+ };
259
+ export {
260
+ ChatWindow
261
+ };
@@ -0,0 +1 @@
1
+ export declare const chatbotWrapper: string;
@@ -0,0 +1,5 @@
1
+ import "./Chatbot.css.ts.vanilla.css.js";
2
+ var chatbotWrapper = "_1hpv6vm0";
3
+ export {
4
+ chatbotWrapper
5
+ };
@@ -0,0 +1 @@
1
+ export declare const Chatbot: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
+ import { authenticate } from "./authenticate.js";
4
+ import { Bubble } from "./Bubble.js";
5
+ import { ChatWindow } from "./ChatWindow.js";
6
+ import { useOpenChat } from "./store/chat.js";
7
+ import { useMessages } from "./store/messages.js";
8
+ import { useHeadlessChat } from "./useHeadlessChat.js";
9
+ const Chatbot = () => {
10
+ const messages = useMessages((state) => state.messages);
11
+ const close = useOpenChat((state) => state.close);
12
+ const { status, sendMessage } = useHeadlessChat({
13
+ companyId: process.env.CCAI_COMPANY_ID || "",
14
+ tenant: process.env.CCAI_TENANT_NAME || "",
15
+ host: process.env.CCAI_HOST || "",
16
+ // or your region
17
+ projectId: process.env.CCAI_PROJECT_ID || "axos",
18
+ // replace with your project id
19
+ getToken: authenticate,
20
+ debug: process.env.NODE_ENV === "development"
21
+ });
22
+ return /* @__PURE__ */ jsxs("div", { children: [
23
+ /* @__PURE__ */ jsx(Bubble, {}),
24
+ /* @__PURE__ */ jsx(
25
+ ChatWindow,
26
+ {
27
+ status,
28
+ onClose: close,
29
+ messages,
30
+ onSend: function(msg) {
31
+ sendMessage(msg);
32
+ }
33
+ }
34
+ )
35
+ ] });
36
+ };
37
+ export {
38
+ Chatbot
39
+ };
@@ -0,0 +1,3 @@
1
+ export declare const authenticate: () => Promise<{
2
+ token: any;
3
+ }>;
@@ -0,0 +1,16 @@
1
+ const AUTH_URL = process.env.AUTH_CHAT_URL || "http://localhost:3000/api/auth/token";
2
+ const authenticate = async () => {
3
+ const res = await fetch(AUTH_URL, {
4
+ method: "GET",
5
+ headers: {
6
+ "Content-Type": "application/json"
7
+ }
8
+ });
9
+ const data = await res.json();
10
+ return {
11
+ token: data.token
12
+ };
13
+ };
14
+ export {
15
+ authenticate
16
+ };
@@ -0,0 +1,9 @@
1
+ export * from './Bubble';
2
+ export * from './Bubble.css';
3
+ export * from './Chatbot';
4
+ export * from './Chatbot.css';
5
+ export * from './ChatWindow';
6
+ export * from './ChatWindow.css';
7
+ export * from './store/chat';
8
+ export * from './store/messages';
9
+ export * from './useHeadlessChat';
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import { Bubble } from "./Bubble.js";
3
+ import { bubbleCircle, bubbleWrapper, closeIcon } from "./Bubble.css.js";
4
+ import { Chatbot } from "./Chatbot.js";
5
+ import { chatbotWrapper } from "./Chatbot.css.js";
6
+ import { ChatWindow } from "./ChatWindow.js";
7
+ import { inputStyle, messageStyle, messagesContainerStyle, sendButtonStyle, windowBarStyle, windowOpenStyle, windowStyle } from "./ChatWindow.css.js";
8
+ import { useOpenChat } from "./store/chat.js";
9
+ import { useMessages } from "./store/messages.js";
10
+ import { useHeadlessChat } from "./useHeadlessChat.js";
11
+ export {
12
+ Bubble,
13
+ ChatWindow,
14
+ Chatbot,
15
+ bubbleCircle,
16
+ bubbleWrapper,
17
+ chatbotWrapper,
18
+ closeIcon,
19
+ inputStyle,
20
+ messageStyle,
21
+ messagesContainerStyle,
22
+ sendButtonStyle,
23
+ useHeadlessChat,
24
+ useMessages,
25
+ useOpenChat,
26
+ windowBarStyle,
27
+ windowOpenStyle,
28
+ windowStyle
29
+ };
@@ -0,0 +1,9 @@
1
+ interface OpenChatState {
2
+ isOpen: boolean;
3
+ toggle: () => void;
4
+ open: () => void;
5
+ close: () => void;
6
+ reset: () => void;
7
+ }
8
+ export declare const useOpenChat: import('zustand').UseBoundStore<import('zustand').StoreApi<OpenChatState>>;
9
+ export {};