@seamly/web-ui 20.8.0-alpha.1 → 20.8.0-beta.2

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 (48) hide show
  1. package/build/dist/lib/index.debug.js +48 -48
  2. package/build/dist/lib/index.debug.min.js +1 -1
  3. package/build/dist/lib/index.debug.min.js.LICENSE.txt +1 -1
  4. package/build/dist/lib/index.js +364 -284
  5. package/build/dist/lib/index.min.js +1 -1
  6. package/build/dist/lib/standalone.js +551 -274
  7. package/build/dist/lib/standalone.min.js +1 -1
  8. package/build/dist/lib/style-guide.js +166 -85
  9. package/build/dist/lib/style-guide.min.js +1 -1
  10. package/build/dist/lib/styles.css +1 -1
  11. package/package.json +1 -1
  12. package/src/javascripts/config.types.ts +1 -0
  13. package/src/javascripts/domains/app/actions.ts +45 -41
  14. package/src/javascripts/domains/config/slice.ts +2 -0
  15. package/src/javascripts/domains/i18n/slice.ts +0 -3
  16. package/src/javascripts/domains/store/slice.ts +23 -15
  17. package/src/javascripts/domains/store/store.types.ts +12 -1
  18. package/src/javascripts/domains/translations/hooks.ts +54 -48
  19. package/src/javascripts/domains/translations/selectors.ts +12 -0
  20. package/src/javascripts/domains/translations/slice.ts +70 -23
  21. package/src/javascripts/domains/translations/translations.types.ts +8 -1
  22. package/src/javascripts/schema.ts +3 -10
  23. package/src/javascripts/style-guide/components/app.js +2 -2
  24. package/src/javascripts/style-guide/states.js +61 -3
  25. package/src/javascripts/ui/components/conversation/conversation.js +7 -3
  26. package/src/javascripts/ui/components/conversation/event/card-message.js +1 -1
  27. package/src/javascripts/ui/components/conversation/event/carousel-message/index.js +1 -1
  28. package/src/javascripts/ui/components/conversation/event/choice-prompt.js +1 -1
  29. package/src/javascripts/ui/components/conversation/event/conversation-suggestions.js +9 -2
  30. package/src/javascripts/ui/components/conversation/event/cta.js +1 -1
  31. package/src/javascripts/ui/components/conversation/event/divider/variants/new-translation.js +39 -3
  32. package/src/javascripts/ui/components/conversation/event/image.js +1 -1
  33. package/src/javascripts/ui/components/conversation/event/participant.js +1 -1
  34. package/src/javascripts/ui/components/conversation/event/splash.js +1 -1
  35. package/src/javascripts/ui/components/conversation/event/text.js +1 -1
  36. package/src/javascripts/ui/components/conversation/event/translation.js +1 -1
  37. package/src/javascripts/ui/components/conversation/event/upload.js +1 -1
  38. package/src/javascripts/ui/components/conversation/event/video.js +1 -1
  39. package/src/javascripts/ui/components/conversation/message-container.js +1 -23
  40. package/src/javascripts/ui/components/core/seamly-event-subscriber.js +3 -2
  41. package/src/javascripts/ui/components/faq/faq.js +3 -1
  42. package/src/javascripts/ui/components/options/options-button.js +3 -1
  43. package/src/javascripts/ui/components/suggestions/index.js +5 -2
  44. package/src/javascripts/ui/hooks/seamly-state-hooks.js +6 -0
  45. package/src/javascripts/ui/hooks/use-seamly-chat.js +3 -9
  46. package/src/stylesheets/5-components/_message-carousel.scss +10 -8
  47. package/CHANGELOG.md +0 -987
  48. package/src/javascripts/domains/translations/selectors.js +0 -11
@@ -1 +1 @@
1
- @-webkit-keyframes cvco-loader{0%,75%,to{transform:scaleY(.45);border-radius:50%}37.5%{transform:scaleY(1);border-radius:2.5px}}@keyframes cvco-loader{0%,75%,to{transform:scaleY(.45);border-radius:50%}37.5%{transform:scaleY(1);border-radius:2.5px}}@-webkit-keyframes cvco-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes cvco-fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes cvco-blink{0%,to{opacity:0}50%{opacity:1}}@keyframes cvco-blink{0%,to{opacity:0}50%{opacity:1}}.cvco-app .cvco-chat{display:flex;flex-direction:column;transform-origin:100% 100%;transition:margin .3s ease,height .3s ease,transform .3s ease,opacity .3s ease;outline:0;color:#3d4166;font-family:arial,helvetica,sans-serif;font-size:12px}.cvco-app .cvco-chat,.cvco-app .cvco-chat *,.cvco-app .cvco-chat :after,.cvco-app .cvco-chat :before{box-sizing:border-box}.cvco-app .cvco-chat--layout-inline{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;background-color:transparent;background-color:initial;box-shadow:none}@media(min-width:641px){.cvco-app .cvco-chat--layout-inline{flex-direction:row}}.cvco-app .cvco-chat--layout-inline.cvco-chat--collapsed .cvco-chat-wrapper{height:auto}.cvco-app .cvco-chat--layout-window{max-width:calc(100vw - 40px);max-height:calc(85vh - 40px);display:none;position:fixed;z-index:1;right:20px;bottom:20px;width:360px;max-width:calc(100% - 40px);height:720px;transform:scale(0);opacity:0}@media(min-width:641px){.cvco-app .cvco-chat--layout-window{max-height:calc(100vh - 40px)}@supports(-webkit-overflow-scrolling:touch){.cvco-app .cvco-chat--layout-window{max-height:calc(90vh - 40px)}}}@media(min-width:1025px){.cvco-app .cvco-chat--layout-window{right:20px;bottom:20px;max-height:calc(100vh - 40px)}@supports(-webkit-overflow-scrolling:touch){.cvco-app .cvco-chat--layout-window{max-height:calc(90vh - 40px)}}}.cvco-app .cvco-chat--layout-window.cvco-transition--visible{display:flex}.cvco-app .cvco-chat--layout-window.cvco-transition--in{transform:scale(1);opacity:1}.cvco-app .cvco-chat--layout-app{position:fixed;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;height:100%;max-height:100%}.cvco-app .cvco-chat-wrapper{display:flex;position:relative;z-index:1;flex-direction:column;width:100%;height:100%;overflow:hidden;transition:flex .3s ease,width .3s ease,height .3s ease,border-radius .3s ease;border:1px solid #a3b4bf;border-radius:10px;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1)}.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper{width:100%;height:0}@media(min-width:641px)and (max-width:1023px){.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper{flex:0 0 100%}.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper:not(:only-child){flex:0 0 50%;width:50%}}@media(min-width:1025px){.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper{flex:0 0 67%;width:67%}}.cvco-app .cvco-chat--layout-inline.cvco-transition--in .cvco-chat-wrapper{height:640px;max-height:90vh}.cvco-app .cvco-chat__container{display:flex;position:relative;flex-direction:column;width:100%;height:100%}.cvco-app .cvco-chat__body{display:flex;position:relative;flex-grow:4;padding:0;overflow-y:auto}.cvco-app .cvco-chat--layout-window .cvco-chat__body{overscroll-behavior:contain}.cvco-app .cvco-chat__entry{position:relative;flex:0 0 auto;padding:10px;border-top:1px solid #dee3e5}.cvco-app .cvco-chat__entry .cvco-entry__body--hidden{display:none}.cvco-app .cvco-chat--layout-inline.cvco-chat--collapsed .cvco-chat__entry{border:0}.cvco-app .cvco-entry__body{display:flex;align-items:center}.cvco-app p{margin:0}.cvco-app img{max-width:100%}.cvco-app .cvco-input__checkbox{margin-right:10px}.cvco-app .cvco-input__checkbox[aria-disabled=true]{opacity:.5}.cvco-app .cvco-label{display:block;margin-bottom:5px;color:#4a48c1;font-size:14px;font-weight:700}.cvco-app .cvco-input__checkbox[aria-disabled=true]+.cvco-label{opacity:.5}.cvco-app .cvco-input__select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:40px;padding:10px;border:1px solid #dee3e5;border-radius:5px;background-color:#fff;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iIzRBNDhDMSIgZD0iTTIuOTk4IDYuNTAzYS45OTkuOTk5IDAgMDExLjY4Ny0uNzI3TDcuMjcgOC4yMjJjLjM5NC4zNzMgMS4wNi4zNzMgMS40NTQgMGwyLjU4Ni0yLjQ0NmEuOTk5Ljk5OSAwIDExMS4zNzQgMS40NTRsLTIuNTg2IDIuNDQ2Yy0xLjE1OSAxLjA5Ni0zLjA0MyAxLjA5Ni00LjIwMyAwTDMuMzEgNy4yMjlhLjk5NC45OTQgMCAwMS0uMzEyLS43MjZ6Ii8+PC9zdmc+");background-repeat:no-repeat;background-position:right 10px top 50%;background-size:15px auto;color:#3d4166;font-size:16px;resize:none}.cvco-app .cvco-input__select[aria-disabled=true]{border:1px solid #a3b4bf;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2EzYjRiZiIgZD0iTTIuOTk4IDYuNTAzYS45OTkuOTk5IDAgMDExLjY4Ny0uNzI3TDcuMjcgOC4yMjJjLjM5NC4zNzMgMS4wNi4zNzMgMS40NTQgMGwyLjU4Ni0yLjQ0NmEuOTk5Ljk5OSAwIDExMS4zNzQgMS40NTRsLTIuNTg2IDIuNDQ2Yy0xLjE1OSAxLjA5Ni0zLjA0MyAxLjA5Ni00LjIwMyAwTDMuMzEgNy4yMjlhLjk5NC45OTQgMCAwMS0uMzEyLS43MjZ6Ii8+PC9zdmc+");color:#a3b4bf}.cvco-app .cvco-avatar{display:block;position:relative;flex-shrink:0;width:32px;height:32px;overflow:hidden;border-radius:5px}.cvco-app .cvco-avatar>.cvco-icon,.cvco-app .cvco-avatar__graphic{display:block}.cvco-app .cvco-conversation__message+.cvco-avatar{align-self:flex-end;margin-left:10px}.cvco-app .cvco-button{display:inline-block;margin:0;padding:0;border:0;background:none;font-size:14px;text-align:left;cursor:pointer}.cvco-app .cvco-button span{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit}.cvco-app .cvco-button--primary{min-height:40px;padding:10px 15px;border-radius:5px;background-color:#4a48c1;color:#fff;font-weight:700}.cvco-app .cvco-button--secondary{padding:10px 15px;color:#4a48c1;font-weight:700}.cvco-app .cvco-button--tertiary{padding:2px 5px;border-radius:5px;background-color:transparent;background-color:initial;color:#fff;font-size:12px;font-weight:700}.cvco-app .cvco-button[aria-disabled=true]{color:#5e727b;cursor:auto}.cvco-app .cvco-button__state{display:inline-block;margin:-3px -3px -3px 3px;padding:3px 5px;border-radius:5px;background-color:#eff3f6;color:inherit}.cvco-app .cvco-choice-prompt{display:flex;flex-direction:column;padding:0}.cvco-app .cvco-choice-prompt__item{display:block;width:100%;margin-top:5px;margin-left:0}.cvco-app .cvco-choice-prompt__item:first-child{margin-top:0}.cvco-app .cvco-choice-prompt__item .cvco-button{display:inline-block;white-space:normal}.cvco-app .cvco-choice-prompt__item--secondary .cvco-button{padding:5px 0;background-color:transparent;background-color:initial;color:#4a48c1}.cvco-app .cvco-button--choose-again{display:flex;align-items:center;margin:5px 0 10px;padding:0}.cvco-app .cvco-button--choose-again:last-child{margin-bottom:0}.cvco-app .cvco-button--choose-again .cvco-icon{display:flex;flex:0 0 8px;align-items:center;justify-content:center;width:8px;height:8px;margin:0 10px;transform-origin:50% 50%;transition:transform .3s ease}.cvco-app .cvco-button--choose-again .cvco-icon path{fill:currentcolor}.cvco-app .cvco-button--choose-again[aria-expanded=true] .cvco-icon{transform:rotate(180deg)}.cvco-app .cvco-conversation__container{display:flex;position:absolute;top:0;right:0;bottom:0;left:0;flex:1 1 100%;flex-direction:column;justify-content:space-between;height:100%;max-height:100%}.cvco-app .cvco-conversation{list-style:none;width:100%;margin:auto 0 0;padding:20px 20px 0}.cvco-app .cvco-conversation:after{content:"";display:block;flex:0 0 100%;width:100%;height:20px}.cvco-app .cvco-chat-status~.cvco-chat__container .cvco-conversation{padding-top:80px}.cvco-app .cvco-chat-status~.cvco-chat__container .cvco-disclaimer+.cvco-conversation{padding-top:0}.cvco-app .cvco-chat--layout-inline .cvco-conversation{position:relative}.cvco-app .cvco-conversation__item{width:100%;min-height:0;margin-top:10px}.cvco-app .cvco-conversation__item--new-participant{margin-top:20px}.cvco-app .cvco-conversation__item--new-participant:first-child{margin-top:0}.cvco-app .cvco-conversation__item--source-info{margin-top:20px;margin-bottom:20px}.cvco-app .cvco-conversation__item--source-info:last-child{margin-bottom:0}.cvco-app .cvco-divider{display:flex;position:relative;justify-content:center;margin:20px -20px 0;padding:65px 30px 0;overflow:hidden;background:linear-gradient(180deg,#fff,#eff3f6);background-repeat:no-repeat;background-size:100% 40px;line-height:1.5}.cvco-app .cvco-divider:before{content:"";position:absolute;top:0;left:50%;width:100%;height:40px;transform:translateX(-50%);background:radial-gradient(110px at 50%,at 300%,rgba(74,72,193,.5) 0,hsla(0,0%,100%,0) 99.99%,rgba(74,72,193,0) 100%);background:radial-gradient(110px at 50% 300%,rgba(74,72,193,.5) 0,hsla(0,0%,100%,0) 99.99%,rgba(74,72,193,0) 100%);background-repeat:no-repeat}.cvco-app .cvco-divider--type-time-indicator{padding-top:60px;padding-bottom:20px}.cvco-app .cvco-divider--type-time-indicator:before{display:none}.cvco-app .cvco-conversation__item:first-child .cvco-divider{margin-top:0;padding-bottom:10px}.cvco-app .cvco-divider__graphic{position:absolute;top:40px;left:50%;width:32px;height:32px;transform:translate(-50%,-60%);border-radius:5px;background:#fff}.cvco-app .cvco-divider__graphic .cvco-avatar,.cvco-app .cvco-divider__graphic .cvco-icon,.cvco-app .cvco-divider__graphic .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-divider__body{font-size:12px;text-align:center}.cvco-app .cvco-divider__time{text-align:center}.cvco-app .cvco-divider__time span{display:block}.cvco-app .cvco-divider__time span:first-of-type{font-weight:700}.cvco-app .cvco-divider--type-newtranslation{text-align:center}.cvco-app .cvco-divider--type-newtranslation .cvco-divider__body{max-width:80%}.cvco-app .cvco-divider--type-newtranslation .cvco-divider__title{font-weight:700}.cvco-app .cvco-divider .cvco-button{padding:0;font-size:inherit}.cvco-app .cvco-loader{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:20px;padding:2.5px 5px;-webkit-animation:cvco-fadeIn .3s linear;animation:cvco-fadeIn .3s linear}.cvco-app .cvco-loader__part{display:inline-block;width:6.666px;height:100%;margin-right:5px;transform:scaleY(.45);-webkit-animation-name:cvco-loader;animation-name:cvco-loader;-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-delay:.12s;animation-delay:.12s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;border-radius:50%;background-color:currentcolor}.cvco-app .cvco-loader__part.cvco-one{-webkit-animation-delay:.12s;animation-delay:.12s}.cvco-app .cvco-loader__part.cvco-two{-webkit-animation-delay:.24s;animation-delay:.24s}.cvco-app .cvco-loader__part.cvco-three{-webkit-animation-delay:.36s;animation-delay:.36s}.cvco-app .cvco-loader__part.cvco-four{margin-right:0;-webkit-animation-delay:.48s;animation-delay:.48s}.cvco-app .cvco-message{display:flex;flex-flow:row wrap;width:80%}.cvco-app .cvco-message.cvco-message--type-suggestions,.cvco-app .cvco-unstarted-wrapper--window .cvco-message{width:100%}.cvco-app .cvco-message+.cvco-message{margin-top:10px}.cvco-app .cvco-message--source-info.cvco-message{width:90%;max-width:90%;margin:0 auto}.cvco-app .cvco-message--source-info.cvco-message:after{content:"";display:block;width:20px;height:0;margin:0 auto;border-top:2px solid #4a48c1}.cvco-app .cvco-message--source-user{justify-content:flex-end;margin-left:auto}.cvco-app .cvco-message__author{display:none;flex-direction:row;align-items:center;justify-content:flex-start;width:100%;margin-bottom:.3rem;padding:0 10px;font-weight:700}.cvco-app .cvco-message--source-user .cvco-message__author{justify-content:flex-end}.cvco-app .cvco-message__avatar{width:16px;height:16px;margin:0 .5em 0 0}.cvco-app .cvco-message__avatar .cvco-avatar{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.cvco-app .cvco-conversation__item--new-participant .cvco-message__author{display:flex}.cvco-app .cvco-message--source-user .cvco-message__avatar{order:2;margin:0 0 0 10px}.cvco-app .cvco-message--source-user .cvco-message__author-name{order:1}.cvco-app .cvco-message__info{width:100%;margin-top:4px;color:#6a7f8c;font-size:12px;line-height:1.35}.cvco-app .cvco-message--source-user .cvco-message__info{text-align:right}.cvco-app .cvco-message__translation-info{width:100%}.cvco-app.cvco-app--collapsed .cvco-message__translation-info{display:none}.cvco-app .cvco-message__translation-label{margin-right:5px;font-size:12px}.cvco-app .cvco-button.cvco-message__translation-toggle{padding:0;font-size:inherit}.cvco-app .cvco-message--source-user .cvco-message__translation-info{text-align:right}.cvco-app .cvco-card__wrapper{display:flex;flex-direction:column;height:100%}.cvco-app .cvco-card__image{flex:0 0 auto;width:100%;height:160px;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;overflow:hidden;border-top-left-radius:10px;border-top-right-radius:10px}.cvco-app .cvco-card__content{display:flex;flex:1 1 auto;flex-wrap:wrap;padding:10px 15px 15px}.cvco-app .cvco-card__title{display:block;flex:0 0 100%;width:100%;margin:0 0 5px;padding:0;font-size:16px;font-weight:700}.cvco-app .cvco-card__title:last-child{margin-bottom:0}.cvco-app .cvco-card__description{display:block;width:100%;margin-bottom:20px}.cvco-app .cvco-card__description:last-child{margin-bottom:0}.cvco-app .cvco-card__content .cvco-button{display:block;align-self:flex-end;width:100%;font-weight:700;text-decoration:none}.cvco-app .cvco-carousel{position:relative}.cvco-app .cvco-carousel__slides-wrapper{display:block;width:100%;overflow:hidden}.cvco-app .cvco-carousel__slides{display:flex;position:relative;flex-direction:row;padding:0;transition:left .3s ease;list-style:none}.cvco-app .cvco-carousel__slide{display:block;width:100%;padding:0;list-style:none}.cvco-app .cvco-carousel-item{display:flex;flex-direction:column;width:100%;height:100%}.cvco-app .cvco-carousel-item .cvco-button{display:block;width:100%}.cvco-app .cvco-carousel-controls{display:flex;position:relative;justify-content:space-between;width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:0;border-top:1px solid #dee3e5}.cvco-app .cvco-carousel-controls .cvco-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:transparent;background-color:initial;color:transparent;font-size:0}.cvco-app .cvco-carousel-controls .cvco-button--previous{left:0}.cvco-app .cvco-carousel-controls .cvco-button--next{right:0}.cvco-app .cvco-carousel__controls .cvco-button .cvco-icon{display:block;width:16px;height:16px;padding:0;border:0}.cvco-app .cvco-carousel__controls .cvco-button .cvco-icon svg path{fill:#4a48c1}.cvco-app .cvco-carousel__pagination{display:flex;position:relative;align-items:center;justify-content:center;padding:0 10px}.cvco-app .cvco-carousel-pagination{width:100%;margin:0 auto;padding:0}.cvco-app .cvco-carousel-pagination,.cvco-app .cvco-carousel-pagination__wrapper{display:flex;position:relative;flex-direction:row;justify-content:center}.cvco-app .cvco-carousel-pagination__item{display:block;list-style:none}.cvco-app .cvco-carousel-pagination__button{display:block;position:relative;width:32px;height:32px;padding:0;border:0;border-radius:0;background-color:transparent;background-color:initial}.cvco-app .cvco-carousel-pagination__button:before{content:"";display:block;position:absolute;top:50%;left:50%;width:9.6px;height:9.6px;transform:translate(-50%,-50%);transform-origin:50% 50%;border-radius:50%;background-color:#a3b4bf}.cvco-app .cvco-is-active .cvco-carousel-pagination__button:before{background-color:#003a5d}.cvco-app .cvco-cta__content{margin-bottom:10px;color:#fff;font-size:14px;line-height:1.5}.cvco-app .cvco-cta__content p{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit}.cvco-app .cvco-message--type-cta .cvco-button{margin-bottom:10px;line-height:2;text-decoration:none}.cvco-app .cvco-message--type-cta .cvco-button:last-child{margin-bottom:0}.cvco-app .cvco-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;line-height:1}.cvco-app .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-form,.cvco-app .cvco-input{display:flex;flex:1 1 100%;width:100%;height:100%}.cvco-app .cvco-input--text__container{display:flex;position:relative;flex:1 1 100%;height:100%;margin-right:5px}.cvco-app .cvco-input__text{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-grow:4;height:40px;margin-right:5px;padding:10px;transition:padding .3s ease;border:1px solid transparent;border-radius:5px;color:#3d4166;font-size:16px;resize:none}.cvco-app .cvco-input__text::input-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input__text::-moz-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input__text::placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input__text:input-placeholder,.cvco-app .cvco-input__text:placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input--text__container .cvco-input__text{width:100%;margin-right:0}.cvco-app .cvco-character-exceeded .cvco-input__text,.cvco-app .cvco-character-warning .cvco-input__text{padding-right:40px}.cvco-app .cvco-character-exceeded .cvco-input__text{border:1px solid #db1639}.cvco-app .cvco-input__submit{display:flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:5px}.cvco-app .cvco-input__submit[aria-disabled=true]{cursor:auto}.cvco-app .cvco-input__submit .cvco-icon path{transition:fill .3s ease;fill:#4a48c1}.cvco-app .cvco-input__submit[aria-disabled=true] .cvco-icon path{fill:#a3b4bf}.cvco-app .cvco-interrupt{display:flex;position:absolute;top:0;right:0;bottom:0;left:0;background:#fff}.cvco-app.cvco-app--layout-inline.cvco-app--collapsed .cvco-interrupt{position:static;width:100%;border-radius:10px}@media(min-width:1025px){.cvco-app.cvco-app--layout-inline.cvco-app--collapsed .cvco-interrupt{width:67%}}.cvco-app .cvco-interrupt__body{display:flex;flex:1 1 auto;flex-direction:column;align-items:left;justify-content:center;padding:40px;text-align:left}.cvco-app .cvco-chat .cvco-interrupt__body{margin:10px}.cvco-app .cvco-interrupt__title{margin:0 0 20px;font-size:16px;font-weight:700}.cvco-app .cvco-interrupt__message{margin-bottom:40px;font-size:16px}.cvco-app .cvco-interrupt__message:last-child{margin-bottom:0}.cvco-app .cvco-interrupt__actions{margin-top:auto}.cvco-app .cvco-skip-link{position:absolute;z-index:100;top:20px;left:50%;padding:10px 15px;transform:translate(-50%,-5px) scale(0);transform-origin:50% 0;transition:transform .3s ease,opacity .3s ease;border:1px solid #fff;border-radius:5px;opacity:0;background:#4a48c1;color:#fff;font-size:12px}.cvco-app .cvco-skip-link:focus{transform:translate(-50%) scale(1);opacity:1}.cvco-app .cvco-disclaimer{display:block;flex:0 0 auto;width:100%;height:auto;padding:20px;background-color:#eff3f6}.cvco-app .cvco-chat--layout-window .cvco-disclaimer{padding-right:80px}.cvco-app .cvco-chat-status~.cvco-chat__container .cvco-disclaimer{margin-top:80px;padding:10px 20px}.cvco-app .cvco-disclaimer__title{margin:0 0 5px;padding-right:20px;font-size:12px;font-weight:700;line-height:1}.cvco-app .cvco-disclaimer__message{font-size:12px;line-height:1.25}.cvco-app .cvco-idle{display:flex;flex-direction:column;align-items:center;justify-content:space-between;max-height:none;padding:10px}.cvco-app .cvco-idle__title{margin-top:0;margin-bottom:5px;font-size:16px;font-weight:700;text-align:center}.cvco-app .cvco-idle__title:last-child{margin-bottom:0}.cvco-app .cvco-idle__count-container{display:block;width:100%;height:2.75em;margin-bottom:10px;font-size:12px}.cvco-app .cvco-idle__count-text,.cvco-app .cvco-idle__count-timer{display:block;width:100%;font-size:inherit;text-align:center;white-space:nowrap}.cvco-app .cvco-idle__options{display:flex;flex-wrap:wrap;justify-content:center;width:100%;margin:0;padding:0;list-style-type:none}.cvco-app .cvco-idle__options .cvco-button{margin:5px 5px 0;text-align:center;white-space:normal}.cvco-app .cvco-prompt{display:flex;flex-direction:column;align-items:center;justify-content:space-between;max-height:none;padding:10px}.cvco-app .cvco-prompt__title{margin-top:0;margin-bottom:5px;font-size:16px;font-weight:700;text-align:center}.cvco-app .cvco-prompt__title:last-child{margin-bottom:0}.cvco-app .cvco-prompt__options{display:flex;flex-wrap:wrap;justify-content:center;width:100%;margin:0;padding:0;list-style-type:none}.cvco-app .cvco-prompt__options .cvco-button{margin:5px 5px 0;text-align:center;white-space:normal}.cvco-app .cvco-chat__options{display:flex;position:relative;flex:0;align-items:center;justify-content:flex-end;width:100%;padding:5px;border-top:1px solid #dee3e5}.cvco-app .cvco-chat__options-item--left{margin-right:auto}.cvco-app .cvco-chat__options__button{display:flex;align-items:center;justify-content:flex-end;padding:5px 10px;border-radius:5px}.cvco-app .cvco-chat__options__button .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:5px}.cvco-app .cvco-chat__options__button .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-chat__options__button .cvco-icon path{fill:currentcolor}.cvco-app .cvco-options__menu{display:none;position:absolute;right:10px;bottom:calc(100% + 10px);max-width:300px;max-height:400px;margin:0;padding:10px;transform:scaleY(0) translateY(100px);transform-origin:100% 100%;transition:transform .2s ease-in-out,opacity .2s ease;border:1px solid #dee3e5;border-radius:5px;opacity:0;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1);list-style:none}.cvco-app .cvco-options__menu.cvco-transition--visible{display:block}.cvco-app .cvco-options__menu.cvco-transition--in{transform:scaleY(1) translateY(0);opacity:1}.cvco-app .cvco-options__menu__item{margin-bottom:5px;transition:opacity .1s ease .1s;opacity:0}.cvco-app .cvco-options__menu__item:last-child{margin-bottom:0}.cvco-app .cvco-options__menu.cvco-transition--in .cvco-options__menu__item{opacity:1}.cvco-app .cvco-options__menu .cvco-button{display:flex;align-items:center;width:100%;min-width:200px;border-radius:5px}.cvco-app .cvco-options{display:none;position:absolute;right:10px;bottom:calc(100% + 10px);flex-direction:column;width:calc(100% - 20px);max-width:300px;margin:0;padding:0;transform:scaleY(0) translateY(100px);transform-origin:100% 100%;transition:transform .2s ease-in-out,opacity .2s ease;border:1px solid #dee3e5;border-radius:5px;opacity:0;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1);list-style:none}.cvco-app .cvco-options--left{right:auto;left:10px}.cvco-app .cvco-options--right{right:10px}.cvco-app .cvco-options__dialog.cvco-transition--visible .cvco-options{display:flex}.cvco-app .cvco-options__dialog.cvco-transition--in .cvco-options{transform:scaleY(1) translateY(0);opacity:1}.cvco-app .cvco-options__body{display:flex;flex-direction:column;max-height:300px;transition:opacity .1s ease .1s;opacity:0}.cvco-app .cvco-options__dialog.cvco-transition--in .cvco-options__body{opacity:1}.cvco-app .cvco-options__title{display:flex;flex:0 0 auto;align-items:center;width:calc(100% - 50px);margin:0;padding:20px 20px 10px;color:#223182;font-size:16px;font-weight:700}.cvco-app .cvco-options__close{display:flex;position:absolute;top:10px;right:10px;align-items:center;justify-content:center;width:40px;height:40px;color:#4a48c1;font-size:0}.cvco-app .cvco-options__close .cvco-icon{flex:0 0 16px;width:16px;height:16px}.cvco-app .cvco-options__close .cvco-icon path{fill:currentcolor}.cvco-app .cvco-options__form{flex:1 1 auto;flex-direction:column}.cvco-app .cvco-options__wrapper{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:flex-start;width:100%;padding:0 20px;overflow:auto}.cvco-app .cvco-options__wrapper:last-child:after{content:"";display:block;flex:0 0 100%;width:100%;height:20px}.cvco-app .cvco-options__body div{width:100%}.cvco-app .cvco-options__wrapper h3{margin:0;color:#223182;font-size:14px;font-weight:700}.cvco-app .cvco-options__description{display:block;width:100%;margin-bottom:10px;font-size:14px}.cvco-app .cvco-transcript__input{width:100%;min-height:40px;padding:10px;transition:padding .3s ease;border:1px solid #dee3e5;border-radius:5px;font-size:16px}.cvco-app .cvco-transcript__input:focus{border:1px solid #dee3e5}.cvco-app .cvco-transcript__input::input-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-transcript__input::-moz-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-transcript__input::placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-transcript__input:input-placeholder,.cvco-app .cvco-transcript__input:placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-options__active-language{color:#3d4166;font-size:14px}.cvco-app .cvco-options__actions{display:flex;flex:0 0 auto;justify-content:flex-end;width:100%;margin-top:10px;padding:0}.cvco-app .cvco-options__actions .cvco-button{width:100%;margin-right:10px}.cvco-app .cvco-options__actions .cvco-button:last-child{margin-right:0}.cvco-app .cvco-chat-status{display:flex;position:absolute;z-index:1;top:20px;left:20px;align-items:center;justify-content:space-between;width:calc(100% - 40px);height:40px;min-height:40px;padding:5px 20px;border-radius:20px;background-color:#fff;box-shadow:0 5px 30px rgba(53,75,90,.15),0 3px 10px rgba(53,75,90,.2)}.cvco-app.cvco-app--collapsed .cvco-chat-status{display:none}.cvco-app .cvco-chat--layout-window .cvco-chat-status{width:calc(100% - 90px)}.cvco-app .cvco-chat-status__title{display:flex;flex:1;align-items:center;margin:0 10px 0 0;color:#3d4166;font-size:12px;font-weight:700;line-height:1.25}.cvco-app .cvco-chat-status .cvco-button--tertiary{color:#4a48c1}.cvco-app .cvco-upload-toggle-wrapper{width:0;height:100%;overflow:visible;transition:width .3s ease}.cvco-app .cvco-upload-toggle-wrapper.cvco-transition--in{width:50px}.cvco-app .cvco-upload-toggle{display:flex;flex:0 0 40px;flex-direction:column;align-items:center;justify-content:center;width:40px;height:40px;padding:0;transform:translateX(-100%);transition:transform .3s ease,opacity .3s ease;border-radius:5px;opacity:0;color:transparent;font-size:0;line-height:1;text-align:center}.cvco-app .cvco-upload-toggle-wrapper.cvco-transition--in .cvco-upload-toggle{transform:translateX(0);opacity:1}.cvco-app .cvco-upload-toggle .cvco-icon{flex:0 0 24px;width:24px;height:24px}.cvco-app .cvco-upload-toggle .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-upload{width:100%;padding:10px 10px 0}.cvco-app .cvco-upload-form{display:block}.cvco-app .cvco-upload__container{width:100%;margin-bottom:10px}.cvco-app .cvco-upload__visible-label--text{display:block;width:100%;font-size:16px;font-weight:700}.cvco-app .cvco-upload__content-hint{display:block;width:100%;margin-bottom:10px;padding-right:20px;font-size:12px}.cvco-app .cvco-file-upload{width:100%;max-width:100%;border:1px solid #4a48c1;border-radius:5px}.cvco-app .cvco-file-upload.cvco-focus-within{outline:1px dotted #212121;outline:5px auto -webkit-focus-ring-color}.cvco-app .cvco-upload__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.cvco-app .cvco-upload__label{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:10px;color:#4a48c1;text-align:left}.cvco-app .cvco-upload__label .cvco-icon{flex:0 0 32px;width:32px;height:32px;margin-right:10px}.cvco-app .cvco-upload__label .cvco-icon path{fill:currentcolor}.cvco-app .cvco-upload__label--text{display:block;flex:1 1 100%;max-width:100%;color:inherit;font-size:14px;font-weight:700}.cvco-app .cvco-upload__output{display:block;flex:1 1 100%;max-width:100%;color:#003a5d;font-size:12px;word-break:break-all}.cvco-app .cvco-upload .cvco-button--primary{text-align:center}.cvco-app .cvco-upload__button-container{display:flex;flex:0 0 100%;justify-content:flex-end}.cvco-app .cvco-upload__cancel{margin-right:5px;padding:10px}.cvco-app .cvco-upload__cancel:last-child{margin-right:0}.cvco-app .cvco-progress__text{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:5px}.cvco-app .cvco-progress__text--file-name{max-width:calc(100% - 40px);padding-right:20px;overflow:hidden;font-size:14px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.cvco-app .cvco-progress__text--percentage{color:#6a7f8c;font-size:14px;line-height:1}.cvco-app .cvco-progress .cvco-error{margin-top:10px}.cvco-app .cvco-progress .cvco-error:empty{display:none}.cvco-app .cvco-progress__bar{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border-radius:5px;background:#eff3f6}.cvco-app .cvco-progress__bar::-webkit-progress-bar{border-radius:5px;background:#eff3f6}.cvco-app .cvco-progress__bar::-webkit-progress-value{border-radius:5px;background-color:#4a48c1}.cvco-app .cvco-progress__bar::-moz-progress-bar{background-color:#4a48c1}.cvco-app .cvco-error{display:block;width:100%;margin:0 0 5px}.cvco-app .cvco-error:empty{display:none;margin:0}.cvco-app .cvco-error .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:5px}.cvco-app .cvco-error .cvco-error__message{display:flex;align-items:flex-start;background-color:rgba(219,22,57,.1);color:#ad001f}.cvco-app .cvco-error .cvco-error__message,.cvco-app .cvco-notification{width:100%;padding:5px 10px;border-radius:5px;font-size:12px;font-weight:700}.cvco-app .cvco-notification{display:block;margin:0 0 10px;background-color:rgba(74,72,193,.1);color:#223182}.cvco-app .cvco-notification:last-child{margin:0}.cvco-app .cvco-character-count{display:flex;position:absolute;top:0;right:0;align-items:center;justify-content:right;height:100%;padding:0 10px;transform:translateX(100%);transition:transform .3s ease,opacity .2s ease .2s;opacity:0;font-size:12px;font-weight:700;line-height:1;text-align:right;pointer-events:none}.cvco-app .cvco-character-count span{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:right}.cvco-app .cvco-character-exceeded .cvco-character-count,.cvco-app .cvco-character-warning .cvco-character-count{transform:translateX(0);opacity:1}.cvco-app .cvco-character-exceeded .cvco-character-count span{color:#db1639}.cvco-app .cvco-collapse-button{display:flex;position:absolute;z-index:1;top:20px;right:20px;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background-color:#fff;box-shadow:0 5px 30px rgba(53,75,90,.15),0 3px 10px rgba(53,75,90,.2)}.cvco-app .cvco-message__body{display:block;position:relative;max-width:100%;margin-bottom:5px;padding:10px 15px;border-radius:10px;background-color:#eff3f6;color:#3d4166}.cvco-app .cvco-message__body .cvco-icon svg path{fill:#3d4166}.cvco-app .cvco-message__body:last-child{margin-bottom:0}.cvco-app .cvco-unstarted-wrapper.cvco-unstarted-wrapper--window .cvco-message__body{margin-left:auto;padding:10px 15px;border:1px solid #fff;border-radius:10px;background-color:#eff3f6;font-size:14px}.cvco-app .cvco-unstarted-wrapper--continue .cvco-message__body{transform:scale(0);transform-origin:100% 100%;transition:transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-unstarted-wrapper--continue.cvco-transition--in .cvco-message__body{transform:scale(1);transition:transform .3s ease .2s,opacity .3s ease .2s;opacity:1}.cvco-app .cvco-conversation__item--source-info .cvco-message__body{flex:0 0 100%;width:100%;padding:0 15px 10px;border-radius:0;background-color:transparent;background-color:initial;text-align:center}.cvco-app .cvco-message--source-user .cvco-message__body{background-color:#223182;color:#fff}.cvco-app .cvco-message--source-user .cvco-message__body .cvco-icon svg path{fill:#fff}.cvco-app .cvco-message--type-splash .cvco-message__body{padding:0;border-radius:0;background-color:transparent;background-color:initial;font-size:24px;font-weight:700}.cvco-app .cvco-message--type-suggestions .cvco-message__body{width:100%;padding:0;background-color:transparent;background-color:initial}.cvco-app .cvco-message--type-splash .cvco-message__body ol,.cvco-app .cvco-message--type-splash .cvco-message__body p,.cvco-app .cvco-message--type-splash .cvco-message__body ul,.cvco-app .cvco-message--type-text .cvco-message__body ol,.cvco-app .cvco-message--type-text .cvco-message__body p,.cvco-app .cvco-message--type-text .cvco-message__body ul{margin:0 0 20px}.cvco-app .cvco-message--type-splash .cvco-message__body ol:last-child,.cvco-app .cvco-message--type-splash .cvco-message__body p:last-child,.cvco-app .cvco-message--type-splash .cvco-message__body ul:last-child,.cvco-app .cvco-message--type-text .cvco-message__body ol:last-child,.cvco-app .cvco-message--type-text .cvco-message__body p:last-child,.cvco-app .cvco-message--type-text .cvco-message__body ul:last-child{margin:0}.cvco-app .cvco-message--type-splash .cvco-message__body ul,.cvco-app .cvco-message--type-text .cvco-message__body ul{padding-left:1.5em}.cvco-app .cvco-message--type-splash .cvco-message__body ul li,.cvco-app .cvco-message--type-text .cvco-message__body ul li{list-style-type:disc}.cvco-app .cvco-message--type-splash .cvco-message__body a,.cvco-app .cvco-message--type-text .cvco-message__body a{color:#4a48c1;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.cvco-app .cvco-message--source-user .cvco-message__body a{color:#fff}.cvco-app .cvco-message--type-loading .cvco-message__body{align-self:flex-start}.cvco-app .cvco-message--type-choice-prompt .cvco-message__body{width:100%;padding:0;background-color:transparent;background-color:initial}.cvco-app .cvco-message--type-image .cvco-message__body{padding:0}.cvco-app .cvco-message--type-image img{display:block;width:100%;height:auto;overflow:hidden;border-radius:10px}.cvco-app .cvco-message--type-video .cvco-message__body{width:100%;padding:0;background-color:#000}.cvco-app .cvco-message--type-video iframe{display:block;width:100%;aspect-ratio:6/4;border:0;border-radius:10px}.cvco-app .cvco-message--type-upload .cvco-message__body{padding:0}.cvco-app .cvco-message--type-upload .cvco-download{display:flex;align-items:center;padding:10px 15px;border-radius:10px;color:inherit;text-align:left;word-break:break-all}.cvco-app .cvco-message--type-upload .cvco-download-link{text-decoration:underline}.cvco-app .cvco-message--type-upload .cvco-download:not(.cvco-download-link) .cvco-file-download{text-decoration:line-through}.cvco-app .cvco-message--type-upload .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:10px}.cvco-app .cvco-message--type-upload .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-conversation__item--source-agent .cvco-message--type-upload .cvco-icon path{fill:#4a48c1}.cvco-app .cvco-message .cvco-message__info{margin-top:4px;color:#6a7f8c;font-size:12px;line-height:1.35}.cvco-app .cvco-message--type-cta .cvco-message__body{display:flex;flex-direction:column;width:100%;padding:10px 15px 15px;background-color:#223182}.cvco-app .cvco-message--type-card .cvco-message__body{display:flex;flex-direction:column;width:100%;padding:0}.cvco-app .cvco-message--type-carousel .cvco-message__body{display:block;padding:0}.cvco-app .cvco-message-count{display:flex;position:absolute;z-index:1;top:-10px;right:-10px;align-items:center;justify-content:center;width:25px;height:25px;transform:scale(1);transform-origin:50% 50%;transition:transform .3s cubic-bezier(.175,.885,.32,1.275) .5s,opacity .3s ease;border-radius:50%;opacity:1;background-color:#db1639;color:#fff;font-size:12px;font-weight:700;line-height:1}.cvco-app .cvco-message-count:empty{transform:scale(0);transition:transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-suggestions{width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;overscroll-behavior:contain}.cvco-app .cvco-suggestions--aside{flex-direction:column;max-height:320px;padding:20px;overflow:hidden;transition:max-height .3s ease,padding .3s ease,transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-suggestions--aside.cvco-transition--visible{display:flex}.cvco-app .cvco-suggestions--aside.cvco-transition--in{transition:padding .3s ease .2s,transform .3s ease .2s,opacity .3s ease .2s;opacity:1}@media(min-width:641px){.cvco-app .cvco-suggestions--aside.cvco-transition--in{transform:translateX(0)}}@media(min-width:641px){.cvco-app .cvco-suggestions--aside{flex:0 0 50%;width:50%;height:640px;min-height:100%;max-height:90vh;transform:translateX(-100%)}}@media(min-width:1025px){.cvco-app .cvco-suggestions--aside{flex:0 0 33%;width:33%}}.cvco-app .cvco-suggestions__heading{flex:0 0 auto;margin:0 0 10px;color:#003a5d;font-size:18px;font-weight:700}.cvco-app .cvco-suggestions__list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;height:auto;overscroll-behavior:contain}.cvco-app .cvco-suggestions--aside .cvco-suggestions__list{flex:1 1 100%;flex-flow:column nowrap;height:100%;max-height:100%;overflow-y:auto}.cvco-app .cvco-suggestions__item{display:block;flex:0 0 auto;max-width:100%;margin:0 5px 5px 0}.cvco-app .cvco-suggestions--aside .cvco-suggestions__item{width:100%;margin-right:0}.cvco-app .cvco-suggestions__item .cvco-icon{display:none}.cvco-app .cvco-suggestions__footer.cvco-suggestions__footer{display:block;width:100%;margin:5px 0 0;color:#003a5d;font-size:16px;font-weight:700}.cvco-app .cvco-window-open-button{display:none;position:fixed;z-index:1;right:20px;bottom:20px;width:48px;height:48px;padding:0;transform:scale(0);transform-origin:100% 100%;transition:transform .3s ease;border:1px solid #a3b4bf;border-radius:10px;opacity:0;background-color:#003a5d;box-shadow:0 0 20px 0 rgba(0,0,0,.1)}.cvco-app .cvco-window-open-button.cvco-transition--visible{display:block}.cvco-app .cvco-window-open-button.cvco-transition--in{transform:scale(1);transition:transform .3s ease .2s;opacity:1}.cvco-app .cvco-window-open-button .cvco-avatar,.cvco-app .cvco-window-open-button .cvco-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;border-radius:10px}.cvco-app .cvco-pre-chat-messages{list-style:none;margin:0;padding:0}.cvco-app .cvco-unstarted-wrapper .cvco-pre-chat-messages{display:none}.cvco-app .cvco-unstarted-wrapper.cvco-transition--visible .cvco-pre-chat-messages{display:block}.cvco-app .cvco-unstarted-wrapper--inline .cvco-pre-chat-messages{transition:opacity .3s ease;opacity:0}.cvco-app .cvco-unstarted-wrapper--inline.cvco-transition--in .cvco-pre-chat-messages{transition:opacity .3s ease .2s;opacity:1}.cvco-app .cvco-unstarted-wrapper--window .cvco-pre-chat-messages{transform:scale(0);transform-origin:100% 100%;transition:transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-unstarted-wrapper--window.cvco-transition--in .cvco-pre-chat-messages{transform:scale(1);transition:transform .3s ease .2s,opacity .3s ease .2s;opacity:1}.cvco-app .cvco-unstarted-wrapper:empty{display:none}.cvco-app .cvco-unstarted-wrapper--window{position:fixed;z-index:1;right:30px;bottom:78px;max-width:calc(100% - 60px)}@media(min-width:641px){.cvco-app .cvco-unstarted-wrapper--window{max-width:280px}}.cvco-app .cvco-unstarted-wrapper--inline{display:none;width:100%;max-height:0;overflow:hidden;transition:margin .3s ease,max-height .3s ease}@media(min-width:1025px){.cvco-app .cvco-unstarted-wrapper--inline{width:67%}}.cvco-app .cvco-unstarted-wrapper--inline.cvco-transition--visible{display:block}.cvco-app .cvco-unstarted-wrapper--inline.cvco-transition--in{max-height:600px;margin-bottom:20px}.cvco-app .cvco-visually-hidden,.cvco-app__live-container .cvco-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.cvco-modal{display:flex;position:fixed;z-index:99;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;width:100%;min-width:100%;height:100%;min-height:100%;padding:20px;transform:scale(1);opacity:1;background-color:hsla(0,0%,100%,.8)}.cvco-modal,.cvco-modal *,.cvco-modal :after,.cvco-modal :before{box-sizing:border-box}.cvco-modal__float{max-width:80rem;padding:5px;border:1px solid #dee3e5;border-radius:10px;outline:0;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1)}.cvco-modal__float,.cvco-modal__inner{position:relative;width:100%;height:100%}.cvco-modal__inner{display:flex;align-items:center;justify-content:center;padding:10px}.cvco-modal__image{display:block;flex:0 0 auto;width:auto;max-width:100%;max-height:100%;border:1px solid #dee3e5}.cvco-modal__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;position:absolute;top:20px;right:20px;align-items:center;min-height:40px;padding:5px 15px;border:0;border-radius:5px;background-color:#4a48c1;color:#fff;font-weight:700}.cvco-modal__close .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:10px}.cvco-modal__close .cvco-icon svg{width:inherit;height:inherit}.cvco-modal__close .cvco-icon svg path{transition:fill .3s ease;fill:#fff}.cvco-modal__enlarge{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;position:absolute;right:20px;bottom:20px;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background-color:#fff;color:transparent;font-size:0}.cvco-modal__enlarge .cvco-icon svg path{fill:#4a48c1}
1
+ @-webkit-keyframes cvco-loader{0%,75%,to{transform:scaleY(.45);border-radius:50%}37.5%{transform:scaleY(1);border-radius:2.5px}}@keyframes cvco-loader{0%,75%,to{transform:scaleY(.45);border-radius:50%}37.5%{transform:scaleY(1);border-radius:2.5px}}@-webkit-keyframes cvco-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes cvco-fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes cvco-blink{0%,to{opacity:0}50%{opacity:1}}@keyframes cvco-blink{0%,to{opacity:0}50%{opacity:1}}.cvco-app .cvco-chat{display:flex;flex-direction:column;transform-origin:100% 100%;transition:margin .3s ease,height .3s ease,transform .3s ease,opacity .3s ease;outline:0;color:#3d4166;font-family:arial,helvetica,sans-serif;font-size:12px}.cvco-app .cvco-chat,.cvco-app .cvco-chat *,.cvco-app .cvco-chat :after,.cvco-app .cvco-chat :before{box-sizing:border-box}.cvco-app .cvco-chat--layout-inline{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;background-color:transparent;background-color:initial;box-shadow:none}@media(min-width:641px){.cvco-app .cvco-chat--layout-inline{flex-direction:row}}.cvco-app .cvco-chat--layout-inline.cvco-chat--collapsed .cvco-chat-wrapper{height:auto}.cvco-app .cvco-chat--layout-window{max-width:calc(100vw - 40px);max-height:calc(85vh - 40px);display:none;position:fixed;z-index:1;right:20px;bottom:20px;width:360px;max-width:calc(100% - 40px);height:720px;transform:scale(0);opacity:0}@media(min-width:641px){.cvco-app .cvco-chat--layout-window{max-height:calc(100vh - 40px)}@supports(-webkit-overflow-scrolling:touch){.cvco-app .cvco-chat--layout-window{max-height:calc(90vh - 40px)}}}@media(min-width:1025px){.cvco-app .cvco-chat--layout-window{right:20px;bottom:20px;max-height:calc(100vh - 40px)}@supports(-webkit-overflow-scrolling:touch){.cvco-app .cvco-chat--layout-window{max-height:calc(90vh - 40px)}}}.cvco-app .cvco-chat--layout-window.cvco-transition--visible{display:flex}.cvco-app .cvco-chat--layout-window.cvco-transition--in{transform:scale(1);opacity:1}.cvco-app .cvco-chat--layout-app{position:fixed;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;max-width:100%;height:100%;max-height:100%}.cvco-app .cvco-chat-wrapper{display:flex;position:relative;z-index:1;flex-direction:column;width:100%;height:100%;overflow:hidden;transition:flex .3s ease,width .3s ease,height .3s ease,border-radius .3s ease;border:1px solid #a3b4bf;border-radius:10px;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1)}.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper{width:100%;height:0}@media(min-width:641px)and (max-width:1023px){.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper{flex:0 0 100%}.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper:not(:only-child){flex:0 0 50%;width:50%}}@media(min-width:1025px){.cvco-app .cvco-chat--layout-inline .cvco-chat-wrapper{flex:0 0 67%;width:67%}}.cvco-app .cvco-chat--layout-inline.cvco-transition--in .cvco-chat-wrapper{height:640px;max-height:90vh}.cvco-app .cvco-chat__container{display:flex;position:relative;flex-direction:column;width:100%;height:100%}.cvco-app .cvco-chat__body{display:flex;position:relative;flex-grow:4;padding:0;overflow-y:auto}.cvco-app .cvco-chat--layout-window .cvco-chat__body{overscroll-behavior:contain}.cvco-app .cvco-chat__entry{position:relative;flex:0 0 auto;padding:10px;border-top:1px solid #dee3e5}.cvco-app .cvco-chat__entry .cvco-entry__body--hidden{display:none}.cvco-app .cvco-chat--layout-inline.cvco-chat--collapsed .cvco-chat__entry{border:0}.cvco-app .cvco-entry__body{display:flex;align-items:center}.cvco-app p{margin:0}.cvco-app img{max-width:100%}.cvco-app .cvco-input__checkbox{margin-right:10px}.cvco-app .cvco-input__checkbox[aria-disabled=true]{opacity:.5}.cvco-app .cvco-label{display:block;margin-bottom:5px;color:#4a48c1;font-size:14px;font-weight:700}.cvco-app .cvco-input__checkbox[aria-disabled=true]+.cvco-label{opacity:.5}.cvco-app .cvco-input__select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:40px;padding:10px;border:1px solid #dee3e5;border-radius:5px;background-color:#fff;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iIzRBNDhDMSIgZD0iTTIuOTk4IDYuNTAzYS45OTkuOTk5IDAgMDExLjY4Ny0uNzI3TDcuMjcgOC4yMjJjLjM5NC4zNzMgMS4wNi4zNzMgMS40NTQgMGwyLjU4Ni0yLjQ0NmEuOTk5Ljk5OSAwIDExMS4zNzQgMS40NTRsLTIuNTg2IDIuNDQ2Yy0xLjE1OSAxLjA5Ni0zLjA0MyAxLjA5Ni00LjIwMyAwTDMuMzEgNy4yMjlhLjk5NC45OTQgMCAwMS0uMzEyLS43MjZ6Ii8+PC9zdmc+");background-repeat:no-repeat;background-position:right 10px top 50%;background-size:15px auto;color:#3d4166;font-size:16px;resize:none}.cvco-app .cvco-input__select[aria-disabled=true]{border:1px solid #a3b4bf;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2EzYjRiZiIgZD0iTTIuOTk4IDYuNTAzYS45OTkuOTk5IDAgMDExLjY4Ny0uNzI3TDcuMjcgOC4yMjJjLjM5NC4zNzMgMS4wNi4zNzMgMS40NTQgMGwyLjU4Ni0yLjQ0NmEuOTk5Ljk5OSAwIDExMS4zNzQgMS40NTRsLTIuNTg2IDIuNDQ2Yy0xLjE1OSAxLjA5Ni0zLjA0MyAxLjA5Ni00LjIwMyAwTDMuMzEgNy4yMjlhLjk5NC45OTQgMCAwMS0uMzEyLS43MjZ6Ii8+PC9zdmc+");color:#a3b4bf}.cvco-app .cvco-avatar{display:block;position:relative;flex-shrink:0;width:32px;height:32px;overflow:hidden;border-radius:5px}.cvco-app .cvco-avatar>.cvco-icon,.cvco-app .cvco-avatar__graphic{display:block}.cvco-app .cvco-conversation__message+.cvco-avatar{align-self:flex-end;margin-left:10px}.cvco-app .cvco-button{display:inline-block;margin:0;padding:0;border:0;background:none;font-size:14px;text-align:left;cursor:pointer}.cvco-app .cvco-button span{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit}.cvco-app .cvco-button--primary{min-height:40px;padding:10px 15px;border-radius:5px;background-color:#4a48c1;color:#fff;font-weight:700}.cvco-app .cvco-button--secondary{padding:10px 15px;color:#4a48c1;font-weight:700}.cvco-app .cvco-button--tertiary{padding:2px 5px;border-radius:5px;background-color:transparent;background-color:initial;color:#fff;font-size:12px;font-weight:700}.cvco-app .cvco-button[aria-disabled=true]{color:#5e727b;cursor:auto}.cvco-app .cvco-button__state{display:inline-block;margin:-3px -3px -3px 3px;padding:3px 5px;border-radius:5px;background-color:#eff3f6;color:inherit}.cvco-app .cvco-choice-prompt{display:flex;flex-direction:column;padding:0}.cvco-app .cvco-choice-prompt__item{display:block;width:100%;margin-top:5px;margin-left:0}.cvco-app .cvco-choice-prompt__item:first-child{margin-top:0}.cvco-app .cvco-choice-prompt__item .cvco-button{display:inline-block;white-space:normal}.cvco-app .cvco-choice-prompt__item--secondary .cvco-button{padding:5px 0;background-color:transparent;background-color:initial;color:#4a48c1}.cvco-app .cvco-button--choose-again{display:flex;align-items:center;margin:5px 0 10px;padding:0}.cvco-app .cvco-button--choose-again:last-child{margin-bottom:0}.cvco-app .cvco-button--choose-again .cvco-icon{display:flex;flex:0 0 8px;align-items:center;justify-content:center;width:8px;height:8px;margin:0 10px;transform-origin:50% 50%;transition:transform .3s ease}.cvco-app .cvco-button--choose-again .cvco-icon path{fill:currentcolor}.cvco-app .cvco-button--choose-again[aria-expanded=true] .cvco-icon{transform:rotate(180deg)}.cvco-app .cvco-conversation__container{display:flex;position:absolute;top:0;right:0;bottom:0;left:0;flex:1 1 100%;flex-direction:column;justify-content:space-between;height:100%;max-height:100%}.cvco-app .cvco-conversation{list-style:none;width:100%;margin:auto 0 0;padding:20px 20px 0}.cvco-app .cvco-conversation:after{content:"";display:block;flex:0 0 100%;width:100%;height:20px}.cvco-app .cvco-chat-status~.cvco-chat__container .cvco-conversation{padding-top:80px}.cvco-app .cvco-chat-status~.cvco-chat__container .cvco-disclaimer+.cvco-conversation{padding-top:0}.cvco-app .cvco-chat--layout-inline .cvco-conversation{position:relative}.cvco-app .cvco-conversation__item{width:100%;min-height:0;margin-top:10px}.cvco-app .cvco-conversation__item--new-participant{margin-top:20px}.cvco-app .cvco-conversation__item--new-participant:first-child{margin-top:0}.cvco-app .cvco-conversation__item--source-info{margin-top:20px;margin-bottom:20px}.cvco-app .cvco-conversation__item--source-info:last-child{margin-bottom:0}.cvco-app .cvco-divider{display:flex;position:relative;justify-content:center;margin:20px -20px 0;padding:65px 30px 0;overflow:hidden;background:linear-gradient(180deg,#fff,#eff3f6);background-repeat:no-repeat;background-size:100% 40px;line-height:1.5}.cvco-app .cvco-divider:before{content:"";position:absolute;top:0;left:50%;width:100%;height:40px;transform:translateX(-50%);background:radial-gradient(110px at 50%,at 300%,rgba(74,72,193,.5) 0,hsla(0,0%,100%,0) 99.99%,rgba(74,72,193,0) 100%);background:radial-gradient(110px at 50% 300%,rgba(74,72,193,.5) 0,hsla(0,0%,100%,0) 99.99%,rgba(74,72,193,0) 100%);background-repeat:no-repeat}.cvco-app .cvco-divider--type-time-indicator{padding-top:60px;padding-bottom:20px}.cvco-app .cvco-divider--type-time-indicator:before{display:none}.cvco-app .cvco-conversation__item:first-child .cvco-divider{margin-top:0;padding-bottom:10px}.cvco-app .cvco-divider__graphic{position:absolute;top:40px;left:50%;width:32px;height:32px;transform:translate(-50%,-60%);border-radius:5px;background:#fff}.cvco-app .cvco-divider__graphic .cvco-avatar,.cvco-app .cvco-divider__graphic .cvco-icon,.cvco-app .cvco-divider__graphic .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-divider__body{font-size:12px;text-align:center}.cvco-app .cvco-divider__time{text-align:center}.cvco-app .cvco-divider__time span{display:block}.cvco-app .cvco-divider__time span:first-of-type{font-weight:700}.cvco-app .cvco-divider--type-newtranslation{text-align:center}.cvco-app .cvco-divider--type-newtranslation .cvco-divider__body{max-width:80%}.cvco-app .cvco-divider--type-newtranslation .cvco-divider__title{font-weight:700}.cvco-app .cvco-divider .cvco-button{padding:0;font-size:inherit}.cvco-app .cvco-loader{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:20px;padding:2.5px 5px;-webkit-animation:cvco-fadeIn .3s linear;animation:cvco-fadeIn .3s linear}.cvco-app .cvco-loader__part{display:inline-block;width:6.666px;height:100%;margin-right:5px;transform:scaleY(.45);-webkit-animation-name:cvco-loader;animation-name:cvco-loader;-webkit-animation-duration:.6s;animation-duration:.6s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-delay:.12s;animation-delay:.12s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;border-radius:50%;background-color:currentcolor}.cvco-app .cvco-loader__part.cvco-one{-webkit-animation-delay:.12s;animation-delay:.12s}.cvco-app .cvco-loader__part.cvco-two{-webkit-animation-delay:.24s;animation-delay:.24s}.cvco-app .cvco-loader__part.cvco-three{-webkit-animation-delay:.36s;animation-delay:.36s}.cvco-app .cvco-loader__part.cvco-four{margin-right:0;-webkit-animation-delay:.48s;animation-delay:.48s}.cvco-app .cvco-message{display:flex;flex-flow:row wrap;width:80%}.cvco-app .cvco-message.cvco-message--type-suggestions,.cvco-app .cvco-unstarted-wrapper--window .cvco-message{width:100%}.cvco-app .cvco-message+.cvco-message{margin-top:10px}.cvco-app .cvco-message--source-info.cvco-message{width:90%;max-width:90%;margin:0 auto}.cvco-app .cvco-message--source-info.cvco-message:after{content:"";display:block;width:20px;height:0;margin:0 auto;border-top:2px solid #4a48c1}.cvco-app .cvco-message--source-user{justify-content:flex-end;margin-left:auto}.cvco-app .cvco-message__author{display:none;flex-direction:row;align-items:center;justify-content:flex-start;width:100%;margin-bottom:.3rem;padding:0 10px;font-weight:700}.cvco-app .cvco-message--source-user .cvco-message__author{justify-content:flex-end}.cvco-app .cvco-message__avatar{width:16px;height:16px;margin:0 .5em 0 0}.cvco-app .cvco-message__avatar .cvco-avatar{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.cvco-app .cvco-conversation__item--new-participant .cvco-message__author{display:flex}.cvco-app .cvco-message--source-user .cvco-message__avatar{order:2;margin:0 0 0 10px}.cvco-app .cvco-message--source-user .cvco-message__author-name{order:1}.cvco-app .cvco-message__info{width:100%;margin-top:4px;color:#6a7f8c;font-size:12px;line-height:1.35}.cvco-app .cvco-message--source-user .cvco-message__info{text-align:right}.cvco-app .cvco-message__translation-info{width:100%}.cvco-app.cvco-app--collapsed .cvco-message__translation-info{display:none}.cvco-app .cvco-message__translation-label{margin-right:5px;font-size:12px}.cvco-app .cvco-button.cvco-message__translation-toggle{padding:0;font-size:inherit}.cvco-app .cvco-message--source-user .cvco-message__translation-info{text-align:right}.cvco-app .cvco-card__wrapper{display:flex;flex-direction:column;height:100%}.cvco-app .cvco-card__image{flex:0 0 auto;width:100%;height:160px;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;overflow:hidden;border-top-left-radius:10px;border-top-right-radius:10px}.cvco-app .cvco-card__content{display:flex;flex:1 1 auto;flex-wrap:wrap;padding:10px 15px 15px}.cvco-app .cvco-card__title{display:block;flex:0 0 100%;width:100%;margin:0 0 5px;padding:0;font-size:16px;font-weight:700}.cvco-app .cvco-card__title:last-child{margin-bottom:0}.cvco-app .cvco-card__description{display:block;width:100%;margin-bottom:20px}.cvco-app .cvco-card__description:last-child{margin-bottom:0}.cvco-app .cvco-card__content .cvco-button{display:block;align-self:flex-end;width:100%;font-weight:700;text-decoration:none}.cvco-app .cvco-carousel{position:relative}.cvco-app .cvco-carousel__slides-wrapper{display:block;width:100%;overflow:hidden}.cvco-app .cvco-carousel__slides{display:flex;position:relative;flex-direction:row;padding:0;transition:left .3s ease;list-style:none}.cvco-app .cvco-carousel__slide{display:block;width:100%;padding:0;list-style:none}.cvco-app .cvco-carousel-item{display:flex;flex-direction:column;width:100%;height:100%}.cvco-app .cvco-carousel-item .cvco-button{display:block;width:100%}.cvco-app .cvco-carousel-controls{display:flex;position:relative;align-items:center;justify-content:space-between;width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:0;border-top:1px solid #dee3e5}.cvco-app .cvco-carousel-controls .cvco-button{display:flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;background-color:transparent;background-color:initial;color:transparent;font-size:0}.cvco-app .cvco-carousel-controls .cvco-button--previous{left:0}.cvco-app .cvco-carousel-controls .cvco-button--next{right:0}.cvco-app .cvco-carousel__controls .cvco-button .cvco-icon{display:block;width:16px;height:16px;padding:0;border:0}.cvco-app .cvco-carousel__controls .cvco-button .cvco-icon svg path{fill:#4a48c1}.cvco-app .cvco-carousel__pagination{display:flex;position:relative;align-items:center;justify-content:center;padding:0 10px}.cvco-app .cvco-carousel-pagination__wrapper{display:flex;position:relative;flex-direction:row;justify-content:center}.cvco-app .cvco-carousel-pagination{display:flex;position:relative;flex-flow:row wrap;justify-content:center;width:100%;margin:0 auto;padding:0}.cvco-app .cvco-carousel-pagination__item{display:block;list-style:none}.cvco-app .cvco-carousel-pagination__button{display:block;position:relative;width:24px;height:24px;padding:0;border:0;border-radius:0;background-color:transparent;background-color:initial}.cvco-app .cvco-carousel-pagination__button:before{content:"";display:block;position:absolute;top:50%;left:50%;width:9.6px;height:9.6px;transform:translate(-50%,-50%);transform-origin:50% 50%;border-radius:50%;background-color:#a3b4bf}.cvco-app .cvco-is-active .cvco-carousel-pagination__button:before{background-color:#003a5d}.cvco-app .cvco-cta__content{margin-bottom:10px;color:#fff;font-size:14px;line-height:1.5}.cvco-app .cvco-cta__content p{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit}.cvco-app .cvco-message--type-cta .cvco-button{margin-bottom:10px;line-height:2;text-decoration:none}.cvco-app .cvco-message--type-cta .cvco-button:last-child{margin-bottom:0}.cvco-app .cvco-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;line-height:1}.cvco-app .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-form,.cvco-app .cvco-input{display:flex;flex:1 1 100%;width:100%;height:100%}.cvco-app .cvco-input--text__container{display:flex;position:relative;flex:1 1 100%;height:100%;margin-right:5px}.cvco-app .cvco-input__text{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-grow:4;height:40px;margin-right:5px;padding:10px;transition:padding .3s ease;border:1px solid transparent;border-radius:5px;color:#3d4166;font-size:16px;resize:none}.cvco-app .cvco-input__text::input-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input__text::-moz-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input__text::placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input__text:input-placeholder,.cvco-app .cvco-input__text:placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-input--text__container .cvco-input__text{width:100%;margin-right:0}.cvco-app .cvco-character-exceeded .cvco-input__text,.cvco-app .cvco-character-warning .cvco-input__text{padding-right:40px}.cvco-app .cvco-character-exceeded .cvco-input__text{border:1px solid #db1639}.cvco-app .cvco-input__submit{display:flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:5px}.cvco-app .cvco-input__submit[aria-disabled=true]{cursor:auto}.cvco-app .cvco-input__submit .cvco-icon path{transition:fill .3s ease;fill:#4a48c1}.cvco-app .cvco-input__submit[aria-disabled=true] .cvco-icon path{fill:#a3b4bf}.cvco-app .cvco-interrupt{display:flex;position:absolute;top:0;right:0;bottom:0;left:0;background:#fff}.cvco-app.cvco-app--layout-inline.cvco-app--collapsed .cvco-interrupt{position:static;width:100%;border-radius:10px}@media(min-width:1025px){.cvco-app.cvco-app--layout-inline.cvco-app--collapsed .cvco-interrupt{width:67%}}.cvco-app .cvco-interrupt__body{display:flex;flex:1 1 auto;flex-direction:column;align-items:left;justify-content:center;padding:40px;text-align:left}.cvco-app .cvco-chat .cvco-interrupt__body{margin:10px}.cvco-app .cvco-interrupt__title{margin:0 0 20px;font-size:16px;font-weight:700}.cvco-app .cvco-interrupt__message{margin-bottom:40px;font-size:16px}.cvco-app .cvco-interrupt__message:last-child{margin-bottom:0}.cvco-app .cvco-interrupt__actions{margin-top:auto}.cvco-app .cvco-skip-link{position:absolute;z-index:100;top:20px;left:50%;padding:10px 15px;transform:translate(-50%,-5px) scale(0);transform-origin:50% 0;transition:transform .3s ease,opacity .3s ease;border:1px solid #fff;border-radius:5px;opacity:0;background:#4a48c1;color:#fff;font-size:12px}.cvco-app .cvco-skip-link:focus{transform:translate(-50%) scale(1);opacity:1}.cvco-app .cvco-disclaimer{display:block;flex:0 0 auto;width:100%;height:auto;padding:20px;background-color:#eff3f6}.cvco-app .cvco-chat--layout-window .cvco-disclaimer{padding-right:80px}.cvco-app .cvco-chat-status~.cvco-chat__container .cvco-disclaimer{margin-top:80px;padding:10px 20px}.cvco-app .cvco-disclaimer__title{margin:0 0 5px;padding-right:20px;font-size:12px;font-weight:700;line-height:1}.cvco-app .cvco-disclaimer__message{font-size:12px;line-height:1.25}.cvco-app .cvco-idle{display:flex;flex-direction:column;align-items:center;justify-content:space-between;max-height:none;padding:10px}.cvco-app .cvco-idle__title{margin-top:0;margin-bottom:5px;font-size:16px;font-weight:700;text-align:center}.cvco-app .cvco-idle__title:last-child{margin-bottom:0}.cvco-app .cvco-idle__count-container{display:block;width:100%;height:2.75em;margin-bottom:10px;font-size:12px}.cvco-app .cvco-idle__count-text,.cvco-app .cvco-idle__count-timer{display:block;width:100%;font-size:inherit;text-align:center;white-space:nowrap}.cvco-app .cvco-idle__options{display:flex;flex-wrap:wrap;justify-content:center;width:100%;margin:0;padding:0;list-style-type:none}.cvco-app .cvco-idle__options .cvco-button{margin:5px 5px 0;text-align:center;white-space:normal}.cvco-app .cvco-prompt{display:flex;flex-direction:column;align-items:center;justify-content:space-between;max-height:none;padding:10px}.cvco-app .cvco-prompt__title{margin-top:0;margin-bottom:5px;font-size:16px;font-weight:700;text-align:center}.cvco-app .cvco-prompt__title:last-child{margin-bottom:0}.cvco-app .cvco-prompt__options{display:flex;flex-wrap:wrap;justify-content:center;width:100%;margin:0;padding:0;list-style-type:none}.cvco-app .cvco-prompt__options .cvco-button{margin:5px 5px 0;text-align:center;white-space:normal}.cvco-app .cvco-chat__options{display:flex;position:relative;flex:0;align-items:center;justify-content:flex-end;width:100%;padding:5px;border-top:1px solid #dee3e5}.cvco-app .cvco-chat__options-item--left{margin-right:auto}.cvco-app .cvco-chat__options__button{display:flex;align-items:center;justify-content:flex-end;padding:5px 10px;border-radius:5px}.cvco-app .cvco-chat__options__button .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:5px}.cvco-app .cvco-chat__options__button .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-chat__options__button .cvco-icon path{fill:currentcolor}.cvco-app .cvco-options__menu{display:none;position:absolute;right:10px;bottom:calc(100% + 10px);max-width:300px;max-height:400px;margin:0;padding:10px;transform:scaleY(0) translateY(100px);transform-origin:100% 100%;transition:transform .2s ease-in-out,opacity .2s ease;border:1px solid #dee3e5;border-radius:5px;opacity:0;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1);list-style:none}.cvco-app .cvco-options__menu.cvco-transition--visible{display:block}.cvco-app .cvco-options__menu.cvco-transition--in{transform:scaleY(1) translateY(0);opacity:1}.cvco-app .cvco-options__menu__item{margin-bottom:5px;transition:opacity .1s ease .1s;opacity:0}.cvco-app .cvco-options__menu__item:last-child{margin-bottom:0}.cvco-app .cvco-options__menu.cvco-transition--in .cvco-options__menu__item{opacity:1}.cvco-app .cvco-options__menu .cvco-button{display:flex;align-items:center;width:100%;min-width:200px;border-radius:5px}.cvco-app .cvco-options{display:none;position:absolute;right:10px;bottom:calc(100% + 10px);flex-direction:column;width:calc(100% - 20px);max-width:300px;margin:0;padding:0;transform:scaleY(0) translateY(100px);transform-origin:100% 100%;transition:transform .2s ease-in-out,opacity .2s ease;border:1px solid #dee3e5;border-radius:5px;opacity:0;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1);list-style:none}.cvco-app .cvco-options--left{right:auto;left:10px}.cvco-app .cvco-options--right{right:10px}.cvco-app .cvco-options__dialog.cvco-transition--visible .cvco-options{display:flex}.cvco-app .cvco-options__dialog.cvco-transition--in .cvco-options{transform:scaleY(1) translateY(0);opacity:1}.cvco-app .cvco-options__body{display:flex;flex-direction:column;max-height:300px;transition:opacity .1s ease .1s;opacity:0}.cvco-app .cvco-options__dialog.cvco-transition--in .cvco-options__body{opacity:1}.cvco-app .cvco-options__title{display:flex;flex:0 0 auto;align-items:center;width:calc(100% - 50px);margin:0;padding:20px 20px 10px;color:#223182;font-size:16px;font-weight:700}.cvco-app .cvco-options__close{display:flex;position:absolute;top:10px;right:10px;align-items:center;justify-content:center;width:40px;height:40px;color:#4a48c1;font-size:0}.cvco-app .cvco-options__close .cvco-icon{flex:0 0 16px;width:16px;height:16px}.cvco-app .cvco-options__close .cvco-icon path{fill:currentcolor}.cvco-app .cvco-options__form{flex:1 1 auto;flex-direction:column}.cvco-app .cvco-options__wrapper{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:flex-start;width:100%;padding:0 20px;overflow:auto}.cvco-app .cvco-options__wrapper:last-child:after{content:"";display:block;flex:0 0 100%;width:100%;height:20px}.cvco-app .cvco-options__body div{width:100%}.cvco-app .cvco-options__wrapper h3{margin:0;color:#223182;font-size:14px;font-weight:700}.cvco-app .cvco-options__description{display:block;width:100%;margin-bottom:10px;font-size:14px}.cvco-app .cvco-transcript__input{width:100%;min-height:40px;padding:10px;transition:padding .3s ease;border:1px solid #dee3e5;border-radius:5px;font-size:16px}.cvco-app .cvco-transcript__input:focus{border:1px solid #dee3e5}.cvco-app .cvco-transcript__input::input-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-transcript__input::-moz-placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-transcript__input::placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-transcript__input:input-placeholder,.cvco-app .cvco-transcript__input:placeholder{overflow:visible;color:#a3b4bf;line-height:20px}.cvco-app .cvco-options__active-language{color:#3d4166;font-size:14px}.cvco-app .cvco-options__actions{display:flex;flex:0 0 auto;justify-content:flex-end;width:100%;margin-top:10px;padding:0}.cvco-app .cvco-options__actions .cvco-button{width:100%;margin-right:10px}.cvco-app .cvco-options__actions .cvco-button:last-child{margin-right:0}.cvco-app .cvco-chat-status{display:flex;position:absolute;z-index:1;top:20px;left:20px;align-items:center;justify-content:space-between;width:calc(100% - 40px);height:40px;min-height:40px;padding:5px 20px;border-radius:20px;background-color:#fff;box-shadow:0 5px 30px rgba(53,75,90,.15),0 3px 10px rgba(53,75,90,.2)}.cvco-app.cvco-app--collapsed .cvco-chat-status{display:none}.cvco-app .cvco-chat--layout-window .cvco-chat-status{width:calc(100% - 90px)}.cvco-app .cvco-chat-status__title{display:flex;flex:1;align-items:center;margin:0 10px 0 0;color:#3d4166;font-size:12px;font-weight:700;line-height:1.25}.cvco-app .cvco-chat-status .cvco-button--tertiary{color:#4a48c1}.cvco-app .cvco-upload-toggle-wrapper{width:0;height:100%;overflow:visible;transition:width .3s ease}.cvco-app .cvco-upload-toggle-wrapper.cvco-transition--in{width:50px}.cvco-app .cvco-upload-toggle{display:flex;flex:0 0 40px;flex-direction:column;align-items:center;justify-content:center;width:40px;height:40px;padding:0;transform:translateX(-100%);transition:transform .3s ease,opacity .3s ease;border-radius:5px;opacity:0;color:transparent;font-size:0;line-height:1;text-align:center}.cvco-app .cvco-upload-toggle-wrapper.cvco-transition--in .cvco-upload-toggle{transform:translateX(0);opacity:1}.cvco-app .cvco-upload-toggle .cvco-icon{flex:0 0 24px;width:24px;height:24px}.cvco-app .cvco-upload-toggle .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-upload{width:100%;padding:10px 10px 0}.cvco-app .cvco-upload-form{display:block}.cvco-app .cvco-upload__container{width:100%;margin-bottom:10px}.cvco-app .cvco-upload__visible-label--text{display:block;width:100%;font-size:16px;font-weight:700}.cvco-app .cvco-upload__content-hint{display:block;width:100%;margin-bottom:10px;padding-right:20px;font-size:12px}.cvco-app .cvco-file-upload{width:100%;max-width:100%;border:1px solid #4a48c1;border-radius:5px}.cvco-app .cvco-file-upload.cvco-focus-within{outline:1px dotted #212121;outline:5px auto -webkit-focus-ring-color}.cvco-app .cvco-upload__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.cvco-app .cvco-upload__label{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:10px;color:#4a48c1;text-align:left}.cvco-app .cvco-upload__label .cvco-icon{flex:0 0 32px;width:32px;height:32px;margin-right:10px}.cvco-app .cvco-upload__label .cvco-icon path{fill:currentcolor}.cvco-app .cvco-upload__label--text{display:block;flex:1 1 100%;max-width:100%;color:inherit;font-size:14px;font-weight:700}.cvco-app .cvco-upload__output{display:block;flex:1 1 100%;max-width:100%;color:#003a5d;font-size:12px;word-break:break-all}.cvco-app .cvco-upload .cvco-button--primary{text-align:center}.cvco-app .cvco-upload__button-container{display:flex;flex:0 0 100%;justify-content:flex-end}.cvco-app .cvco-upload__cancel{margin-right:5px;padding:10px}.cvco-app .cvco-upload__cancel:last-child{margin-right:0}.cvco-app .cvco-progress__text{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:5px}.cvco-app .cvco-progress__text--file-name{max-width:calc(100% - 40px);padding-right:20px;overflow:hidden;font-size:14px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.cvco-app .cvco-progress__text--percentage{color:#6a7f8c;font-size:14px;line-height:1}.cvco-app .cvco-progress .cvco-error{margin-top:10px}.cvco-app .cvco-progress .cvco-error:empty{display:none}.cvco-app .cvco-progress__bar{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border-radius:5px;background:#eff3f6}.cvco-app .cvco-progress__bar::-webkit-progress-bar{border-radius:5px;background:#eff3f6}.cvco-app .cvco-progress__bar::-webkit-progress-value{border-radius:5px;background-color:#4a48c1}.cvco-app .cvco-progress__bar::-moz-progress-bar{background-color:#4a48c1}.cvco-app .cvco-error{display:block;width:100%;margin:0 0 5px}.cvco-app .cvco-error:empty{display:none;margin:0}.cvco-app .cvco-error .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:5px}.cvco-app .cvco-error .cvco-error__message{display:flex;align-items:flex-start;background-color:rgba(219,22,57,.1);color:#ad001f}.cvco-app .cvco-error .cvco-error__message,.cvco-app .cvco-notification{width:100%;padding:5px 10px;border-radius:5px;font-size:12px;font-weight:700}.cvco-app .cvco-notification{display:block;margin:0 0 10px;background-color:rgba(74,72,193,.1);color:#223182}.cvco-app .cvco-notification:last-child{margin:0}.cvco-app .cvco-character-count{display:flex;position:absolute;top:0;right:0;align-items:center;justify-content:right;height:100%;padding:0 10px;transform:translateX(100%);transition:transform .3s ease,opacity .2s ease .2s;opacity:0;font-size:12px;font-weight:700;line-height:1;text-align:right;pointer-events:none}.cvco-app .cvco-character-count span{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;text-align:right}.cvco-app .cvco-character-exceeded .cvco-character-count,.cvco-app .cvco-character-warning .cvco-character-count{transform:translateX(0);opacity:1}.cvco-app .cvco-character-exceeded .cvco-character-count span{color:#db1639}.cvco-app .cvco-collapse-button{display:flex;position:absolute;z-index:1;top:20px;right:20px;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background-color:#fff;box-shadow:0 5px 30px rgba(53,75,90,.15),0 3px 10px rgba(53,75,90,.2)}.cvco-app .cvco-message__body{display:block;position:relative;max-width:100%;margin-bottom:5px;padding:10px 15px;border-radius:10px;background-color:#eff3f6;color:#3d4166}.cvco-app .cvco-message__body .cvco-icon svg path{fill:#3d4166}.cvco-app .cvco-message__body:last-child{margin-bottom:0}.cvco-app .cvco-unstarted-wrapper.cvco-unstarted-wrapper--window .cvco-message__body{margin-left:auto;padding:10px 15px;border:1px solid #fff;border-radius:10px;background-color:#eff3f6;font-size:14px}.cvco-app .cvco-unstarted-wrapper--continue .cvco-message__body{transform:scale(0);transform-origin:100% 100%;transition:transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-unstarted-wrapper--continue.cvco-transition--in .cvco-message__body{transform:scale(1);transition:transform .3s ease .2s,opacity .3s ease .2s;opacity:1}.cvco-app .cvco-conversation__item--source-info .cvco-message__body{flex:0 0 100%;width:100%;padding:0 15px 10px;border-radius:0;background-color:transparent;background-color:initial;text-align:center}.cvco-app .cvco-message--source-user .cvco-message__body{background-color:#223182;color:#fff}.cvco-app .cvco-message--source-user .cvco-message__body .cvco-icon svg path{fill:#fff}.cvco-app .cvco-message--type-splash .cvco-message__body{padding:0;border-radius:0;background-color:transparent;background-color:initial;font-size:24px;font-weight:700}.cvco-app .cvco-message--type-suggestions .cvco-message__body{width:100%;padding:0;background-color:transparent;background-color:initial}.cvco-app .cvco-message--type-splash .cvco-message__body ol,.cvco-app .cvco-message--type-splash .cvco-message__body p,.cvco-app .cvco-message--type-splash .cvco-message__body ul,.cvco-app .cvco-message--type-text .cvco-message__body ol,.cvco-app .cvco-message--type-text .cvco-message__body p,.cvco-app .cvco-message--type-text .cvco-message__body ul{margin:0 0 20px}.cvco-app .cvco-message--type-splash .cvco-message__body ol:last-child,.cvco-app .cvco-message--type-splash .cvco-message__body p:last-child,.cvco-app .cvco-message--type-splash .cvco-message__body ul:last-child,.cvco-app .cvco-message--type-text .cvco-message__body ol:last-child,.cvco-app .cvco-message--type-text .cvco-message__body p:last-child,.cvco-app .cvco-message--type-text .cvco-message__body ul:last-child{margin:0}.cvco-app .cvco-message--type-splash .cvco-message__body ul,.cvco-app .cvco-message--type-text .cvco-message__body ul{padding-left:1.5em}.cvco-app .cvco-message--type-splash .cvco-message__body ul li,.cvco-app .cvco-message--type-text .cvco-message__body ul li{list-style-type:disc}.cvco-app .cvco-message--type-splash .cvco-message__body a,.cvco-app .cvco-message--type-text .cvco-message__body a{color:#4a48c1;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.cvco-app .cvco-message--source-user .cvco-message__body a{color:#fff}.cvco-app .cvco-message--type-loading .cvco-message__body{align-self:flex-start}.cvco-app .cvco-message--type-choice-prompt .cvco-message__body{width:100%;padding:0;background-color:transparent;background-color:initial}.cvco-app .cvco-message--type-image .cvco-message__body{padding:0}.cvco-app .cvco-message--type-image img{display:block;width:100%;height:auto;overflow:hidden;border-radius:10px}.cvco-app .cvco-message--type-video .cvco-message__body{width:100%;padding:0;background-color:#000}.cvco-app .cvco-message--type-video iframe{display:block;width:100%;aspect-ratio:6/4;border:0;border-radius:10px}.cvco-app .cvco-message--type-upload .cvco-message__body{padding:0}.cvco-app .cvco-message--type-upload .cvco-download{display:flex;align-items:center;padding:10px 15px;border-radius:10px;color:inherit;text-align:left;word-break:break-all}.cvco-app .cvco-message--type-upload .cvco-download-link{text-decoration:underline}.cvco-app .cvco-message--type-upload .cvco-download:not(.cvco-download-link) .cvco-file-download{text-decoration:line-through}.cvco-app .cvco-message--type-upload .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:10px}.cvco-app .cvco-message--type-upload .cvco-icon svg{width:100%;height:100%}.cvco-app .cvco-conversation__item--source-agent .cvco-message--type-upload .cvco-icon path{fill:#4a48c1}.cvco-app .cvco-message .cvco-message__info{margin-top:4px;color:#6a7f8c;font-size:12px;line-height:1.35}.cvco-app .cvco-message--type-cta .cvco-message__body{display:flex;flex-direction:column;width:100%;padding:10px 15px 15px;background-color:#223182}.cvco-app .cvco-message--type-card .cvco-message__body{display:flex;flex-direction:column;width:100%;padding:0}.cvco-app .cvco-message--type-carousel .cvco-message__body{display:block;padding:0}.cvco-app .cvco-message-count{display:flex;position:absolute;z-index:1;top:-10px;right:-10px;align-items:center;justify-content:center;width:25px;height:25px;transform:scale(1);transform-origin:50% 50%;transition:transform .3s cubic-bezier(.175,.885,.32,1.275) .5s,opacity .3s ease;border-radius:50%;opacity:1;background-color:#db1639;color:#fff;font-size:12px;font-weight:700;line-height:1}.cvco-app .cvco-message-count:empty{transform:scale(0);transition:transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-suggestions{width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;overscroll-behavior:contain}.cvco-app .cvco-suggestions--aside{flex-direction:column;max-height:320px;padding:20px;overflow:hidden;transition:max-height .3s ease,padding .3s ease,transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-suggestions--aside.cvco-transition--visible{display:flex}.cvco-app .cvco-suggestions--aside.cvco-transition--in{transition:padding .3s ease .2s,transform .3s ease .2s,opacity .3s ease .2s;opacity:1}@media(min-width:641px){.cvco-app .cvco-suggestions--aside.cvco-transition--in{transform:translateX(0)}}@media(min-width:641px){.cvco-app .cvco-suggestions--aside{flex:0 0 50%;width:50%;height:640px;min-height:100%;max-height:90vh;transform:translateX(-100%)}}@media(min-width:1025px){.cvco-app .cvco-suggestions--aside{flex:0 0 33%;width:33%}}.cvco-app .cvco-suggestions__heading{flex:0 0 auto;margin:0 0 10px;color:#003a5d;font-size:18px;font-weight:700}.cvco-app .cvco-suggestions__list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;height:auto;overscroll-behavior:contain}.cvco-app .cvco-suggestions--aside .cvco-suggestions__list{flex:1 1 100%;flex-flow:column nowrap;height:100%;max-height:100%;overflow-y:auto}.cvco-app .cvco-suggestions__item{display:block;flex:0 0 auto;max-width:100%;margin:0 5px 5px 0}.cvco-app .cvco-suggestions--aside .cvco-suggestions__item{width:100%;margin-right:0}.cvco-app .cvco-suggestions__item .cvco-icon{display:none}.cvco-app .cvco-suggestions__footer.cvco-suggestions__footer{display:block;width:100%;margin:5px 0 0;color:#003a5d;font-size:16px;font-weight:700}.cvco-app .cvco-window-open-button{display:none;position:fixed;z-index:1;right:20px;bottom:20px;width:48px;height:48px;padding:0;transform:scale(0);transform-origin:100% 100%;transition:transform .3s ease;border:1px solid #a3b4bf;border-radius:10px;opacity:0;background-color:#003a5d;box-shadow:0 0 20px 0 rgba(0,0,0,.1)}.cvco-app .cvco-window-open-button.cvco-transition--visible{display:block}.cvco-app .cvco-window-open-button.cvco-transition--in{transform:scale(1);transition:transform .3s ease .2s;opacity:1}.cvco-app .cvco-window-open-button .cvco-avatar,.cvco-app .cvco-window-open-button .cvco-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;border-radius:10px}.cvco-app .cvco-pre-chat-messages{list-style:none;margin:0;padding:0}.cvco-app .cvco-unstarted-wrapper .cvco-pre-chat-messages{display:none}.cvco-app .cvco-unstarted-wrapper.cvco-transition--visible .cvco-pre-chat-messages{display:block}.cvco-app .cvco-unstarted-wrapper--inline .cvco-pre-chat-messages{transition:opacity .3s ease;opacity:0}.cvco-app .cvco-unstarted-wrapper--inline.cvco-transition--in .cvco-pre-chat-messages{transition:opacity .3s ease .2s;opacity:1}.cvco-app .cvco-unstarted-wrapper--window .cvco-pre-chat-messages{transform:scale(0);transform-origin:100% 100%;transition:transform .3s ease,opacity .3s ease;opacity:0}.cvco-app .cvco-unstarted-wrapper--window.cvco-transition--in .cvco-pre-chat-messages{transform:scale(1);transition:transform .3s ease .2s,opacity .3s ease .2s;opacity:1}.cvco-app .cvco-unstarted-wrapper:empty{display:none}.cvco-app .cvco-unstarted-wrapper--window{position:fixed;z-index:1;right:30px;bottom:78px;max-width:calc(100% - 60px)}@media(min-width:641px){.cvco-app .cvco-unstarted-wrapper--window{max-width:280px}}.cvco-app .cvco-unstarted-wrapper--inline{display:none;width:100%;max-height:0;overflow:hidden;transition:margin .3s ease,max-height .3s ease}@media(min-width:1025px){.cvco-app .cvco-unstarted-wrapper--inline{width:67%}}.cvco-app .cvco-unstarted-wrapper--inline.cvco-transition--visible{display:block}.cvco-app .cvco-unstarted-wrapper--inline.cvco-transition--in{max-height:600px;margin-bottom:20px}.cvco-app .cvco-visually-hidden,.cvco-app__live-container .cvco-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.cvco-modal{display:flex;position:fixed;z-index:99;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;width:100%;min-width:100%;height:100%;min-height:100%;padding:20px;transform:scale(1);opacity:1;background-color:hsla(0,0%,100%,.8)}.cvco-modal,.cvco-modal *,.cvco-modal :after,.cvco-modal :before{box-sizing:border-box}.cvco-modal__float{max-width:80rem;padding:5px;border:1px solid #dee3e5;border-radius:10px;outline:0;background-color:#fff;box-shadow:0 0 20px 0 rgba(0,0,0,.1)}.cvco-modal__float,.cvco-modal__inner{position:relative;width:100%;height:100%}.cvco-modal__inner{display:flex;align-items:center;justify-content:center;padding:10px}.cvco-modal__image{display:block;flex:0 0 auto;width:auto;max-width:100%;max-height:100%;border:1px solid #dee3e5}.cvco-modal__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;position:absolute;top:20px;right:20px;align-items:center;min-height:40px;padding:5px 15px;border:0;border-radius:5px;background-color:#4a48c1;color:#fff;font-weight:700}.cvco-modal__close .cvco-icon{flex:0 0 16px;width:16px;height:16px;margin-right:10px}.cvco-modal__close .cvco-icon svg{width:inherit;height:inherit}.cvco-modal__close .cvco-icon svg path{transition:fill .3s ease;fill:#fff}.cvco-modal__enlarge{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;position:absolute;right:20px;bottom:20px;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background-color:#fff;color:transparent;font-size:0}.cvco-modal__enlarge .cvco-icon svg path{fill:#4a48c1}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamly/web-ui",
3
- "version": "20.8.0-alpha.1",
3
+ "version": "20.8.0-beta.2",
4
4
  "main": "build/dist/lib/index.js",
5
5
  "types": "build/src/javascripts/index.d.ts",
6
6
  "module": "",
@@ -82,6 +82,7 @@ export type Config = {
82
82
  appContainerClassNames?: string[] | ((config: Config) => string[])
83
83
  zIndex?: number
84
84
  showFaq?: boolean
85
+ showSuggestions?: boolean
85
86
  context?: Context
86
87
  messages?: Messages
87
88
  defaults?: {
@@ -3,6 +3,7 @@ import SeamlySessionExpiredError from 'api/errors/seamly-session-expired-error'
3
3
  import SeamlyUnavailableError from 'api/errors/seamly-unavailable-error'
4
4
  import { Config } from 'config.types'
5
5
  import { initializeConfig, resetConfig } from 'domains/config/actions'
6
+ import { setLocale } from 'domains/i18n/actions'
6
7
  import { ThunkAPI } from 'domains/redux/redux.types'
7
8
  import type { RootState } from 'domains/store'
8
9
  import { initializeVisibility } from 'domains/visibility/actions'
@@ -16,58 +17,61 @@ export const initializeApp = createAsyncThunk<
16
17
  },
17
18
  void,
18
19
  ThunkAPI
19
- >('initializeApp', async (_, { extra: { api, config }, rejectWithValue }) => {
20
- let locale = config?.context?.locale
21
- try {
22
- if (api.hasConversation()) {
23
- const initialState = await api.getConversationIntitialState()
20
+ >(
21
+ 'initializeApp',
22
+ async (_, { extra: { api, config }, rejectWithValue, dispatch }) => {
23
+ let locale = config?.context?.locale
24
+ try {
25
+ if (api.hasConversation()) {
26
+ const initialState = await api.getConversationIntitialState()
24
27
 
25
- locale = initialState.translation?.locale || locale
28
+ locale = initialState.translation?.locale || locale
26
29
 
27
- return { initialState, locale, config }
28
- } else {
29
- if (config?.context?.topic) {
30
- api.send('action', {
31
- type: actionTypes.setTopic,
32
- body: {
33
- name: config.context.topic,
34
- // Separate fallback message is not needed here. Only an attached service will use this, but none will
35
- // be attached before the conversation has started (meaning the fallback message will never be shown).
36
- fallbackMessage: config.context.topic,
37
- },
38
- })
30
+ return { initialState, locale, config }
31
+ } else {
32
+ if (config?.context?.topic) {
33
+ api.send('action', {
34
+ type: actionTypes.setTopic,
35
+ body: {
36
+ name: config.context.topic,
37
+ // Separate fallback message is not needed here. Only an attached service will use this, but none will
38
+ // be attached before the conversation has started (meaning the fallback message will never be shown).
39
+ fallbackMessage: config.context.topic,
40
+ },
41
+ })
42
+ }
43
+ if (config?.context?.translationLocale) {
44
+ locale = config.context.translationLocale
45
+ api.send('action', {
46
+ type: actionTypes.setTranslation,
47
+ body: { enabled: true, locale },
48
+ })
49
+ }
50
+ dispatch(setLocale(locale))
51
+ return { initialState: undefined, locale, config }
39
52
  }
40
- if (config?.context?.translationLocale) {
41
- locale = config.context.translationLocale
42
- api.send('action', {
43
- type: actionTypes.setTranslation,
44
- body: { enabled: true, locale },
53
+ } catch (e) {
54
+ if (e instanceof SeamlySessionExpiredError) {
55
+ const err = new SeamlySessionExpiredError()
56
+
57
+ return rejectWithValue({
58
+ name: err.name,
59
+ message: err.message,
60
+ originalEvent: err.originalEvent,
61
+ originalError: err.originalError,
62
+ action: err.action,
45
63
  })
46
64
  }
47
65
 
48
- return { initialState: undefined, locale, config }
49
- }
50
- } catch (e) {
51
- if (e instanceof SeamlySessionExpiredError) {
52
- const err = new SeamlySessionExpiredError()
53
-
66
+ const err = new SeamlyUnavailableError()
54
67
  return rejectWithValue({
55
68
  name: err.name,
56
69
  message: err.message,
57
- originalEvent: err.originalEvent,
58
- originalError: err.originalError,
59
- action: err.action,
70
+ langKey: err.langKey,
60
71
  })
61
72
  }
62
-
63
- const err = new SeamlyUnavailableError()
64
- return rejectWithValue({
65
- name: err.name,
66
- message: err.message,
67
- langKey: err.langKey,
68
- })
69
- }
70
- })
73
+ },
74
+ )
71
75
 
72
76
  export const resetApp = createAsyncThunk<unknown, void, ThunkAPI>(
73
77
  'resetApp',
@@ -15,6 +15,7 @@ export const initialConfigState: Config = {
15
15
  connectWhenInView: true,
16
16
  showDisclaimer: false,
17
17
  showFaq: false,
18
+ showSuggestions: true,
18
19
  customComponents: {},
19
20
  defaults: {
20
21
  visible: null,
@@ -27,6 +28,7 @@ const configKeys: (keyof Config)[] = [
27
28
  'connectWhenInView',
28
29
  'showDisclaimer',
29
30
  'showFaq',
31
+ 'showSuggestions',
30
32
  'namespace',
31
33
  'customComponents',
32
34
  'defaults',
@@ -50,9 +50,6 @@ export const i18nSlice = createSlice({
50
50
  .addCase(initializeConfig.fulfilled, (state, { payload }) => {
51
51
  state.initialLocale = payload.locale
52
52
  })
53
- .addCase(initializeApp.fulfilled, (state, { payload }) => {
54
- state.locale = payload.locale
55
- })
56
53
  .addCase(setLocale.fulfilled, (state, { payload }) => {
57
54
  if (!payload?.translations) {
58
55
  state.isLoading = false
@@ -4,8 +4,10 @@ import { initializeConfig } from 'domains/config/actions'
4
4
  import {
5
5
  ChannelEvent,
6
6
  EntryMeta,
7
- HistoryEvent,
7
+ HistoryEvents,
8
+ HistoryResponse,
8
9
  MessageParticipant,
10
+ ParticipantInfo,
9
11
  ServiceInfo,
10
12
  StoreState,
11
13
  } from 'domains/store/store.types'
@@ -23,7 +25,7 @@ export const isUnreadMessage = ({ type, payload }: ChannelEvent) =>
23
25
  (type === eventTypes.message && !payload.fromClient) ||
24
26
  (type === eventTypes.info && payload.type === payloadTypes.text)
25
27
 
26
- const orderHistory = (events): ChannelEvent[] => {
28
+ export const orderHistory = (events: ChannelEvent[]) => {
27
29
  return events.sort(
28
30
  (
29
31
  { payload: { occurredAt: occurredAtA } },
@@ -34,7 +36,7 @@ const orderHistory = (events): ChannelEvent[] => {
34
36
 
35
37
  export const mergeHistory = (
36
38
  stateEvents: ChannelEvent[],
37
- historyEvents: HistoryEvent[],
39
+ historyEvents: HistoryEvents,
38
40
  ) => {
39
41
  const newStateEvents = stateEvents.filter(
40
42
  (stateEvent) =>
@@ -264,6 +266,7 @@ export const storeSlice = createSlice({
264
266
  const { id, occurredAt } = payload
265
267
  if (matchedEvent) {
266
268
  state.events = orderHistory(
269
+ //@ts-ignore
267
270
  state.events.map((m) =>
268
271
  m.payload.id === matchedEvent.payload.id
269
272
  ? {
@@ -308,7 +311,7 @@ export const storeSlice = createSlice({
308
311
  serviceData,
309
312
  resumeConversationPrompt,
310
313
  },
311
- },
314
+ }: PayloadAction<HistoryResponse>,
312
315
  ) => {
313
316
  const events = mergeHistory(state.events, history)
314
317
 
@@ -337,7 +340,8 @@ export const storeSlice = createSlice({
337
340
  }
338
341
  }
339
342
 
340
- const { entry, uploads } = activeServiceSettings
343
+ const { entry } = activeServiceSettings
344
+ const { upload } = entry.options
341
345
 
342
346
  const historyNewEntryMeta = calculateNewEntryMeta(
343
347
  {
@@ -356,13 +360,13 @@ export const storeSlice = createSlice({
356
360
  )
357
361
 
358
362
  // Only set uploads if it was initialised by the account config.
359
- if (newFeaturesHasUpload && lastParticipantEvent.type === 'message') {
363
+ if (newFeaturesHasUpload && lastParticipantEvent?.type === 'message') {
360
364
  const { payload: lastParticipantEventPayload } = lastParticipantEvent
361
365
  const entryType = lastParticipantEventPayload?.entry?.type || {}
362
366
  newFeatures = {
363
367
  ...newFeatures,
364
368
  uploads: {
365
- enabled: !!(uploads && uploads.enabled),
369
+ enabled: !!(upload && upload.enabled),
366
370
  enabledFromEntry: entryType === entryTypes.upload,
367
371
  },
368
372
  }
@@ -390,7 +394,12 @@ export const storeSlice = createSlice({
390
394
  ...state.serviceInfo,
391
395
  activeServiceSessionId,
392
396
  }
393
- state.serviceData = serviceData || {}
397
+
398
+ state.serviceData = {
399
+ ...state.serviceData,
400
+ ...serviceData,
401
+ }
402
+
394
403
  state.options = {
395
404
  ...state.options,
396
405
  features: newFeatures || {},
@@ -454,13 +463,12 @@ export const storeSlice = createSlice({
454
463
  fromClient: payload.fromClient,
455
464
  })
456
465
  },
457
- setActiveService: (state, { payload }: PayloadAction<ServiceInfo>) => {
458
- if (
459
- state.serviceInfo.activeServiceSessionId !==
460
- payload.activeServiceSessionId
461
- ) {
462
- state.serviceInfo.activeServiceSessionId =
463
- payload.activeServiceSessionId
466
+ setActiveService: (
467
+ state,
468
+ { payload }: PayloadAction<ServiceInfo['activeServiceSessionId']>,
469
+ ) => {
470
+ if (state.serviceInfo.activeServiceSessionId !== payload) {
471
+ state.serviceInfo.activeServiceSessionId = payload
464
472
  }
465
473
  },
466
474
  setHeaderTitle: (state, { payload }) => {
@@ -33,7 +33,18 @@ export interface ParticipantEvent {
33
33
 
34
34
  export type ChannelEvent = MessageEvent | ParticipantEvent | InfoEvent
35
35
 
36
- export type HistoryEvent = ChannelEvent
36
+ type History = components['schemas']['ConversationHistoryResponse']['history']
37
+ export type HistoryResponse = {
38
+ events: ChannelEvent[]
39
+ participants: History['participants']
40
+ activeServiceSessionId: History['activeServiceSessionId']
41
+ activeServiceSettings: History['activeServiceSettings']
42
+ serviceData: History['serviceData']
43
+ resumeConversationPrompt: History['ui']['resumeConversationPrompt']
44
+ translation: History['translation']
45
+ }
46
+
47
+ export type HistoryEvents = HistoryResponse['events']
37
48
 
38
49
  export type EntryMeta = {
39
50
  default: typeof entryTypes.text
@@ -1,23 +1,27 @@
1
- import { getIsPayloadTranslated } from 'domains/translations/selectors'
1
+ import { RootState } from 'domains/store'
2
+ import {
3
+ ChannelEvent,
4
+ InfoEvent,
5
+ MessageEvent,
6
+ ParticipantEvent,
7
+ } from 'domains/store/store.types'
8
+ import { selectIsTranslated } from 'domains/translations/selectors'
2
9
  import {
3
- disableEvent,
4
10
  disableTranslation,
5
- enableEvent,
6
11
  enableTranslation,
7
12
  } from 'domains/translations/slice'
8
- import { useMemo } from 'preact/hooks'
13
+ import { useCallback, useMemo } from 'preact/hooks'
9
14
  import { useDispatch, useSelector } from 'react-redux'
10
15
  import {
11
16
  useElementFocusingById,
12
17
  useSeamlyCommands,
13
- useStableCallback,
14
18
  } from 'ui/hooks/seamly-hooks'
15
19
  import { actionTypes } from 'ui/utils/seamly-utils'
16
20
 
17
21
  export function useTranslations() {
18
22
  const { sendAction } = useSeamlyCommands()
19
23
  const dispatch = useDispatch()
20
- const enableTranslations = useStableCallback(
24
+ const enableTranslations = useCallback(
21
25
  (locale) => {
22
26
  sendAction({
23
27
  type: actionTypes.setTranslation,
@@ -25,15 +29,11 @@ export function useTranslations() {
25
29
  })
26
30
  dispatch(enableTranslation(locale))
27
31
  },
28
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
29
- // @ts-ignore
30
32
  [sendAction, dispatch],
31
33
  )
32
- const disableTranslations = useStableCallback(() => {
34
+ const disableTranslations = useCallback(() => {
33
35
  sendAction({ type: actionTypes.setTranslation, body: { enabled: false } })
34
36
  dispatch(disableTranslation())
35
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
36
- // @ts-ignore
37
37
  }, [sendAction, dispatch])
38
38
 
39
39
  const { languages, isActive, isAvailable, currentLocale } = useSelector(
@@ -50,46 +50,52 @@ export function useTranslations() {
50
50
  }
51
51
  }
52
52
 
53
- export function useTranslatedEventData({ payload }) {
54
- const payloadId: string = payload?.id
55
- let body
56
- let translatedBody
57
- switch (payload?.type) {
58
- case 'participant':
59
- body = payload.participant.introduction
60
- translatedBody = payload.participant.translatedIntroduction
61
- break
62
- default:
63
- body = payload?.body
64
- translatedBody = payload?.translatedBody
65
- }
66
- const hasTranslation = !!translatedBody
67
- const isTranslated = useSelector((store) =>
68
- // @ts-ignore
69
- getIsPayloadTranslated(store, payloadId),
70
- )
71
- const dispatch = useDispatch()
53
+ type EventDataBody =
54
+ | ParticipantEvent['payload']['participant']['introduction']
55
+ | MessageEvent['payload']['body']
56
+ | InfoEvent['payload']['body']
57
+
58
+ type TranslatedEventDataBody =
59
+ | ParticipantEvent['payload']['participant']['translatedIntroduction']
60
+ | MessageEvent['payload']['translatedBody']
61
+ | InfoEvent['payload']['translatedBody']
72
62
 
73
- const toggleTranslation = useStableCallback(() => {
74
- if (isTranslated) {
75
- dispatch(disableEvent(payloadId))
76
- } else {
77
- dispatch(enableEvent(payloadId))
63
+ export function useTranslatedEventData(channelEvent: ChannelEvent): {
64
+ body: EventDataBody
65
+ hasTranslation: boolean
66
+ isTranslated: boolean
67
+ locale: string
68
+ } {
69
+ const getTranslations = (): {
70
+ body: EventDataBody
71
+ translatedBody: TranslatedEventDataBody
72
+ } => {
73
+ if (!channelEvent.payload)
74
+ return { body: undefined, translatedBody: undefined }
75
+ if (channelEvent.type === 'participant') {
76
+ return {
77
+ body: channelEvent.payload?.participant.introduction,
78
+ translatedBody:
79
+ channelEvent.payload?.participant?.translatedIntroduction,
80
+ }
78
81
  }
79
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
80
- // @ts-ignore
81
- }, [isTranslated, payloadId, dispatch])
82
82
 
83
- return [
84
- hasTranslation && isTranslated ? translatedBody?.data : body,
85
- {
86
- hasTranslation,
87
- isTranslated: isTranslated && hasTranslation,
88
- toggleTranslation,
89
- translatedBy: translatedBody?.translatedBy,
90
- locale: translatedBody?.locale,
91
- },
92
- ]
83
+ return {
84
+ body: channelEvent.payload.body,
85
+ translatedBody: channelEvent.payload.translatedBody,
86
+ }
87
+ }
88
+
89
+ const { translatedBody, body } = getTranslations()
90
+ const hasTranslation = !!translatedBody
91
+ const isTranslated = useSelector(selectIsTranslated(channelEvent))
92
+
93
+ return {
94
+ body: hasTranslation && isTranslated ? translatedBody?.data : body,
95
+ hasTranslation,
96
+ isTranslated: isTranslated && hasTranslation,
97
+ locale: translatedBody?.locale,
98
+ }
93
99
  }
94
100
 
95
101
  export function useTranslationsContainer() {
@@ -0,0 +1,12 @@
1
+ import { createSelector } from '@reduxjs/toolkit'
2
+ import { RootState } from 'domains/store'
3
+ import { ChannelEvent } from 'domains/store/store.types'
4
+
5
+ export const selectIsTranslated = (channelEvent: ChannelEvent) =>
6
+ createSelector(
7
+ (store: RootState) => store.translations.translatedEventGroups,
8
+ (translatedEventGroups: Record<string, string[]>) =>
9
+ Object.values(translatedEventGroups).every(
10
+ (value) => !value.includes(channelEvent?.payload?.id),
11
+ ),
12
+ )