@axos-web-dev/shared-components 1.0.100-dev.75 → 1.0.100-dev.77

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 (77) hide show
  1. package/README.md +111 -111
  2. package/dist/Accordion/Accordion.js +3 -3
  3. package/dist/AlertBanner/index.js +1 -1
  4. package/dist/Article/Article.js +1 -1
  5. package/dist/Avatar/Avatar.module.js +7 -7
  6. package/dist/Blockquote/Blockquote.module.js +3 -3
  7. package/dist/Calculators/AnnualFeeCalculator/index.js +1 -1
  8. package/dist/Calculators/ApyCalculator/index.js +1 -1
  9. package/dist/Calculators/BuyDownCalculator/index.js +1 -1
  10. package/dist/Calculators/MarginTradingCalculator/index.js +1 -1
  11. package/dist/Calculators/MarineLoanMonthlyPaymentCalculator/index.js +1 -1
  12. package/dist/Calculators/MaxLoanCalculator/index.js +1 -1
  13. package/dist/Calculators/MonthlyPaymentCalculator/index.js +1 -1
  14. package/dist/Calculators/MonthlyPaymentLVFCalculator/index.js +1 -1
  15. package/dist/Carousel/index.js +1 -1
  16. package/dist/Chatbot/ChatWindow.js +5 -9
  17. package/dist/Chatbot/Chatbot.js +19 -11
  18. package/dist/Chatbot/ChatbotMessage.js +37 -20
  19. package/dist/ContentBanner/index.js +1 -1
  20. package/dist/ExecutiveBio/ExecutiveBio.js +1 -1
  21. package/dist/ExecutiveBio/ExecutiveBioSet.js +1 -1
  22. package/dist/FaqAccordion/index.js +1 -1
  23. package/dist/FdicCallout/FdicCallout.module.js +2 -2
  24. package/dist/FooterDisclosure/FooterDisclosure.js +1 -1
  25. package/dist/Forms/ConstructionLendingDynamic.js +27 -1
  26. package/dist/Forms/FormEnums.js +1 -3
  27. package/dist/Forms/MortgageRate/MortgageRateForm.js +1 -1
  28. package/dist/HeroBanner/HeroBanner.js +2 -2
  29. package/dist/Hyperlink/index.js +3 -2
  30. package/dist/IconBillboard/IconBillboardSet.js +1 -1
  31. package/dist/ImageBillboard/ImageBillboard.js +1 -1
  32. package/dist/Input/Checkbox.js +2 -2
  33. package/dist/Input/DownPaymentInput.js +1 -1
  34. package/dist/Input/Dropdown.js +1 -1
  35. package/dist/Input/Input.js +1 -1
  36. package/dist/Input/InputTextArea.js +1 -1
  37. package/dist/Insight/Featured/Featured.js +2 -2
  38. package/dist/Interstitial/Interstitial.module.js +10 -10
  39. package/dist/LandingPageHeader/LandingPageHeader.js +1 -1
  40. package/dist/Modal/contextApi/store.js +1 -1
  41. package/dist/NavigationMenu/AxosALTS/NavBar.module.js +23 -23
  42. package/dist/NavigationMenu/AxosAdvisor/NavBar.module.js +52 -52
  43. package/dist/NavigationMenu/AxosAdvisorServices/NavBar.module.js +53 -53
  44. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileMenu.module.js +27 -27
  45. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.d.ts +1 -0
  46. package/dist/NavigationMenu/AxosBank/MobileMenu/MobileNavData.js +3 -0
  47. package/dist/NavigationMenu/AxosBank/NavBar.module.js +39 -39
  48. package/dist/NavigationMenu/AxosBank/SubNavBar.js +9 -0
  49. package/dist/NavigationMenu/AxosClearing/NavBar.module.js +37 -37
  50. package/dist/NavigationMenu/AxosFiduciary/NavBar.module.js +41 -41
  51. package/dist/NavigationMenu/LaVictoire/NavBar.module.js +37 -37
  52. package/dist/PageNavItem/PageNavItem.js +1 -1
  53. package/dist/SetContainer/SetContainer.js +1 -1
  54. package/dist/StepItem/StepItem.js +1 -1
  55. package/dist/StepItemSet/StepItemSet.js +1 -1
  56. package/dist/Table/Table.js +1 -1
  57. package/dist/Topic/Topic.js +1 -1
  58. package/dist/WalnutIframe/wrapper.module.js +3 -3
  59. package/dist/assets/Avatar/Avatar.css.css +59 -59
  60. package/dist/assets/Blockquote/Blockquote.css.css +72 -72
  61. package/dist/assets/Chatbot/ChatWindow.css +7 -4
  62. package/dist/assets/FdicCallout/FdicCallout.css.css +48 -48
  63. package/dist/assets/Interstitial/Interstitial.css.css +142 -142
  64. package/dist/assets/NavigationMenu/AxosALTS/NavBar.css.css +264 -264
  65. package/dist/assets/NavigationMenu/AxosAdvisor/NavBar.css.css +609 -609
  66. package/dist/assets/NavigationMenu/AxosAdvisorServices/NavBar.css.css +630 -630
  67. package/dist/assets/NavigationMenu/AxosBank/MobileMenu/MobileMenu.css.css +353 -353
  68. package/dist/assets/NavigationMenu/AxosBank/NavBar.css.css +445 -445
  69. package/dist/assets/NavigationMenu/AxosClearing/NavBar.css.css +484 -484
  70. package/dist/assets/NavigationMenu/AxosFiduciary/NavBar.css.css +427 -427
  71. package/dist/assets/NavigationMenu/LaVictoire/NavBar.css.css +429 -429
  72. package/dist/assets/WalnutIframe/wrapper.css.css +48 -48
  73. package/dist/assets/utils/optimizeImage/optimizeImage.css.css +47 -47
  74. package/dist/utils/appendQueryParams.js +36 -5
  75. package/dist/utils/optimizeImage/optimizeImage.module.js +3 -3
  76. package/dist/utils/validateExternalLinks.js +2 -4
  77. package/package.json +1 -1
package/README.md CHANGED
@@ -1,111 +1,111 @@
1
- # Installation
2
-
3
- Using npm:
4
-
5
- ```shell
6
- $ npm install @axos-web-dev/shared-components
7
- ```
8
-
9
- To import components
10
- In Node.js:
11
-
12
- ```js
13
- // Import Components
14
- import {
15
- AlertBanner,
16
- CallToActionBar,
17
- DownloadTile,
18
- ImageBillboard,
19
- SecondaryFooter,
20
- } from "@axos-web-dev/shared-components";
21
-
22
- // Import Types/Interfaces
23
-
24
- import { AlertBannerInterface } from "@axos-web-dev/shared-components/dist/AlertBanner/AlertBanner.interface";
25
- ```
26
-
27
- In css files:
28
-
29
- ```css
30
- /*** Import styles ***/
31
-
32
- @import "@axos-web-dev/shared-components/dist/assets/AlertBanner/AlertBanner.css";
33
- ```
34
-
35
- # Shared components
36
-
37
- This project is develop using `React + TypeScript + Vite + Storybook + Vanilla-extract` to building custom components for internal use.
38
-
39
- ## How to add new component
40
-
41
- For add a new component use the `src/lib` folder and create a folder for the component. After that you should register an export in `src/lib/main.ts` file.
42
-
43
- Also you need create a storie for the new component. Go to `src/stories` and create a new file or folder.
44
-
45
- ```shell
46
- git clone bofaz@vs-ssh.visualstudio.com:v3/bofaz/Axos%20Marketing%20Cloud/Shared%20Components shared-components
47
-
48
- cd shared-components
49
-
50
- npm install
51
-
52
- # for using storybook
53
- npm run storybook
54
-
55
- # for build
56
- npm run build
57
-
58
- # for testing in other projects
59
- npm run build
60
-
61
- npm link
62
-
63
- ```
64
-
65
- For publishing we need to udpate the version we are using [semantic versioning](https://semver.org/)
66
-
67
- ```
68
- Given a version number MAJOR.MINOR.PATCH, increment the:
69
-
70
- MAJOR version when you make incompatible API changes
71
- MINOR version when you add functionality in a backward compatible manner
72
- PATCH version when you make backward compatible bug fixes
73
-
74
- Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
75
- ```
76
-
77
- we can update the version with the following commands:
78
-
79
- ```shell
80
- # bumps the patch number like 0.0.0 -> 0.0.1
81
- npm version patch
82
-
83
- # bumps the patch number like 0.0.0 -> 0.1.0
84
- npm version minor
85
-
86
- # bumps the patch number like 0.0.0 -> 1.0.0
87
- npm version major
88
-
89
-
90
-
91
- ```
92
-
93
- ## How to publish new library version to npm
94
-
95
- First update the version as previously described
96
-
97
- ```shell
98
- npm version [...]
99
- ```
100
-
101
- Then you will need to login into npm to do that write:
102
-
103
- ```shell
104
- npm login --scope=@my-org
105
- ```
106
-
107
- Last you to publish the new version:
108
-
109
- ```shell
110
- npm publish
111
- ```
1
+ # Installation
2
+
3
+ Using npm:
4
+
5
+ ```shell
6
+ $ npm install @axos-web-dev/shared-components
7
+ ```
8
+
9
+ To import components
10
+ In Node.js:
11
+
12
+ ```js
13
+ // Import Components
14
+ import {
15
+ AlertBanner,
16
+ CallToActionBar,
17
+ DownloadTile,
18
+ ImageBillboard,
19
+ SecondaryFooter,
20
+ } from "@axos-web-dev/shared-components";
21
+
22
+ // Import Types/Interfaces
23
+
24
+ import { AlertBannerInterface } from "@axos-web-dev/shared-components/dist/AlertBanner/AlertBanner.interface";
25
+ ```
26
+
27
+ In css files:
28
+
29
+ ```css
30
+ /*** Import styles ***/
31
+
32
+ @import "@axos-web-dev/shared-components/dist/assets/AlertBanner/AlertBanner.css";
33
+ ```
34
+
35
+ # Shared components
36
+
37
+ This project is develop using `React + TypeScript + Vite + Storybook + Vanilla-extract` to building custom components for internal use.
38
+
39
+ ## How to add new component
40
+
41
+ For add a new component use the `src/lib` folder and create a folder for the component. After that you should register an export in `src/lib/main.ts` file.
42
+
43
+ Also you need create a storie for the new component. Go to `src/stories` and create a new file or folder.
44
+
45
+ ```shell
46
+ git clone bofaz@vs-ssh.visualstudio.com:v3/bofaz/Axos%20Marketing%20Cloud/Shared%20Components shared-components
47
+
48
+ cd shared-components
49
+
50
+ npm install
51
+
52
+ # for using storybook
53
+ npm run storybook
54
+
55
+ # for build
56
+ npm run build
57
+
58
+ # for testing in other projects
59
+ npm run build
60
+
61
+ npm link
62
+
63
+ ```
64
+
65
+ For publishing we need to udpate the version we are using [semantic versioning](https://semver.org/)
66
+
67
+ ```
68
+ Given a version number MAJOR.MINOR.PATCH, increment the:
69
+
70
+ MAJOR version when you make incompatible API changes
71
+ MINOR version when you add functionality in a backward compatible manner
72
+ PATCH version when you make backward compatible bug fixes
73
+
74
+ Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
75
+ ```
76
+
77
+ we can update the version with the following commands:
78
+
79
+ ```shell
80
+ # bumps the patch number like 0.0.0 -> 0.0.1
81
+ npm version patch
82
+
83
+ # bumps the patch number like 0.0.0 -> 0.1.0
84
+ npm version minor
85
+
86
+ # bumps the patch number like 0.0.0 -> 1.0.0
87
+ npm version major
88
+
89
+
90
+
91
+ ```
92
+
93
+ ## How to publish new library version to npm
94
+
95
+ First update the version as previously described
96
+
97
+ ```shell
98
+ npm version [...]
99
+ ```
100
+
101
+ Then you will need to login into npm to do that write:
102
+
103
+ ```shell
104
+ npm login --scope=@my-org
105
+ ```
106
+
107
+ Last you to publish the new version:
108
+
109
+ ```shell
110
+ npm publish
111
+ ```
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import clsx from "clsx";
4
- import React, { createContext, useContext, useState } from "react";
4
+ import React, { createContext, useState, useContext } from "react";
5
5
  import "../icons/ArrowIcon/ArrowIcon.css.js";
6
6
  import "../icons/CheckIcon/CheckIcon.css.js";
7
7
  import SvgChevronDown from "../icons/ChevronDown.js";
@@ -12,7 +12,7 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
12
12
  /* empty css */
13
13
  /* empty css */
14
14
  /* empty css */
15
- import { headerContent, icon, headerAccordion, bodyAccordion, hide, paragraph, accordion } from "./Accordion.css.js";
15
+ import { bodyAccordion, hide, paragraph, accordion, headerContent, icon, headerAccordion } from "./Accordion.css.js";
16
16
  const AccordionCtx = createContext({
17
17
  isOpen: false,
18
18
  onclick: () => {
@@ -10,7 +10,7 @@ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/Downl
10
10
  /* empty css */
11
11
  import SvgLockIcon from "../icons/LockIcon/index.js";
12
12
  import { SvgWarningIcon } from "../icons/WarningIcon/index.js";
13
- import { alertBanner, alertBanner_img_section, alertBanner_body, alertBanner_cta } from "./AlertBanner.css.js";
13
+ import { alertBanner_img_section, alertBanner_body, alertBanner_cta, alertBanner } from "./AlertBanner.css.js";
14
14
  const AlertBanner = ({
15
15
  alertType,
16
16
  message,
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { getVariant } from "../utils/getVariant.js";
3
3
  import { OptimizeImage } from "../utils/optimizeImage/OptimizeImage.js";
4
- import { ant_article, ant_img, ant_content, ant_eyebrow, ant_card_title, ant_card_body, ant_card_cta } from "./Article.css.js";
4
+ import { ant_img, ant_content, ant_eyebrow, ant_card_title, ant_card_body, ant_card_cta, ant_article } from "./Article.css.js";
5
5
  import { Button } from "../Button/Button.js";
6
6
  import "../Button/Button.css.js";
7
7
  import "react";
@@ -1,10 +1,10 @@
1
- import '../assets/Avatar/Avatar.css.css';const avatar_sec = "_avatar_sec_1clr6_1";
2
- const container = "_container_1clr6_5";
3
- const image = "_image_1clr6_14";
4
- const text = "_text_1clr6_23";
5
- const name = "_name_1clr6_29";
6
- const title = "_title_1clr6_37";
7
- const description = "_description_1clr6_44";
1
+ import '../assets/Avatar/Avatar.css.css';const avatar_sec = "_avatar_sec_q4a8z_1";
2
+ const container = "_container_q4a8z_9";
3
+ const image = "_image_q4a8z_27";
4
+ const text = "_text_q4a8z_45";
5
+ const name = "_name_q4a8z_57";
6
+ const title = "_title_q4a8z_73";
7
+ const description = "_description_q4a8z_87";
8
8
  const css = {
9
9
  avatar_sec,
10
10
  container,
@@ -1,6 +1,6 @@
1
- import '../assets/Blockquote/Blockquote.css.css';const quote_spacer = "_quote_spacer_ovx4r_1";
2
- const author = "_author_ovx4r_7";
3
- const quote = "_quote_ovx4r_1";
1
+ import '../assets/Blockquote/Blockquote.css.css';const quote_spacer = "_quote_spacer_lqs2u_1";
2
+ const author = "_author_lqs2u_13";
3
+ const quote = "_quote_lqs2u_1";
4
4
  const css = {
5
5
  quote_spacer,
6
6
  author,
@@ -8,7 +8,7 @@ import { getVariant } from "../../utils/getVariant.js";
8
8
  import { useRef, useState, useEffect } from "react";
9
9
  import clsx from "clsx";
10
10
  import { calculator } from "../calculator.css.js";
11
- import { container, calc_container, calc_block, pb0_1023, slider_block_wrapper, w100, stat_row, balance_wrapper, fb50, stat, slider_wrapper, slider, pt0_1023, text_block } from "./AnnualFeeCalculator.css.js";
11
+ import { calc_container, calc_block, pb0_1023, slider_block_wrapper, w100, stat_row, balance_wrapper, fb50, stat, slider_wrapper, slider, pt0_1023, text_block, container } from "./AnnualFeeCalculator.css.js";
12
12
  const AnnualFeeCalculator = ({
13
13
  marketingTiles,
14
14
  variant: fullVariant = "primary"
@@ -7,7 +7,7 @@ import "react-use";
7
7
  import { Chevron } from "../../Chevron/index.js";
8
8
  import { section_container, content, headerIconBillboard, buttons } from "../../IconBillboard/IconBillboard.css.js";
9
9
  import { getVariant } from "../../utils/getVariant.js";
10
- import { container, apy_calculator, calculator_section, section_header, header_theme, mt_8, apy_calculator_form, pis_0, errorTag, fieldset, field_row, relative, label_symbol, cash, prefix_pad, percent, submit_section, span_12, form_disclosure, marketing, marketingTile, bodyContent } from "./ApyCalculator.css.js";
10
+ import { apy_calculator, calculator_section, section_header, header_theme, mt_8, apy_calculator_form, pis_0, errorTag, fieldset, field_row, relative, label_symbol, cash, prefix_pad, percent, submit_section, span_12, form_disclosure, marketing, marketingTile, bodyContent, container } from "./ApyCalculator.css.js";
11
11
  const ApyCalculator = ({
12
12
  header,
13
13
  body,
@@ -23,7 +23,7 @@ import { z } from "zod";
23
23
  import { getVariant } from "../../utils/getVariant.js";
24
24
  import clsx from "clsx";
25
25
  import { useForm, FormProvider } from "react-hook-form";
26
- import { calc_container, calculator_section, section_header, theme_header, mt_8, buydown_calculator_form, row_form, calculate_row, form_wrapper, form_disclosure } from "./BuyDownCalculator.css.js";
26
+ import { calculator_section, section_header, theme_header, mt_8, buydown_calculator_form, row_form, calculate_row, form_wrapper, form_disclosure, calc_container } from "./BuyDownCalculator.css.js";
27
27
  const BuyDownCalculator = ({
28
28
  header,
29
29
  body,
@@ -4,7 +4,7 @@ import { Button } from "../../Button/Button.js";
4
4
  import { button } from "../../Button/Button.css.js";
5
5
  import { useEffect } from "react";
6
6
  import "react-use";
7
- import { container, field_row, errorTag, marketingTile, bodyContent, header_theme } from "../ApyCalculator/ApyCalculator.css.js";
7
+ import { field_row, errorTag, marketingTile, bodyContent, header_theme, container } from "../ApyCalculator/ApyCalculator.css.js";
8
8
  import { Chevron } from "../../Chevron/index.js";
9
9
  import { content, headerIconBillboard, buttons } from "../../IconBillboard/IconBillboard.css.js";
10
10
  import { findMoreAxosDomains } from "../../utils/allowedAxosDomains.js";
@@ -8,7 +8,7 @@ import { useState } from "react";
8
8
  import clsx from "clsx";
9
9
  import { calc_text, description_text, calc_disclosure } from "../BalanceAPYCalculator/BalanceAPYCalculator.css.js";
10
10
  import { calculator } from "../calculator.css.js";
11
- import { calc_container, container, h2i, inputs_container, input_container, input_box, error_message, hide_select_arrow, calculation_header, payment_results } from "../MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
11
+ import { calc_container, h2i, inputs_container, input_container, input_box, error_message, hide_select_arrow, calculation_header, payment_results, container } from "../MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
12
12
  const MarineLoanMonthlyPaymentCalculator = ({ variant, header, disclosure, bodyCopy = true }) => {
13
13
  const fullVariant = getVariant(variant);
14
14
  const [loanAmountDisplay, setLoanAmountDisplay] = useState("$75,000");
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { button } from "../../Button/Button.css.js";
4
- import { calc_container, container, h2i, inputs_container, input_container, input_box, error_message, calculation_header, payment_results } from "../MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
4
+ import { calc_container, h2i, inputs_container, input_container, input_box, error_message, calculation_header, payment_results, container } from "../MonthlyPaymentCalculator/MonthlyPaymentCalculator.css.js";
5
5
  import { title } from "../../IconBillboard/IconBillboard.css.js";
6
6
  import "../../utils/allowedAxosDomains.js";
7
7
  import { getVariant } from "../../utils/getVariant.js";
@@ -8,7 +8,7 @@ import { useState } from "react";
8
8
  import clsx from "clsx";
9
9
  import { calc_text, description_text, calc_disclosure } from "../BalanceAPYCalculator/BalanceAPYCalculator.css.js";
10
10
  import { calculator } from "../calculator.css.js";
11
- import { calc_container, container, h2i, inputs_container, input_container, input_box, error_message, calculation_header, payment_results } from "./MonthlyPaymentCalculator.css.js";
11
+ import { calc_container, h2i, inputs_container, input_container, input_box, error_message, calculation_header, payment_results, container } from "./MonthlyPaymentCalculator.css.js";
12
12
  const MonthlyPaymentCalculator = ({
13
13
  variant,
14
14
  header,
@@ -5,7 +5,7 @@ import "../../utils/allowedAxosDomains.js";
5
5
  import { getVariant } from "../../utils/getVariant.js";
6
6
  import { useState } from "react";
7
7
  import { calc_disclosure } from "../BalanceAPYCalculator/BalanceAPYCalculator.css.js";
8
- import { bg_vars, calc_content_area, calc_h2, calc_bodycopy, lvf_calc_wrapper, lvf_calc_header, calc_wrapper_inner, calc_input_wrap, rounded_cell, calc_input_styles, error_dialog, results_wrap, result_header, result_value, waves, parallax } from "./MonthlyPaymentCalculator.css.js";
8
+ import { calc_content_area, calc_h2, calc_bodycopy, lvf_calc_wrapper, lvf_calc_header, calc_wrapper_inner, calc_input_wrap, rounded_cell, calc_input_styles, error_dialog, results_wrap, result_header, result_value, waves, parallax, bg_vars } from "./MonthlyPaymentCalculator.css.js";
9
9
  const MonthlyPaymentLVFCalculator = ({ variant, header, bodyCopy, disclosure }) => {
10
10
  const theme = getVariant(variant);
11
11
  const [loanAmountMasked, setLoanAmountMasked] = useState("50,000");
@@ -133,7 +133,7 @@ import "../StepItemSet/StepItemSet.css.js";
133
133
  /* empty css */
134
134
  /* empty css */
135
135
  /* empty css */
136
- import { icon, slide, authorLocation, author, quoteSetContainer, headerCarousel, descriptionCarousel, slides, carousel, dots, dot } from "./Carousel.css.js";
136
+ import { icon, quoteSetContainer, headerCarousel, descriptionCarousel, slides, carousel, slide, authorLocation, author, dots, dot } from "./Carousel.css.js";
137
137
  import { useCarousel } from "./store.js";
138
138
  const iconVarints = /* @__PURE__ */ new Map([
139
139
  [
@@ -41,7 +41,9 @@ const ChatWindow = ({
41
41
  showThankyouMessage,
42
42
  displayThankyouMessage,
43
43
  toggleThankyouMessage,
44
- hasEscalated
44
+ hasEscalated,
45
+ isBlockedInput,
46
+ isOpen
45
47
  } = useOpenChat();
46
48
  const [mounted, setMounted] = React.useState(false);
47
49
  const [menuOpen, setMenuOpen] = React.useState(false);
@@ -50,9 +52,6 @@ const ChatWindow = ({
50
52
  const [input, setInput] = React.useState("");
51
53
  const messagesEndRef = useRef(null);
52
54
  const inputRef = useRef(null);
53
- const isOpen = useOpenChat((state2) => state2.isOpen);
54
- const isBlockedInput = useOpenChat((state2) => state2.isBlockedInput);
55
- const blockInput = useOpenChat((state2) => state2.blockInput);
56
55
  useEffect(() => {
57
56
  messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
58
57
  }, [messages]);
@@ -60,10 +59,7 @@ const ChatWindow = ({
60
59
  e.preventDefault();
61
60
  const cleaned = cleanInput(input);
62
61
  if (isBlockedInput) return;
63
- if (cleaned) {
64
- if (!hasEscalated) {
65
- blockInput?.();
66
- }
62
+ if (cleaned != "") {
67
63
  onSend(cleaned);
68
64
  setInput("");
69
65
  }
@@ -457,7 +453,7 @@ const ChatWindow = ({
457
453
  style: {
458
454
  display: "flex",
459
455
  padding: "12px 16px",
460
- background: "#ffffff",
456
+ background: isBlockedInput || inputDisabled || status !== "connected" || messages.length == 0 || escalationDeflected ? "light-dark(rgba(239, 239, 239, 0.3), rgba(59, 59, 59, 0.3))" : "#ffffff",
461
457
  borderRadius: 12
462
458
  },
463
459
  children: [
@@ -22,7 +22,7 @@ const Chatbot = ({
22
22
  hasEscalated,
23
23
  endEscalation,
24
24
  unblockInput,
25
- isBlockedInput
25
+ blockInput
26
26
  } = useOpenChat();
27
27
  const { addMessage, addMessages, clearMessages, messages } = useMessages();
28
28
  const clientRef = useRef(null);
@@ -99,31 +99,31 @@ const Chatbot = ({
99
99
  };
100
100
  const onChatMessageHandler = async (message) => {
101
101
  console.log("Received message:", message);
102
- if (["system", "virtual_agent", "user"].includes(message.$userType) && message.event === void 0) {
103
- console.log(message.$userType, "not end user");
102
+ const { event, $userType } = message;
103
+ if (["system", "virtual_agent", "user"].includes($userType) && event === void 0) {
104
104
  addMessage(message);
105
- if (!hasEscalated && isBlockedInput) {
105
+ if (!hasEscalated) {
106
106
  unblockInput?.();
107
107
  }
108
108
  return;
109
109
  }
110
- const eventName = message?.event;
111
- switch (eventName) {
110
+ switch (event) {
112
111
  case "escalationAccepted":
112
+ case "escalationStarted":
113
113
  setScalationStarted(true);
114
114
  startEscalation?.();
115
115
  addMessage(message);
116
116
  return;
117
- case "escalationStarted":
118
- setScalationStarted(true);
119
- startEscalation?.();
117
+ case "escalationEnded":
118
+ case "escalationFailed": {
119
+ endEscalation?.();
120
120
  addMessage(message);
121
121
  return;
122
+ }
122
123
  default:
123
124
  addMessage(message);
124
125
  if (["end_user"].includes(message.$userType)) {
125
126
  if (!hasEscalated) {
126
- console.log(message.$userType, "end user");
127
127
  addMessage(typingMessage);
128
128
  }
129
129
  }
@@ -294,7 +294,15 @@ const Chatbot = ({
294
294
  };
295
295
  const onSendMessage = async (msg) => {
296
296
  console.log("Sending message:", msg);
297
- await clientRef.current?.sendTextMessage(msg);
297
+ try {
298
+ await clientRef.current?.sendTextMessage(msg);
299
+ } catch (error) {
300
+ console.log(error);
301
+ } finally {
302
+ if (!hasEscalated) {
303
+ blockInput?.();
304
+ }
305
+ }
298
306
  };
299
307
  const onEndChat = async () => {
300
308
  console.log("Ending chat");
@@ -9,7 +9,7 @@ import '../assets/themes/victorie.css';import '../assets/themes/ufb.css';import
9
9
  /* empty css */
10
10
  /* empty css */
11
11
  import clsx from "clsx";
12
- import { shimmerText, notificationStyle, endChatButtonStyle, messageStyle, user_msg, agent_msg, inline_button_wrapper, inline_button } from "./ChatWindow.css.js";
12
+ import { shimmerText, notificationStyle, messageStyle, user_msg, agent_msg, inline_button_wrapper, inline_button, endChatButtonStyle } from "./ChatWindow.css.js";
13
13
  import { useOpenChat } from "./store/chat.js";
14
14
  function timeAgo(date) {
15
15
  const seconds = Math.floor(((/* @__PURE__ */ new Date()).getTime() - date.getTime()) / 1e3);
@@ -24,7 +24,6 @@ const ChatbotMessage = ({
24
24
  showAvatar,
25
25
  showName,
26
26
  virtualAgent,
27
- onCancelEndChat,
28
27
  onEndChat,
29
28
  onSend
30
29
  }) => {
@@ -76,23 +75,20 @@ const ChatbotMessage = ({
76
75
  " ",
77
76
  msg.to_agent ? /* @__PURE__ */ jsx("strong", { children: msg?.to_agent?.name }) : "an agent"
78
77
  ] }, msg.$index),
79
- msg.type == "noti" && msg.$userType == "virtual_agent" && msg.event == "escalationDeflected" && /* @__PURE__ */ jsxs(Fragment, { children: [
80
- /* @__PURE__ */ jsxs(
81
- "div",
82
- {
83
- className: notificationStyle,
84
- style: { fontSize: 12 },
85
- children: [
86
- "Our chat team is available weekdays, 8am-5pm, except federal bank holidays. For immediate assistance you can reach out to us at",
87
- " ",
88
- /* @__PURE__ */ jsx("a", { href: "tel:1-888-502-2967", children: "1-888-502-2967" }),
89
- "."
90
- ]
91
- },
92
- msg.$index
93
- ),
94
- /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: onCancelEndChat, children: "End Chat" }) })
95
- ] }),
78
+ msg.type == "noti" && msg.$userType == "virtual_agent" && msg.event == "escalationDeflected" && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
79
+ "div",
80
+ {
81
+ className: notificationStyle,
82
+ style: { fontSize: 12 },
83
+ children: [
84
+ "Our chat team is available weekdays, 8am-5pm, except federal bank holidays. For immediate assistance you can reach out to us at",
85
+ " ",
86
+ /* @__PURE__ */ jsx("a", { href: "tel:1-888-502-2967", children: "1-888-502-2967" }),
87
+ "."
88
+ ]
89
+ },
90
+ msg.$index
91
+ ) }),
96
92
  ["text", "markdown_template", "markdown"].includes(msg.type) && /* @__PURE__ */ jsx(
97
93
  "div",
98
94
  {
@@ -181,7 +177,28 @@ const ChatbotMessage = ({
181
177
  index
182
178
  );
183
179
  }) }),
184
- msg.event == "chatEnded" && /* @__PURE__ */ jsxs(Fragment, { children: [
180
+ " ",
181
+ msg.event == "chatEnded" && msg.status == "failed" && /* @__PURE__ */ jsxs(Fragment, { children: [
182
+ /* @__PURE__ */ jsxs(
183
+ "div",
184
+ {
185
+ title: (/* @__PURE__ */ new Date()).toLocaleString(),
186
+ style: {
187
+ fontSize: 12,
188
+ color: "#888",
189
+ marginBottom: 4,
190
+ textAlign: "center"
191
+ },
192
+ children: [
193
+ "No team members are online at the moment.",
194
+ /* @__PURE__ */ jsx("br", {}),
195
+ " Please try again later."
196
+ ]
197
+ }
198
+ ),
199
+ /* @__PURE__ */ jsx("div", { style: { textAlign: "center", marginBottom: 12 }, children: /* @__PURE__ */ jsx("button", { className: endChatButtonStyle, onClick: onEndChat, children: "End Chat" }) })
200
+ ] }),
201
+ msg.event == "chatEnded" && msg.status != "failed" && /* @__PURE__ */ jsxs(Fragment, { children: [
185
202
  /* @__PURE__ */ jsxs(
186
203
  "div",
187
204
  {
@@ -7,7 +7,7 @@ import { getVariant } from "../utils/getVariant.js";
7
7
  import { Button } from "../Button/Button.js";
8
8
  import "../Button/Button.css.js";
9
9
  import "react-use";
10
- import { content_banner, section_pad, section_min_pad, push_down_24, cb_eyebrow, body_copy, call_to_action_row, link } from "./ContentBanner.css.js";
10
+ import { section_pad, section_min_pad, push_down_24, cb_eyebrow, body_copy, call_to_action_row, link, content_banner } from "./ContentBanner.css.js";
11
11
  const ContentBanner = ({
12
12
  variant,
13
13
  icon,
@@ -4,7 +4,7 @@ import { useRef, useState, useEffect, createElement } from "react";
4
4
  import { getVariant } from "../utils/getVariant.js";
5
5
  import { OptimizeImage } from "../utils/optimizeImage/OptimizeImage.js";
6
6
  import { Overlay } from "./Overlay.js";
7
- import { executive_bio, padding, item_bio, shift, media, headshot, img_area, description, person, headline_setting, job_title, copy, contacts, contact_col, svg_icon, contact_entry, url_row, ceoSection, ceoContainer, ceoWrapper, ceoMedia, ceoImgWrapper, imgAlignment, highlights, bulletsHeadline, bulletsWrapper, ceoContent, ceoHeader, ceoPersonalInfo, ceo_name, ceo_title, ceo_contacts, social, hover, svg_color, tooltip, ceo_quote, ceo_body, order_3, overlay } from "./ExecutiveBio.css.js";
7
+ import { executive_bio, padding, shift, media, headshot, img_area, description, person, headline_setting, job_title, copy, contacts, contact_col, svg_icon, contact_entry, url_row, item_bio, ceoContainer, ceoWrapper, ceoMedia, ceoImgWrapper, imgAlignment, highlights, bulletsHeadline, bulletsWrapper, ceoContent, ceoHeader, ceoPersonalInfo, ceo_name, ceo_title, ceo_contacts, social, hover, svg_color, tooltip, ceo_quote, ceo_body, order_3, overlay, ceoSection } from "./ExecutiveBio.css.js";
8
8
  import "../Accordion/Accordion.js";
9
9
  import "../Accordion/Accordion.css.js";
10
10
  import "../icons/ArrowIcon/ArrowIcon.css.js";
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { getVariant } from "../utils/getVariant.js";
3
3
  import { ExecutiveBio } from "./ExecutiveBio.js";
4
- import { section_theme, bio_section_text, header_theme, components, details } from "./ExecutiveBio.css.js";
4
+ import { bio_section_text, header_theme, components, details, section_theme } from "./ExecutiveBio.css.js";
5
5
  const ExecutiveBioSet = ({
6
6
  id,
7
7
  title,
@@ -135,7 +135,7 @@ import "../StepItemSet/StepItemSet.css.js";
135
135
  /* empty css */
136
136
  import { getLevelNumber } from "../utils/faqAccordionOptions.js";
137
137
  import { create } from "zustand";
138
- import { summary, summaryHeader, content, header, faqAccordion, faqAccordion_section } from "./FaqAccordion.css.js";
138
+ import { content, summary, summaryHeader, header, faqAccordion, faqAccordion_section } from "./FaqAccordion.css.js";
139
139
  const useAccordion = create()((set) => ({
140
140
  itemsOpened: [],
141
141
  addItem: (id) => {
@@ -1,5 +1,5 @@
1
- import '../assets/FdicCallout/FdicCallout.css.css';const fdic_callout = "_fdic_callout_1f6md_1";
2
- const inner_container = "_inner_container_1f6md_6";
1
+ import '../assets/FdicCallout/FdicCallout.css.css';const fdic_callout = "_fdic_callout_eqzgp_1";
2
+ const inner_container = "_inner_container_eqzgp_11";
3
3
  const css = {
4
4
  fdic_callout,
5
5
  inner_container
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import clsx from "clsx";
3
- import { footerParagraph, iconsContent, footerDisclosure } from "./FooterDisclosure.css.js";
3
+ import { footerDisclosure, iconsContent, footerParagraph } from "./FooterDisclosure.css.js";
4
4
  const FooterContent = (props) => {
5
5
  return /* @__PURE__ */ jsx(
6
6
  "div",