@xapp/chat-widget 1.81.0 → 1.81.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.
- package/dist/index.css +1 -1
- package/dist/index.es.js +201 -18
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +201 -18
- package/dist/index.js.map +1 -1
- package/dist/store/actions/types.d.ts +0 -0
- package/dist/utils/index.d.ts +0 -0
- package/dist/utils/useChatDispatch.d.ts +0 -0
- package/dist/xapp/ChatServer.d.ts +0 -0
- package/dist/xapp/LogChat.d.ts +0 -0
- package/dist/xapp/StentorRouterChat.d.ts +0 -0
- package/dist/xapp-chat-widget.css +1 -1
- package/dist/xapp-chat-widget.js +4 -5
- package/dist/xapp-chat-widget.js.map +1 -1
- package/package.json +6 -7
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Overpass:wght@300;400;500;600;700&display=swap";@font-face{font-family:OpenSansSemibold;font-style:normal;font-weight:600;font-display:swap;src:local("Open Sans SemiBold"),local("OpenSans-SemiBold"),url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UNirkOUuhpKKSTjw.woff2) format("woff2")}@font-face{font-family:RobotoRegular;font-style:normal;font-weight:400;font-display:swap;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format("woff2")}@font-face{font-family:RobotoMedium;font-style:oblique;font-weight:500;font-display:swap;src:local("Roboto Medium"),local("Roboto-Medium"),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format("woff2")}.widget-container{background:#fff;display:flex;flex-flow:column nowrap;width:100%;height:100%;visibility:hidden;font-family:RobotoRegular,serif;box-shadow:0 5px 40px rgba(0,0,0,.16);overflow:hidden;border-radius:var(--xapp-widget-border-radius, 10px);border:var(--xapp-widget-border-width, 0px) solid var(--xapp-widget-border-color, var(--xapp-primary-color, #616161));box-sizing:border-box}.widget-container *,.widget-container *:before,.widget-container *:after{box-sizing:border-box}.widget-container--normal,.widget-container--static{position:fixed;z-index:var(--xapp-widget-z-index, 1000);right:var(--xapp-widget-margin-right, 10px);bottom:var(--xapp-widget-margin-bottom, 10px)}.widget-container--normal.visible,.widget-container--static.visible{width:min(var(--xapp-widget-width, 400px),100vw - var(--xapp-widget-margin-left, 10px) - var(--xapp-widget-margin-right, 10px));height:min(var(--xapp-widget-height, 500px),100vh - var(--xapp-widget-margin-top, 10px) - var(--xapp-widget-margin-bottom, 10px));height:min(var(--xapp-widget-height, 500px),100dvh - var(--xapp-widget-margin-top, 10px) - var(--xapp-widget-margin-bottom, 10px))}.widget-container--docked{width:100%;height:100%;border-radius:0;visibility:visible !important;animation:none !important}.widget-container:not(.visible){animation:widget-hide .5s backwards;width:64px;height:64px}.widget-container.visible{animation:widget-show .5s forwards}.widget-container--docked:not(.visible),.widget-container--docked.visible{animation:none !important}.widget-container--loading{display:flex;align-items:center;justify-content:center;background:#fff}.widget-container--loading.widget-container--docked{width:100%;height:100%}.widget-container--error{display:flex;align-items:center;justify-content:center;background:#fff5f5;padding:20px}.widget-container--error.widget-container--docked{width:100%;height:100%}.widget-error-message{color:#dc3545;font-size:14px;line-height:1.5;text-align:center;padding:20px;background:#fff;border:2px solid #dc3545;border-radius:8px;max-width:400px;box-shadow:0 2px 8px rgba(220,53,69,.1)}.widget-error-message::before{content:"⚠️";display:block;font-size:32px;margin-bottom:12px}.widget-container--loading .xa-spinner-container{position:relative}.message-svg path{fill:var(--xapp-primary-color, #616161)}.chat-msg{line-height:20px;font-size:14px;margin-left:48px;max-width:var(--xapp-messages-max-width, 240px)}.chat-msg--expand{max-width:calc(100% - 48px);width:calc(100% - 48px)}.chat-msg__fullwidth{max-width:100%;width:100%}.chat-msg--no-ava{margin-left:0}.chat-typing-progress .chat-msg{color:#30375b}.visitor .chat-text-container{padding-right:20px}.chat-media-container{border-radius:8px;border:1px solid #ddd;overflow:hidden}.chat-img{min-width:180px;min-height:120px;background-position:center;background-size:cover}.ts-msg-container{text-align:center}.ts-msg{font-size:12px;color:#bfbfbf}.system-msg-container{text-align:center;margin:16px 0;padding:8px 0}.system-msg{font-size:14px;color:#bfbfbf}.system-msg-divider{position:relative;margin:20px 0 10px 0;display:flex;align-items:center;justify-content:center;gap:0}.system-msg-divider .divider-line{flex:1;height:1px;background-color:#e0e0e0}.system-msg-divider .divider-avatar{display:flex;align-items:center;justify-content:center}.system-msg-divider .divider-avatar img{width:32px;height:32px;border-radius:50%;object-fit:cover}.chat-rating-card{padding-bottom:16px;text-align:center}.buttons-container{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;width:100%}.buttons-container .button{flex-grow:1}.buttons-container .button:not(:last-child){margin-right:8px}.buttons-container .button-card{flex-grow:0}.buttons-container .button-card:not(:last-child){margin-right:8px}@keyframes widget-show{0%{visibility:hidden;opacity:0}1%{visibility:visible;opacity:0;transform:translateY(50%)}100%{visibility:visible;opacity:1;transform:translateY(0)}}@keyframes widget-hide{0%{transform:translateY(0)}99%{opacity:0;transform:translateY(50%)}100%{visibility:hidden;opacity:0}}@keyframes widget-show-grow{0%{visibility:hidden;opacity:0}1%{visibility:visible;opacity:0;transform:scale(0.5)}100%{visibility:visible;opacity:1;transform:scale(1)}}@keyframes widget-hide-shrink{0%{visibility:visible;opacity:1;transform:scale(1)}99%{visibility:visible;opacity:0;transform:scale(0.5)}100%{visibility:hidden;opacity:0}}.xa-spinner-container{z-index:var(--xapp-widget-z-index, 1000);position:absolute;width:100%;height:100%;display:flex;align-items:center;background:#fff;transition:visibility 500ms,opacity 500ms;visibility:hidden;opacity:0;top:0 !important;left:0 !important}.xa-spinner-container.visible{visibility:visible;opacity:1}.xa-spinner{width:40px;height:40px;margin:100px auto;background-color:var(--xapp-primary-color, #616161);border-radius:100%;-webkit-animation:sk-scaleout 1s infinite ease-in-out;animation:sk-scaleout 1s infinite ease-in-out}.xa-chevron{width:100%;height:100%;background:unset;border:unset;padding:unset}@-webkit-keyframes sk-scaleout{0%{transform:scale(0)}100%{transform:scale(1);opacity:0}}@keyframes sk-scaleout{0%{transform:scale(0)}100%{transform:scale(1);opacity:0}}@media screen and (max-width: 640px){.xa-chevron{height:44px;height:44px}}.restartModal{display:none;position:fixed;z-index:100;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4);-webkit-animation-name:fadeIn;-webkit-animation-duration:.4s;animation-name:fadeIn;animation-duration:.4s}.modalContent{border-radius:20px;box-shadow:rgba(100,100,111,.2) 0px 7px 29px 0px;position:fixed;bottom:-10px;z-index:200;padding:20px;background-color:#fff;width:100%;-webkit-animation-name:slideIn;-webkit-animation-duration:.4s;animation-name:slideIn;animation-duration:.4s}.modalBody h2{color:#027db6;text-align:center;font-weight:700}.modalBody p{color:rgba(98,98,98,.6666666667)}.modalActions{margin:25px 0;justify-content:center;display:flex;gap:1em}.modalActions button{padding:10px 20px;border-radius:10px;transition:all .5s;cursor:pointer}.modalActions button:hover{opacity:.7}.modalActions .cancelBtn{color:#027db6;border:solid 1px #027db6;background:rgba(0,0,0,0)}.modalActions .restartBtn{background:#027db6;color:#fff;border:none}@-webkit-keyframes slideIn{from{bottom:-300px;opacity:0}to{bottom:-10px;opacity:1}}@keyframes slideIn{from{bottom:-300px;opacity:0}to{bottom:-10px;opacity:1}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.action-button{border:1px solid #ddd;border-radius:4px;text-align:center;opacity:1;outline:none;font-size:14px;padding:8px;text-align:center}.action-button:hover{opacity:.8;cursor:pointer}.action-button:focus-visible{outline:none;filter:invert(100%)}@media screen and (max-width: 640px){.action-button{box-sizing:border-box;height:44px}}.avatar{border-radius:20px;color:#fff;background-color:#fff;background-position:center;background-size:cover;background-repeat:no-repeat;width:100%;height:100%}.avatar--agent{background-color:var(--xapp-header-avatar-background, #ffffff)}.avatar--visitor{background-color:var(--xapp-primary-color, #616161);display:flex;align-items:center;height:100%}.avatar--empty{background-color:rgba(0,0,0,0) !important}.xappw-carousel{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center}.xappw-carousel__prev,.xappw-carousel__next{flex:0 0 48px;height:30px;cursor:pointer}.xappw-carousel__prev svg,.xappw-carousel__next svg{display:block;margin:auto;height:100%}.xappw-carousel-items{display:flex;position:relative;height:auto;align-items:stretch;white-space:nowrap;overflow-x:hidden;overflow-y:hidden}@media(hover: none)and (pointer: coarse){.xappw-carousel-items{overflow-x:auto}}.xappw-carousel-items{scroll-behavior:smooth;-ms-overflow-style:none;-moz-overflow-style:none;-webkit-overflow-scrolling:touch}.xappw-carousel-items__item{display:inline-flex;flex-direction:column;padding-right:10px;flex-shrink:0}.xappw-carousel-items__item:last-child{padding-right:0}@media(max-width: 640px){.xappw-carousel-items__item{min-width:100%}}.xappw-carousel-items--one-item{margin-left:48px}.chat-list-item{display:flex;flex-direction:column;align-items:flex-start;min-width:220px;min-height:120px;flex:1 1 auto;border:solid 1px #ccc;border-radius:12px}.chat-list-item-container{display:flex;flex-direction:column;flex:1 1 auto}.chat-list-item__img{border-radius:12px 12px 0 0;width:100%;height:120px;overflow:hidden}.chat-list-item__title{text-align:left;font-family:var(--xapp-carousel-title-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-title-font-weight, bold);font-size:var(--xapp-carousel-title-font-size, 14px);font-style:var(--xapp-carousel-title-font-style, normal);color:var(--xapp-carousel-title-text-color, #000);line-height:1.3;padding:2px}.chat-list-item__title span{display:inline-block;white-space:pre-wrap}.chat-list-item__subtitle{text-align:left;font-family:var(--xapp-carousel-subtitle-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-subtitle-font-weight, normal);font-size:var(--xapp-carousel-subtitle-font-size, 12px);font-style:var(--xapp-carousel-subtitle-font-style, italic);color:var(--xapp-carousel-subtitle-text-color, #979797);line-height:1.3;max-width:200px;padding:2px}.chat-list-item__subtitle span{display:inline-block;white-space:pre-wrap}.chat-list-item__actions{margin-top:auto}.chat-list-item .action-button{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;line-height:25px;border-radius:25px;background-color:var(--xapp-carousel-action-button-color, var(--xapp-primary-color, #616161));color:#d5d9e7;cursor:pointer}@keyframes wiggle{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}100%{transform:rotate(0deg)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes pulse{0%,100%{box-shadow:0 0 8px 0 rgba(0,0,0,.3),0 0 0 0 var(--xapp-chat-button-animation-primary-rgba, rgba(0, 117, 170, 0.75))}50%{box-shadow:0 0 8px 0 rgba(0,0,0,.3),0 0 8px 4px var(--xapp-chat-button-animation-primary-rgba, rgba(0, 117, 170, 0.75))}}.xapp-chat-button{position:fixed !important;bottom:0 !important;right:0 !important;top:inherit;cursor:pointer;margin-top:var(--xapp-chat-button-margin-top, var(--xapp-widget-margin-top, 16px));margin-right:var(--xapp-chat-button-margin-right, var(--xapp-widget-margin-right, 16px));margin-bottom:var(--xapp-chat-button-margin-bottom, var(--xapp-widget-margin-bottom, 16px));margin-left:var(--xapp-chat-button-margin-left, var(--xapp-widget-margin-left, 16px));display:block;overflow:visible !important;opacity:1;animation:widget-show-grow .5s backwards;width:48px;height:48px;border-radius:24px;z-index:var(--xapp-widget-z-index, 1000);background-color:rgba(0,0,0,0) !important;padding:0;border-width:0px}.xapp-chat-button:focus,.xapp-chat-button:active{position:fixed !important;top:auto !important;bottom:0 !important;right:0 !important;background:rgba(0,0,0,0) !important;border:none !important;outline:none !important;box-shadow:none !important}.xapp-chat-button.visible{animation:widget-hide-shrink .5s forwards}.xapp-chat-button:focus-visible{outline:none;box-shadow:0 0 4px 4px rgba(0,0,0,.3)}.xapp-chat-button__btn{position:absolute;width:48px;height:48px;border-radius:24px;background-color:var(--xapp-chat-button-background, var(--xapp-primary-color, #616161));box-shadow:0 0 8px 0 rgba(0,0,0,.3);bottom:0px !important;right:0px !important;top:0px !important;display:flex;align-items:center;justify-content:center}.xapp-chat-button__btn svg,.xapp-chat-button__btn img{display:block}.xapp-chat-button__btn svg{margin:auto;height:100%}.xapp-chat-button__btn img{width:var(--xapp-chat-button-image-width, 22px);height:var(--xapp-chat-button-image-height, 22px)}.xapp-chat-button__cta{position:absolute;bottom:56px;right:24px;white-space:nowrap;font-size:16px;font-family:RobotoRegular,serif}.xapp-chat-button:hover{background:rgba(0,0,0,0) !important}.chat-card-container{border-radius:10px;position:relative;overflow:hidden;color:#fff;background:#f6f6f6}.chat-card-container .chat-card-img{border-radius:0}.chat-card-container__img{min-width:220px;height:120px}.chat-card-container .chat-card-title{padding:2px 10px;color:#2e375a;font-family:RobotoMedium,serif;font-size:12px;line-height:14px;font-weight:bold}.chat-card-container .chat-card-title span{display:inline-block;white-space:pre-wrap}.chat-card-container .chat-card-sub-title{padding:2px 10px;color:#2e375a;font-family:RobotoRegular,serif;font-size:10px;line-height:14px}.chat-card-container .chat-card-sub-title span{display:inline-block;white-space:pre-wrap}.chat-card-container .action-button{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;line-height:25px;border-radius:25px;background-color:var(--xapp-primary-color, #616161);color:#d5d9e7;cursor:pointer}.chat-card-container .action-button:focus-visible{outline:none;filter:invert(100%)}.chat-chip{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;color:#2f385a;line-height:25px;border-radius:25px;border:thin solid #aeb3be;cursor:pointer;user-select:none}.chat-chip-link{text-decoration:underline}@media screen and (max-width: 640px){.chat-chip{min-height:44px;padding:8px}}.chat-chips{width:100%;overflow-x:auto;overflow-y:hidden;white-space:nowrap;box-sizing:border-box;margin:0 auto;padding:10px;scroll-behavior:smooth;-ms-overflow-style:none;-moz-overflow-style:none;-webkit-overflow-scrolling:touch}.chat-chips::-webkit-scrollbar{background-color:#fff;height:10px}.chat-chips::-webkit-scrollbar-track{background-color:#fff}.chat-chips::-webkit-scrollbar-button{display:none}.chat-chips::-webkit-scrollbar-thumb{background-color:#babac0;border-radius:10px;border:2.5px solid #fff}.status-container{display:flex;flex-flow:row nowrap;justify-content:space-between;padding-top:var(--xapp-header-padding-top, 0px);padding-right:var(--xapp-header-padding-right, 5px);padding-bottom:var(--xapp-header-padding-bottom, 0px);padding-left:var(--xapp-header-padding-left, 10px);box-sizing:border-box;z-index:999;line-height:40px;min-height:calc(40px + var(--xapp-header-padding-top, 0px) + var(--xapp-header-padding-bottom, 0px));flex-shrink:0;color:#fff;position:relative;width:100%;background:var(--xapp-header-background, var(--xapp-primary-color, #616161)) !important;border-bottom:solid var(--xapp-header-border-width, 0px) var(--xapp-header-border-color, var(--xapp-primary-color, #616161));align-items:center}.status-container__avatar{width:30px;height:30px}.status-container__avatar .avatar:not(.avatar--empty){background-color:var(--xapp-header-avatar-background, #ffffff)}.status-text{display:inline-flex;flex-direction:column;position:absolute;line-height:100%}.status-text-positionLeft{left:56px}.status-text-positionLeftNoAvatar{left:8px}.status-text-positionWithMenu{left:88px}.status-text-positionCenter{left:50%;transform:translateX(-50%);align-items:center}.status-text-title{font-family:var(--xapp-header-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-header-font-weight, normal);font-size:var(--xapp-header-font-size, 16px);font-style:var(--xapp-header-font-style, normal);color:var(--xapp-header-text-color, rgba(255, 255, 255, 0.87));font-family:var(--xapp-header-font-family, "Overpass", sans-serif);font-weight:var(--xapp-header-font-weight, 500)}.status-text-subtitle{margin-top:2px;font-family:var(--xapp-header-subtitle-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-header-subtitle-font-weight, normal);font-size:var(--xapp-header-subtitle-font-size, 10px);font-style:var(--xapp-header-subtitle-font-style, normal);color:var(--xapp-header-subtitle-text-color, rgba(255, 255, 255, 0.5));font-family:var(--xapp-header-subtitle-font-family, "Overpass", sans-serif);font-weight:var(--xapp-header-subtitle-font-weight, 400)}.xa-chat-menu-container{z-index:100}.background-header .status-container{background-color:#616161 !important}.no-avatar{left:0px !important;color:aqua !important}@media screen and (max-width: 640px){.status-container{line-height:44px;height:44px}}.chat-menu{display:flex;flex-flow:column;flex-shrink:0;z-index:999;overflow-y:hidden}.chat-menu-bottom--closed{max-height:0}.chat-menu-bottom--opened{max-height:calc(var(--xapp-widget-height, 500px) - 40)}.chat-menu-left{position:absolute;top:40px;left:0;width:auto;max-width:var(--xapp-widget-width, 400px);background:var(--xapp-menu-item-background, #efefef);height:100%;overflow:hidden;-webkit-transition:left 1.5s ease-out;-moz-transition:left 1.5s ease-out;-o-transition:left 1.5s ease-out;transition:left 1.5s ease-out}.chat-menu-left--closed{left:-var(--xapp-widget-width, 400px)}.chat-menu-right{position:absolute;top:40px;right:0;width:auto;max-width:var(--xapp-widget-width, 400px);background:var(--xapp-menu-item-background, #efefef);height:100%;overflow:hidden;-webkit-transition:right 1.5s ease-out;-moz-transition:right 1.5s ease-out;-o-transition:right 1.5s ease-out;transition:right 1.5s ease-out}.chat-menu-right--closed{right:-var(--xapp-widget-width, 400px)}.chat-msg-container-wrapper{display:flex;flex-direction:column;margin-bottom:16px}.chat-msg-container-wrapper.visitor{justify-content:flex-end}.chat-msg-container-wrapper.agent{justify-content:flex-start}.chat-msg-container-wrapper.sibling{margin-bottom:8px}.chat-msg-container-wrapper.sibling .avatar{display:none}.chat-msg-timestamp{font-size:.8em}.chat-msg-timestamp.visitor{padding-right:20px;align-self:flex-end}.chat-msg-timestamp.agent{padding-left:48px;align-self:flex-start}.xappw-chat-msg-part--avatar-bottom~.chat-msg-timestamp{display:none}.chat-msg-container{display:flex;flex-flow:column nowrap;flex:0 0 auto;justify-content:flex-start;max-width:100%;position:relative}.chat-msg-container.visitor{align-items:flex-end}.chat-msg-container.visitor .xappw-chat-msg-part__avatar{right:0;display:none}.chat-msg-container.agent{align-items:stretch}.chat-msg-container.agent .xappw-chat-msg-part__avatar{width:36px;height:36px;left:0}.chat-msg-container.agent .xappw-chat-msg-part--avatar-bottom{align-self:flex-start}.message-sr-only{display:none}.chat-text-container p{margin:0 0 8px 0;padding:0}.chat-msg-agent-typing{margin-top:auto;padding-bottom:16px;font-family:var(--xapp-text-typing-status-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-text-typing-status-font-weight, normal);font-size:var(--xapp-text-typing-status-font-size, 14px);font-style:var(--xapp-text-typing-status-font-style, normal);color:var(--xapp-text-typing-status-text-color, #bfbfbf)}.chat-msg-agent-typing::after{display:inline-block;animation:dots steps(1, end) 1.5s infinite;content:""}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}100%{content:""}}.chat-text-bubble{border-radius:10px;padding:10px;display:inline-block;word-wrap:break-word;position:relative;overflow:visible}.chat-text-bubble--mine{font-family:var(--xapp-messages-mine-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-messages-mine-font-weight, normal);font-size:var(--xapp-messages-mine-font-size, 14px);font-style:var(--xapp-messages-mine-font-style, normal);color:var(--xapp-messages-mine-text-color, #ffffff);background:var(--xapp-messages-mine-bubble-color, hsl(120, 75%, 50%));border-bottom-right-radius:0}.chat-text-bubble--mine .chat-text-bubble__tail{right:-8px;color:var(--xapp-messages-mine-bubble-color, hsl(120, 75%, 50%))}.chat-text-bubble--others{font-family:var(--xapp-messages-others-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-messages-others-font-weight, normal);font-size:var(--xapp-messages-others-font-size, 14px);font-style:var(--xapp-messages-others-font-style, normal);color:var(--xapp-messages-others-text-color, #262726);background:var(--xapp-messages-others-bubble-color, #e1e2e1);border-bottom-left-radius:0}.chat-text-bubble--others .chat-text-bubble__tail{left:-8px;color:var(--xapp-messages-others-bubble-color, #e1e2e1)}.chat-text-bubble span{white-space:pre-wrap}.chat-typing-progress .chat-text-bubble{padding:8px 10px;margin-top:4px}.chat-text-bubble__tail{position:absolute;width:8px;height:24px;bottom:0}.xappw-chat-msg-part{display:inline-block;position:relative;word-wrap:break-word}.xappw-chat-msg-part+.xappw-chat-msg-part{margin-top:4px}.xappw-chat-msg-part+.xappw-chat-msg-part .chat-card-img{border-radius:12px 12px 12px 0}.xappw-chat-msg-part__avatar{position:absolute;bottom:0;z-index:10}.xappw-chat-msg-part ul{list-style-position:inside;padding:0;margin:0 0 8px 0}.xappw-chat-msg-part li{padding:0;margin:0}.xappw-chat-msg-part--avatar-below{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.25rem}.xappw-chat-msg-part--avatar-below .xappw-chat-msg-part__avatar{position:static;z-index:auto;margin-left:0;margin-top:.125rem}.xappw-chat-msg-part--avatar-below .chat-msg{margin-left:30px !important}.xappw-chat-msg-part__avatar-wrapper{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.xappw-chat-msg-part__avatar-name{font-size:.8rem;color:#666}.xappw-chat-msg-part--avatar-bottom{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.25rem}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar{position:static;z-index:auto;margin-left:0;margin-top:0;width:18px !important;height:18px !important}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar .avatar{border-radius:9px}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar-wrapper{margin-top:.125rem;gap:.25rem;align-items:center}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar-name{font-size:.875rem;line-height:18px}.xappw-chat-msg-part--avatar-bottom .chat-msg{margin-left:0 !important}.xappw-chat-msg-part--avatar-bottom .chat-text-bubble--others{border-bottom-right-radius:10px !important}.xappw-chat-msg-part--avatar-bottom .chat-text-bubble--mine{border-bottom-left-radius:10px !important}.xappw-chat-msg-part--avatar-bottom .chat-text-bubble__tail{display:none !important}.cta-bubble{position:relative;border-radius:50%;background:var(--xapp-cta-background, #e1e2e1);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;text-align:center;border:var(--xapp-widget-border-width, 0px) solid var(--xapp-widget-border-color, var(--xapp-primary-color, #616161));border-radius:var(--xapp-widget-border-radius, 50%);max-width:192px}.cta-bubble__tail{position:absolute;left:-16px;right:-16px;top:-16px;bottom:-16px;z-index:1;color:var(--xapp-cta-background, #e1e2e1)}.cta-bubble__tail svg{width:100%;height:100%;margin:0;padding:0}.cta-bubble__content{font-family:var(--xapp-cta-font-family, 14px);font-size:var(--xapp-cta-font-size, 14px);color:var(--xapp-cta-text-color, var(--xapp-primary-color, #616161));z-index:2;text-transform:none !important}.cta-bubble__dismiss{position:absolute;top:4px;right:4px;z-index:3;background:rgba(0,0,0,.2);border:none;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:#fff;transition:background-color .2s}.cta-bubble__dismiss:hover{background:rgba(0,0,0,.4)}.cta-bubble__dismiss:focus{outline:2px solid rgba(0,0,0,.5);outline-offset:2px}.cta-bubble__dismiss svg{display:block}.xappw-vlist{display:flex;flex-flow:column nowrap}.xappw-vlist__header{padding:16px 8px;font-family:"RobotoRegular","serif";font-weight:bold;font-size:16px}.xappw-vlist-container{display:flex;flex-flow:column nowrap;flex:0 0 auto;justify-content:flex-start;max-width:100%;position:relative;white-space:nowrap;border:solid 1px #ccc;border-radius:12px;overflow:hidden}.xappw-vlist-container .xappw-vlist-container__item{display:inline-block;border-top:solid 1px #ccc}.xappw-vlist-container .xappw-vlist-container__item:first-child{border-top:none}.message-list-container{position:relative;flex-grow:1;flex-shrink:1;min-height:0;overflow-y:scroll;display:flex;flex-direction:column;background:var(--xapp-content-background, #fff)}.message-list-container::-webkit-scrollbar{display:none}.message-list-container{scrollbar-width:none;-ms-overflow-style:none}.message-list-container__msgs{display:flex;flex-direction:column;flex-grow:1;flex-shrink:1;padding-top:var(--xapp-messages-padding-top, 16px);padding-right:var(--xapp-messages-padding-right, 16px);padding-bottom:var(--xapp-messages-padding-bottom, 0);padding-left:var(--xapp-messages-padding-left, 20px)}.message-list-container__chips{flex:0 0 auto;border-top:solid 1px #ccc;border-bottom:solid 1px #ccc;margin-top:auto}.message-list-container__chips--empty{flex-basis:0;border:none;overflow:hidden}.xappw-vlist-item{display:flex;flex-direction:row;flex:0 0 auto;min-width:100%;min-height:56px;padding:8px;box-sizing:border-box;cursor:pointer}.xappw-vlist-item--normal{align-items:flex-start}.xappw-vlist-item--titles{align-items:center}.xappw-vlist-item:hover{background-color:#eee}.xappw-vlist-item__description{display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden}.xappw-vlist-item__side{flex:0 0 auto;display:flex;flex-direction:column}.xappw-vlist-item__img{border-radius:12px;width:40px;height:40px;overflow:hidden}.xappw-vlist-item__external-link{width:20px;margin:0 4px 4px auto;display:inline-block}.xappw-vlist-item__title{text-align:left;font-family:var(--xapp-carousel-title-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-title-font-weight, bold);font-size:var(--xapp-carousel-title-font-size, 14px);font-style:var(--xapp-carousel-title-font-style, normal);color:var(--xapp-carousel-title-text-color, #000);line-height:1.3}.xappw-vlist-item__title span{display:inline-block;white-space:pre-wrap}.xappw-vlist-item__link{font-family:var(--xapp-carousel-link-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-link-font-weight, normal);font-size:var(--xapp-carousel-link-font-size, 12px);font-style:var(--xapp-carousel-link-font-style, normal);color:var(--xapp-carousel-link-text-color, #666);line-height:1.3;overflow:hidden;text-overflow:ellipsis;max-width:100%}.xappw-vlist-item__subtitle{text-align:left;font-family:var(--xapp-carousel-subtitle-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-subtitle-font-weight, normal);font-size:var(--xapp-carousel-subtitle-font-size, 12px);font-style:var(--xapp-carousel-subtitle-font-style, italic);color:var(--xapp-carousel-subtitle-text-color, #979797);line-height:1.3}.xappw-vlist-item__subtitle span{display:inline-block;white-space:pre-wrap}.xappw-vlist-item .action-button{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;line-height:25px;border-radius:25px;background-color:var(--xapp-carousel-action-button-color, var(--xapp-primary-color, #616161));color:#d5d9e7;cursor:pointer}.xappw-vlist-item .action-button:focus-visible{outline:none;filter:invert(100%)}.xappw-chat-action-item{text-decoration:none}.xappw-chat-action-item--action{cursor:pointer}.chat-menu-item{border:var(--xapp-chat-menu-item-border-width, #fff) solid var(--xapp-chat-menu-item-border-color, #fff);border-radius:var(--xapp-chat-menu-item-border-radius, 0px);opacity:1;background:var(--xapp-menu-item-background, #efefef);font-family:var(--xapp-menu-item-font-family, 14px);font-weight:var(--xapp-menu-item-font-weight, normal);font-size:var(--xapp-menu-item-font-size, 14px);font-style:var(--xapp-menu-item-font-style, normal);color:var(--xapp-menu-item-text-color, var(--xapp-primary-color, #616161));height:var(--xapp-menu-item-height, 24px);width:100%;max-width:100%;box-sizing:border-box;padding:4px 4px 4px 30px;text-align:left}.chat-menu-item:hover{opacity:.8;cursor:pointer}.chat-menu-item--subtitle{font-family:var(--xapp-menu-item-subtitle-font-family, 14px);font-weight:var(--xapp-menu-item-subtitle-font-weight, normal);font-size:var(--xapp-menu-item-subtitle-font-size, 14px);font-style:var(--xapp-menu-item-subtitle-font-style, normal);color:var(--xapp-menu-item-text-subtitle-color, var(--xapp-primary-color, #616161))}.chat-menu-item:focus-visible{outline:none;filter:invert(100%)}.chat-menu-item-static{border:var(--xapp-chat-menu-item-border-width, #fff) solid var(--xapp-chat-menu-item-border-color, #fff);border-radius:var(--xapp-chat-menu-item-border-radius, 0px);background:var(--xapp-menu-item-background, #efefef);font-family:var(--xapp-menu-item-font-family, 14px);font-weight:var(--xapp-menu-item-font-weight, normal);font-size:var(--xapp-menu-item-font-size, 14px);font-style:var(--xapp-menu-item-font-style, normal);color:var(--xapp-menu-item-text-color, var(--xapp-primary-color, #616161));height:var(--xapp-menu-item-height, 24px);display:flex;justify-content:center;text-align:center;padding:4px 4px 4px 30px}.chat-menu-item-static--body{font-family:var(--xapp-menu-item-subtitle-font-family, 14px);font-weight:var(--xapp-menu-item-subtitle-font-weight, normal);font-size:var(--xapp-menu-item-subtitle-font-size, 14px);font-style:var(--xapp-menu-item-subtitle-font-style, normal);color:var(--xapp-menu-item-text-subtitle-color, var(--xapp-primary-color, #616161))}.chat-menu-item-static-text{border:var(--xapp-chat-menu-item-border-width, #fff) solid var(--xapp-chat-menu-item-border-color, #fff);border-radius:var(--xapp-chat-menu-item-border-radius, 0px);background:var(--xapp-menu-item-background, #efefef);font-family:var(--xapp-menu-item-font-family, 14px);font-weight:var(--xapp-menu-item-font-weight, normal);font-size:var(--xapp-menu-item-font-size, 14px);font-style:var(--xapp-menu-item-font-style, normal);color:var(--xapp-menu-item-text-color, var(--xapp-primary-color, #616161));max-height:100%;max-width:auto;display:flex;justify-content:center;text-align:center;padding:4px 4px 4px 30px}.chat-menu-item-static-text--body{font-family:var(--xapp-menu-item-subtitle-font-family, 14px);font-weight:var(--xapp-menu-item-subtitle-font-weight, normal);font-size:var(--xapp-menu-item-subtitle-font-size, 14px);font-style:var(--xapp-menu-item-subtitle-font-style, normal);color:var(--xapp-menu-item-text-subtitle-color, var(--xapp-primary-color, #616161))}.chat-footer{position:relative;flex-shrink:0;margin-top:auto;background-color:var(--xapp-footer-background, var(--xapp-primary-color, #616161)) !important}.chat-footer__menu-icon{border-top:solid var(--xapp-footer-border-width, 0px) var(--xapp-footer-border-color, var(--xapp-primary-color, #616161));z-index:999;padding:6px 0;flex-shrink:0;display:flex;justify-content:center}.chat-footer__menu-icon+.chat-footer__input{margin-top:-6px}.chat-footer__input{margin-top:6px;margin-bottom:6px}.xappw-chat-footer__suggestions{position:absolute;bottom:100%;left:0;right:0;overflow:hidden;z-index:100}.background-footer .chat-footer{background-color:#616161 !important}.server-offline{position:absolute;top:0;right:0;left:0;bottom:0;z-index:5000;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.error-overlay{position:fixed;right:10px;width:400px;max-width:calc(100% - 20px);max-height:50vh;background:#1e1e1e;border:1px solid #333;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.3);z-index:999999;font-family:"Monaco","Menlo","Ubuntu Mono",monospace;font-size:12px;color:#fff}.error-overlay--bottom{bottom:10px}.error-overlay--top{top:10px}.error-overlay.minimized{max-height:auto}.error-overlay .error-overlay-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#2d2d2d;border-bottom:1px solid #333;border-radius:8px 8px 0 0;min-height:52px}.error-overlay .error-overlay-header .error-overlay-title{font-weight:bold;color:#ff6b6b}.error-overlay .error-overlay-header .error-overlay-actions{display:flex;gap:4px}.error-overlay .error-overlay-header .error-overlay-actions button{background:none;border:none;color:#aaa;cursor:pointer;padding:6px 10px;font-size:18px;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.error-overlay .error-overlay-header .error-overlay-actions button:hover{color:#fff;background:hsla(0,0%,100%,.1)}.error-overlay .error-overlay-header .error-overlay-actions button:active{background:hsla(0,0%,100%,.2);transform:scale(0.95)}.error-overlay .error-overlay-content{max-height:calc(50vh - 40px);overflow-y:auto;padding:8px}.error-overlay .error-overlay-content::-webkit-scrollbar{width:8px}.error-overlay .error-overlay-content::-webkit-scrollbar-track{background:#2d2d2d}.error-overlay .error-overlay-content::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.error-overlay .error-overlay-content::-webkit-scrollbar-thumb:hover{background:#666}.error-overlay .error-overlay-content .error-entry{margin-bottom:8px;padding:8px;background:#2d2d2d;border-radius:4px;border-left:3px solid}.error-overlay .error-overlay-content .error-entry.error-error{border-left-color:#ff6b6b}.error-overlay .error-overlay-content .error-entry.error-warning{border-left-color:#ffd93d}.error-overlay .error-overlay-content .error-entry.error-info{border-left-color:#6bcf7f}.error-overlay .error-overlay-content .error-entry .error-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.error-overlay .error-overlay-content .error-entry .error-header .error-time{color:#888;font-size:10px}.error-overlay .error-overlay-content .error-entry .error-header .error-count{color:#ffd93d;font-size:10px;font-weight:bold}.error-overlay .error-overlay-content .error-entry .error-header .error-badge{padding:2px 6px;border-radius:3px;font-size:10px;text-transform:uppercase;font-weight:bold}.error-overlay .error-overlay-content .error-entry .error-header .error-badge-error{background:rgba(255,107,107,.2);color:#ff6b6b}.error-overlay .error-overlay-content .error-entry .error-header .error-badge-warning{background:rgba(255,217,61,.2);color:#ffd93d}.error-overlay .error-overlay-content .error-entry .error-header .error-badge-info{background:rgba(107,207,127,.2);color:#6bcf7f}.error-overlay .error-overlay-content .error-entry .error-message{color:#f0f0f0;word-break:break-word;line-height:1.4}.error-overlay .error-overlay-content .error-entry .error-stack{margin-top:8px}.error-overlay .error-overlay-content .error-entry .error-stack summary{color:#888;cursor:pointer;font-size:11px}.error-overlay .error-overlay-content .error-entry .error-stack summary:hover{color:#aaa}.error-overlay .error-overlay-content .error-entry .error-stack pre{margin:4px 0 0 0;padding:8px;background:#1a1a1a;border-radius:4px;font-size:10px;color:#888;overflow-x:auto;line-height:1.3}.ws-button-container{padding:8px 16px;background:#fff;display:flex;justify-content:flex-end;align-items:center;transform-origin:top;transition:transform .3s ease-out,opacity .3s ease-out,max-height .3s ease-out,padding .3s ease-out;max-height:100px;animation:ws-button-appear .3s ease-out}.ws-button-container--dismissing{transform:scaleY(0);opacity:0;max-height:0;padding-top:0;padding-bottom:0}@keyframes ws-button-appear{0%{transform:scaleY(0);opacity:0;max-height:0;padding-top:0;padding-bottom:0}100%{transform:scaleY(1);opacity:1;max-height:100px;padding-top:8px;padding-bottom:8px}}.ws-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;height:36px;font-size:14px;font-weight:500;color:#2f385a;line-height:1.5;border-radius:18px;border:1px solid #aeb3be;background-color:#fff;cursor:pointer;user-select:none;transition:all .2s ease-in-out;position:relative;min-width:100px}.ws-button:hover:not(.ws-button--disabled){background-color:#f5f5f5;border-color:#2f385a}.ws-button:active:not(.ws-button--disabled){transform:scale(0.98)}.ws-button--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.ws-button--spinning{padding-left:40px;cursor:not-allowed;pointer-events:none}.ws-button__text{display:inline-block}.ws-button__spinner{position:absolute;left:12px;width:16px;height:16px;border:2px solid rgba(47,56,90,.2);border-top-color:#2f385a;border-right-color:#2f385a;border-radius:50%;animation:ws-button-spin .6s linear infinite}@keyframes ws-button-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@media screen and (max-width: 640px){.ws-button{min-height:44px;padding:12px 20px;font-size:16px}.ws-button--spinning{padding-left:48px}.ws-button__spinner{left:16px;width:20px;height:20px}}.chat-card-img{display:block;width:100%;height:100%}.chat-card-img__content{background-position:center;background-size:cover;width:100%;height:100%}.button-group{display:flex;flex-direction:row;align-items:center;gap:4px;height:32px;flex-shrink:0}.button-group .menu-button,.button-group .refresh-button,.button-group .minimize-button,.button-group .cancel-button{position:static !important;top:auto !important;right:auto !important;margin:0 !important}.cancel-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-cancel-button-color, var(--xapp-cancel-button-color, #a3a6b4));background-color:var(--xapp-cancel-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.cancel-button:hover{background-color:var(--xapp-cancel-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.cancel-button:after{content:"⨉" !important;opacity:inherit !important}.cancel-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.drawer-bars{display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:rgba(0,0,0,0);border:none;padding:6px 0;cursor:pointer}.drawer-bar{flex:0 0 5px;border-radius:5px;background-color:var(--xapp-menu-button-color, #fff);width:25px;margin:2.5px}.drawer-bar:first-child{margin-top:0}.drawer-bar:last-child{margin-bottom:0}@media screen and (max-width: 640px){.drawer-bars{height:44px;width:44px;line-height:44px}}.menu-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-menu-button-color, var(--xapp-cancel-button-color, #a3a6b4));background-color:var(--xapp-menu-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.menu-button:hover{background-color:var(--xapp-menu-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.menu-button:after{content:"⋮" !important;opacity:inherit !important}.menu-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.minimize-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-minimize-button-color, var(--xapp-minimize-button-color, #a3a6b4)) !important;background-color:var(--xapp-minimize-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.minimize-button:hover{background-color:var(--xapp-minimize-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.minimize-button:after{content:"─" !important;opacity:inherit !important}.minimize-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.refresh-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-refresh-button-color, var(--xapp-refresh-button-color, #a3a6b4));background-color:var(--xapp-refresh-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.refresh-button:hover{background-color:var(--xapp-refresh-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.refresh-button:after{content:"⟳" !important;opacity:inherit !important}.refresh-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.chat-schedule-button-container{padding:10px 0;display:flex;flex-direction:row;justify-content:center;margin-top:8px}.chat-schedule-button{border-radius:26px;min-width:200px;height:52px;text-align:center;font-size:1.2em;line-height:1.22857;background-color:var(--xapp-header-background, #0295D2);color:var(--xapp-header-text-color, rgba(255, 255, 255, 0.87));border-width:0px;padding:0 10px;cursor:pointer}.chat-schedule-button:hover{background-color:var(--xapp-header-background-hover, rgb(1.5188679245, 113.1556603774, 159.4811320755))}.chat-schedule-button span{margin-left:6px;position:relative;top:4px}.chat-schedule-button i{position:relative;top:4px}.xappw-admin-input-container{flex-shrink:0;z-index:999;padding-left:20px;padding-right:20px;padding-bottom:0;padding-top:10px}.xappw-admin-input-container:not(.visible){display:none}.xappw-admin-input-container.drag-drop-zone{outline:3px dashed gray;outline-offset:-3px}.xappw-admin-input-form{display:flex;align-items:center;overflow:hidden;line-height:48px;position:relative}.xappw-admin-input-form__buttons{display:flex;align-items:center;right:10px;z-index:2;margin-right:10px}.xappw-admin-input-form__btn{width:56px}.xappw-admin-input{width:calc(100% - 60px);min-height:32px;padding:7px 10px;line-height:normal;display:inline-block;box-sizing:border-box;font-family:var(--xapp-input-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-font-weight, normal);font-size:var(--xapp-input-font-size, 16px);font-style:var(--xapp-input-font-style, normal);color:var(--xapp-input-text-color, #000);outline-width:0;border:var(--xapp-input-border-width, #fff) solid var(--xapp-input-border-color, #fff);border-radius:var(--xapp-input-border-radius, 20px);background:var(--xapp-input-background, #fff);margin:auto}.xappw-admin-input input:focus::placeholder{color:rgba(0,0,0,0)}.xappw-admin-input input::-webkit-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input:-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input::-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input:-ms-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input::placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input__input{border:none;outline:none;font-size:inherit;line-height:inherit}#adminBarInput{width:100%}.xappw-admin-input{z-index:1}@media screen and (max-width: 640px){.xappw-admin-input-form{height:44px}}.chat-footer__branding{text-align:end;padding-right:20px;padding-bottom:12px;font-family:var(--xapp-footer-branding-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-footer-branding-font-weight, normal);font-size:var(--xapp-footer-branding-font-size, 14px);font-style:var(--xapp-footer-branding-font-style, normal);color:var(--xapp-footer-branding-text-color, rgba(255, 255, 255, 0.87))}.xapp-search-icon-button{border:none;background:none;background-color:rgba(0,0,0,0) !important;cursor:pointer;padding:0;display:flex;align-items:center}.xapp-search-icon-button svg{display:block;margin:auto;height:100%}.xapp-search-icon-button__content{display:flex;width:100%}.xapp-search-icon-button:focus-visible{outline:none;filter:invert(100%)}@media screen and (max-width: 640px){.xapp-search-icon-button{box-sizing:border-box;padding:12px;min-height:44px;min-width:44px}}.xappw-message-bubble{border-radius:10px;padding:10px;background:var(--xapp-bubble-background, #fff)}.xappw-rich-input__input{display:block !important;width:calc(100% - 50px) !important;height:37px;border:none !important;outline:none !important;box-sizing:border-box !important;box-shadow:none !important;margin:0 !important;font-size:inherit !important;line-height:inherit;color:inherit !important;background-color:inherit !important}.xappw-rich-input__input:focus{color:inherit !important}@media screen and (max-width: 640px){.xappw-rich-input__input{width:calc(100% - 90px)}}.xapp-search-rich-text{display:inline-block;max-width:100%;overflow:hidden;white-space:pre-wrap}.xappw-suggestions-group__items{display:flex;flex-direction:column;padding:2px 0}.xappw-suggestions-group__heading{margin:0 16px}.xappw-suggestions-group-heading{display:flex;align-items:center;font-size:12px;padding:2px 0;color:#061739}.xappw-suggestions-group-heading:after{content:"";border-top:solid 1px #d4d4d4;flex:1 1 auto;margin-left:8px}.xappw-suggestions-item{padding:0 0 0 24px;box-sizing:border-box;width:100%;white-space:nowrap;display:flex;align-items:center;overflow:hidden;font-size:15px;cursor:pointer;border-bottom:solid 1px rgba(0,0,0,0);color:#061739}.xappw-suggestions-item--current,.xappw-suggestions-item:hover{background-color:#3395d2;color:#fff;text-decoration:underline}@media(hover: hover){.xappw-suggestions-item--current .xappw-suggestions-item__actions,.xappw-suggestions-item:hover .xappw-suggestions-item__actions{visibility:visible;color:#fff}}.xappw-suggestions-item__texts{padding:3px 0;flex:1 1 auto;overflow:hidden}.xappw-suggestions-item__actions{flex:0 0 auto;display:flex;margin-left:8px}@media(hover: hover){.xappw-suggestions-item__actions{visibility:hidden}}.xappw-suggestions-list{display:flex;flex-direction:column}.xapp-search-rich-text-span{flex:0 1 auto;display:inline-block;max-width:100%}.xapp-search-rich-text-span:last-child{overflow:hidden;white-space:pre;text-overflow:ellipsis}.xapp-search-rich-text-bold-span{font-weight:bold}.xapp-search-rich-text-input-span{text-decoration:none;font-size:inherit;height:calc(1.5em - 2px);line-height:1em;width:8em;color:inherit}.xapp-search-rich-text-input-span--readonly{border:dashed 1px green;color:green;height:calc(1em - 2px)}.xapp-search-rich-text-normal-span{font-weight:normal}.xappw-suggestions{display:flex;flex-direction:column;font-family:RobotoRegular,serif}.xappw-suggestions__answer{background-color:#d9d9d9;padding:8px 11px;border-radius:12px 12px 0px 0px}.xappw-suggestions__groups{background-color:#f3f3f3;padding:8px 0;border-bottom:1px solid #e5e5e5}.xappw-suggestions__use{width:28px;padding:4px;color:inherit}.xappw-suggestions__use svg{display:block;margin:auto;height:100%}.xappw-input-container{flex-shrink:0;z-index:999;padding:6px 20px}.xappw-input-container:not(.visible){display:none}.xappw-input-container.drag-drop-zone{outline:3px dashed gray;outline-offset:-3px}.xappw-input-form{display:flex;align-items:center;overflow:hidden;line-height:48px;position:relative;border-radius:var(--xapp-input-border-radius, 20px);background:var(--xapp-input-background, #fff);padding:0px !important}.xappw-input-form__buttons{display:flex;align-items:center;position:absolute;right:10px;z-index:2}.xappw-input-form__btn{min-width:20px;width:20px;height:16px}.xappw-input{min-height:32px;padding:7px 10px;line-height:normal;display:inline-block;box-sizing:border-box;font-family:var(--xapp-input-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-font-weight, normal);font-size:var(--xapp-input-font-size, 16px);font-style:var(--xapp-input-font-style, normal);color:var(--xapp-input-text-color, #000);outline-width:0;flex-grow:1;border:var(--xapp-input-border-width, #fff) solid var(--xapp-input-border-color, #fff);background:rgba(0,0,0,0)}.xappw-input input:focus::placeholder{color:rgba(0,0,0,0)}.xappw-input input::-webkit-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input:-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input::-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input:-ms-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input::placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input{z-index:1}@media screen and (max-width: 640px){.xappw-input-form{height:44px}}.message-form .section{margin-bottom:16px}.message-form .label{display:block;margin-bottom:4px;color:var(--xapp-primary-color, #616161)}.message-form input,.message-form textarea{border:1px solid #ddd;border-radius:4px;outline-width:0;width:100%;font-size:14px;box-sizing:border-box}.message-form input{height:32px;padding:0 10px}.message-form textarea{padding:8px 10px;min-height:100px;resize:none;overflow-y:auto}.message-form__submit{width:100%;background-color:var(--xapp-primary-color, #616161);color:#fff}.message-form--shrink-enter{opacity:.01;position:relative;top:100px}.message-form--shrink-enter-active{position:relative;top:0;opacity:1;transition:opacity 500ms,top 500ms;transition-delay:500ms}.message-form--shrink-exit{opacity:.5;position:relative;top:0}.message-form--shrink-exit-active{top:-200px;opacity:.01;transition:top 500ms,opacity 500ms}.message-form--grow-enter{opacity:.5;position:relative;top:-200px}.message-form--grow-enter-active{position:relative;top:0;opacity:1;transition:opacity 500ms,top 500ms}.message-form--grow-exit{opacity:.5;position:relative;top:0;height:50px}.message-form--grow-exit-active{top:-100px;height:0;opacity:.01;transition:top 500ms,opacity 500ms,height 500ms}.message-form--sent .button-resend{width:100%;margin-top:16px;background-color:var(--xapp-primary-color, #616161);color:#fff}.xappw-multiselect{list-style:none;padding:0;margin:0}.xappw-multiselect li{padding:0;margin:0}.card-container{padding-top:16px;position:relative}.card-container__content{color:#555;border-radius:8px;border:1px solid #ddd;padding:24px 16px 16px 16px;font-size:14px}.card-container__title{text-align:center;color:var(--xapp-primary-color, #616161);margin-bottom:8px}.card-container__icon{width:32px;height:32px;position:relative;background-color:#fff;border:1px solid #e0e0e0;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0,0,0,.1);margin:-16px auto;z-index:999}.card-container__icon svg{display:block;margin:auto;height:100%}@keyframes typing-animation{0%{transform:translateY(0px)}28%{transform:translateY(-5px)}44%{transform:translateY(0px)}}.typing-indicator{height:20px;display:inline-flex;align-items:center}.typing-indicator-part:nth-child(1){animation-delay:200ms}.typing-indicator-part:nth-child(2){animation-delay:300ms}.typing-indicator-part:nth-child(3){animation-delay:400ms}.typing-indicator-part{display:inline-block;animation:typing-animation 1.5s infinite ease-in-out;border-radius:50%;width:7px;height:7px;margin:0 3px;background-color:#7a7a7a}.xappw-send-button{color:var(--xapp-send-button-color, #505050) !important;margin:0;background:var(--xapp-send-button-bg, transparent) !important}.xappw-send-button:hover{background:var(--xapp-send-button-hover-bg, transparent) !important}.xappw-send-button:disabled{background:var(--xapp-send-button-disabled-bg, transparent) !important}.xappw-custom-send-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;width:var(--xapp-send-button-width, 20px);height:var(--xapp-send-button-width, 20px);border:unset;background:rgba(0,0,0,0);padding:8px;transition:opacity .2s ease;position:relative;box-sizing:border-box}.xappw-custom-send-button:disabled{cursor:not-allowed;opacity:.6}.xappw-custom-send-button .send-button-icon{width:24px;height:24px;display:block}@media screen and (max-width: 640px){.xappw-send-button{box-sizing:border-box !important;padding:12px !important;min-height:44px;min-width:44px;margin:0}.xappw-custom-send-button{box-sizing:border-box !important;padding:10px !important;min-height:44px;min-width:44px;width:44px;height:44px;margin:0}.xappw-custom-send-button .send-button-icon{width:24px;height:24px}.xappw-custom-send-button>img{width:24px;height:24px}}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Overpass:wght@300;400;500;600;700&display=swap";@font-face{font-family:OpenSansSemibold;font-style:normal;font-weight:600;font-display:swap;src:local("Open Sans SemiBold"),local("OpenSans-SemiBold"),url(https://fonts.gstatic.com/s/opensans/v17/mem5YaGs126MiZpBA-UNirkOUuhpKKSTjw.woff2) format("woff2")}@font-face{font-family:RobotoRegular;font-style:normal;font-weight:400;font-display:swap;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format("woff2")}@font-face{font-family:RobotoMedium;font-style:oblique;font-weight:500;font-display:swap;src:local("Roboto Medium"),local("Roboto-Medium"),url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format("woff2")}.widget-container{background:#fff;display:flex;flex-flow:column nowrap;width:100%;height:100%;visibility:hidden;font-family:RobotoRegular,serif;box-shadow:0 5px 40px rgba(0,0,0,.16);overflow:hidden;border-radius:var(--xapp-widget-border-radius, 10px);border:var(--xapp-widget-border-width, 0px) solid var(--xapp-widget-border-color, var(--xapp-primary-color, #616161));box-sizing:border-box}.widget-container *,.widget-container *:before,.widget-container *:after{box-sizing:border-box}.widget-container--normal,.widget-container--static{position:fixed;z-index:var(--xapp-widget-z-index, 1000);right:var(--xapp-widget-margin-right, 10px);bottom:var(--xapp-widget-margin-bottom, 10px)}.widget-container--normal.visible,.widget-container--static.visible{width:min(var(--xapp-widget-width, 400px),100vw - var(--xapp-widget-margin-left, 10px) - var(--xapp-widget-margin-right, 10px));height:min(var(--xapp-widget-height, 500px),100vh - var(--xapp-widget-margin-top, 10px) - var(--xapp-widget-margin-bottom, 10px));height:min(var(--xapp-widget-height, 500px),100dvh - var(--xapp-widget-margin-top, 10px) - var(--xapp-widget-margin-bottom, 10px))}.widget-container--docked{position:relative;width:100%;height:100%;border-radius:0;visibility:visible !important;animation:none !important}.widget-container:not(.visible){animation:widget-hide .5s backwards;width:64px;height:64px}.widget-container.visible{animation:widget-show .5s forwards}.widget-container--docked:not(.visible),.widget-container--docked.visible{animation:none !important}.widget-container--loading{display:flex;align-items:center;justify-content:center;background:#fff}.widget-container--loading.widget-container--docked{width:100%;height:100%}.widget-container--error{display:flex;align-items:center;justify-content:center;background:#fff5f5;padding:20px}.widget-container--error.widget-container--docked{width:100%;height:100%}.widget-error-message{color:#dc3545;font-size:14px;line-height:1.5;text-align:center;padding:20px;background:#fff;border:2px solid #dc3545;border-radius:8px;max-width:400px;box-shadow:0 2px 8px rgba(220,53,69,.1)}.widget-error-message::before{content:"⚠️";display:block;font-size:32px;margin-bottom:12px}.widget-container--loading .xa-spinner-container{position:relative}.message-svg path{fill:var(--xapp-primary-color, #616161)}.chat-msg{line-height:20px;font-size:14px;margin-left:48px;max-width:var(--xapp-messages-max-width, 240px)}.chat-msg--expand{max-width:calc(100% - 48px);width:calc(100% - 48px)}.chat-msg__fullwidth{max-width:100%;width:100%}.chat-msg--no-ava{margin-left:0}.chat-typing-progress .chat-msg{color:#30375b}.visitor .chat-text-container{padding-right:20px}.chat-media-container{border-radius:8px;border:1px solid #ddd;overflow:hidden}.chat-img{min-width:180px;min-height:120px;background-position:center;background-size:cover}.ts-msg-container{text-align:center}.ts-msg{font-size:12px;color:#bfbfbf}.system-msg-container{text-align:center;margin:16px 0;padding:8px 0}.system-msg{font-size:14px;color:#bfbfbf}.system-msg-divider{position:relative;margin:20px 0 10px 0;display:flex;align-items:center;justify-content:center;gap:0}.system-msg-divider .divider-line{flex:1;height:1px;background-color:#e0e0e0}.system-msg-divider .divider-avatar{display:flex;align-items:center;justify-content:center}.system-msg-divider .divider-avatar img{width:32px;height:32px;border-radius:50%;object-fit:cover}.chat-rating-card{padding-bottom:16px;text-align:center}.buttons-container{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;width:100%}.buttons-container .button{flex-grow:1}.buttons-container .button:not(:last-child){margin-right:8px}.buttons-container .button-card{flex-grow:0}.buttons-container .button-card:not(:last-child){margin-right:8px}@keyframes widget-show{0%{visibility:hidden;opacity:0}1%{visibility:visible;opacity:0;transform:translateY(50%)}100%{visibility:visible;opacity:1;transform:translateY(0)}}@keyframes widget-hide{0%{transform:translateY(0)}99%{opacity:0;transform:translateY(50%)}100%{visibility:hidden;opacity:0}}@keyframes widget-show-grow{0%{visibility:hidden;opacity:0}1%{visibility:visible;opacity:0;transform:scale(0.5)}100%{visibility:visible;opacity:1;transform:scale(1)}}@keyframes widget-hide-shrink{0%{visibility:visible;opacity:1;transform:scale(1)}99%{visibility:visible;opacity:0;transform:scale(0.5)}100%{visibility:hidden;opacity:0}}.xa-spinner-container{z-index:var(--xapp-widget-z-index, 1000);position:absolute;width:100%;height:100%;display:flex;align-items:center;background:#fff;transition:visibility 500ms,opacity 500ms;visibility:hidden;opacity:0;top:0 !important;left:0 !important}.xa-spinner-container.visible{visibility:visible;opacity:1}.xa-spinner{width:40px;height:40px;margin:100px auto;background-color:var(--xapp-primary-color, #616161);border-radius:100%;-webkit-animation:sk-scaleout 1s infinite ease-in-out;animation:sk-scaleout 1s infinite ease-in-out}.xa-chevron{width:100%;height:100%;background:unset;border:unset;padding:unset}@-webkit-keyframes sk-scaleout{0%{transform:scale(0)}100%{transform:scale(1);opacity:0}}@keyframes sk-scaleout{0%{transform:scale(0)}100%{transform:scale(1);opacity:0}}@media screen and (max-width: 640px){.xa-chevron{height:44px;height:44px}}.restartModal{display:none;position:fixed;z-index:100;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4);-webkit-animation-name:fadeIn;-webkit-animation-duration:.4s;animation-name:fadeIn;animation-duration:.4s}.modalContent{border-radius:20px;box-shadow:rgba(100,100,111,.2) 0px 7px 29px 0px;position:fixed;bottom:-10px;z-index:200;padding:20px;background-color:#fff;width:100%;-webkit-animation-name:slideIn;-webkit-animation-duration:.4s;animation-name:slideIn;animation-duration:.4s}.modalBody h2{color:#027db6;text-align:center;font-weight:700}.modalBody p{color:rgba(98,98,98,.6666666667)}.modalActions{margin:25px 0;justify-content:center;display:flex;gap:1em}.modalActions button{padding:10px 20px;border-radius:10px;transition:all .5s;cursor:pointer}.modalActions button:hover{opacity:.7}.modalActions .cancelBtn{color:#027db6;border:solid 1px #027db6;background:rgba(0,0,0,0)}.modalActions .restartBtn{background:#027db6;color:#fff;border:none}@-webkit-keyframes slideIn{from{bottom:-300px;opacity:0}to{bottom:-10px;opacity:1}}@keyframes slideIn{from{bottom:-300px;opacity:0}to{bottom:-10px;opacity:1}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.action-button{border:1px solid #ddd;border-radius:4px;text-align:center;opacity:1;outline:none;font-size:14px;padding:8px;text-align:center}.action-button:hover{opacity:.8;cursor:pointer}.action-button:focus-visible{outline:none;filter:invert(100%)}@media screen and (max-width: 640px){.action-button{box-sizing:border-box;height:44px}}.avatar{border-radius:20px;color:#fff;background-color:#fff;background-position:center;background-size:cover;background-repeat:no-repeat;width:100%;height:100%}.avatar--agent{background-color:var(--xapp-header-avatar-background, #ffffff)}.avatar--visitor{background-color:var(--xapp-primary-color, #616161);display:flex;align-items:center;height:100%}.avatar--empty{background-color:rgba(0,0,0,0) !important}.xappw-carousel{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center}.xappw-carousel__prev,.xappw-carousel__next{flex:0 0 48px;height:30px;cursor:pointer}.xappw-carousel__prev svg,.xappw-carousel__next svg{display:block;margin:auto;height:100%}.xappw-carousel-items{display:flex;position:relative;height:auto;align-items:stretch;white-space:nowrap;overflow-x:hidden;overflow-y:hidden}@media(hover: none)and (pointer: coarse){.xappw-carousel-items{overflow-x:auto}}.xappw-carousel-items{scroll-behavior:smooth;-ms-overflow-style:none;-moz-overflow-style:none;-webkit-overflow-scrolling:touch}.xappw-carousel-items__item{display:inline-flex;flex-direction:column;padding-right:10px;flex-shrink:0}.xappw-carousel-items__item:last-child{padding-right:0}@media(max-width: 640px){.xappw-carousel-items__item{min-width:100%}}.xappw-carousel-items--one-item{margin-left:48px}.chat-list-item{display:flex;flex-direction:column;align-items:flex-start;min-width:220px;min-height:120px;flex:1 1 auto;border:solid 1px #ccc;border-radius:12px}.chat-list-item-container{display:flex;flex-direction:column;flex:1 1 auto}.chat-list-item__img{border-radius:12px 12px 0 0;width:100%;height:120px;overflow:hidden}.chat-list-item__title{text-align:left;font-family:var(--xapp-carousel-title-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-title-font-weight, bold);font-size:var(--xapp-carousel-title-font-size, 14px);font-style:var(--xapp-carousel-title-font-style, normal);color:var(--xapp-carousel-title-text-color, #000);line-height:1.3;padding:2px}.chat-list-item__title span{display:inline-block;white-space:pre-wrap}.chat-list-item__subtitle{text-align:left;font-family:var(--xapp-carousel-subtitle-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-subtitle-font-weight, normal);font-size:var(--xapp-carousel-subtitle-font-size, 12px);font-style:var(--xapp-carousel-subtitle-font-style, italic);color:var(--xapp-carousel-subtitle-text-color, #979797);line-height:1.3;max-width:200px;padding:2px}.chat-list-item__subtitle span{display:inline-block;white-space:pre-wrap}.chat-list-item__actions{margin-top:auto}.chat-list-item .action-button{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;line-height:25px;border-radius:25px;background-color:var(--xapp-carousel-action-button-color, var(--xapp-primary-color, #616161));color:#d5d9e7;cursor:pointer}@keyframes wiggle{0%{transform:rotate(0deg)}25%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}100%{transform:rotate(0deg)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes pulse{0%,100%{box-shadow:0 0 8px 0 rgba(0,0,0,.3),0 0 0 0 var(--xapp-chat-button-animation-primary-rgba, rgba(0, 117, 170, 0.75))}50%{box-shadow:0 0 8px 0 rgba(0,0,0,.3),0 0 8px 4px var(--xapp-chat-button-animation-primary-rgba, rgba(0, 117, 170, 0.75))}}.xapp-chat-button{position:fixed !important;bottom:0 !important;right:0 !important;top:inherit;cursor:pointer;margin-top:var(--xapp-chat-button-margin-top, var(--xapp-widget-margin-top, 16px));margin-right:var(--xapp-chat-button-margin-right, var(--xapp-widget-margin-right, 16px));margin-bottom:var(--xapp-chat-button-margin-bottom, var(--xapp-widget-margin-bottom, 16px));margin-left:var(--xapp-chat-button-margin-left, var(--xapp-widget-margin-left, 16px));display:block;overflow:visible !important;opacity:1;animation:widget-show-grow .5s backwards;width:48px;height:48px;border-radius:24px;z-index:var(--xapp-widget-z-index, 1000);background-color:rgba(0,0,0,0) !important;padding:0;border-width:0px}.xapp-chat-button:focus,.xapp-chat-button:active{position:fixed !important;top:auto !important;bottom:0 !important;right:0 !important;background:rgba(0,0,0,0) !important;border:none !important;outline:none !important;box-shadow:none !important}.xapp-chat-button.visible{animation:widget-hide-shrink .5s forwards}.xapp-chat-button:focus-visible{outline:none;box-shadow:0 0 4px 4px rgba(0,0,0,.3)}.xapp-chat-button__btn{position:absolute;width:48px;height:48px;border-radius:24px;background-color:var(--xapp-chat-button-background, var(--xapp-primary-color, #616161));box-shadow:0 0 8px 0 rgba(0,0,0,.3);bottom:0px !important;right:0px !important;top:0px !important;display:flex;align-items:center;justify-content:center}.xapp-chat-button__btn svg,.xapp-chat-button__btn img{display:block}.xapp-chat-button__btn svg{margin:auto;height:100%}.xapp-chat-button__btn img{width:var(--xapp-chat-button-image-width, 22px);height:var(--xapp-chat-button-image-height, 22px)}.xapp-chat-button__cta{position:absolute;bottom:56px;right:24px;white-space:nowrap;font-size:16px;font-family:RobotoRegular,serif}.xapp-chat-button:hover{background:rgba(0,0,0,0) !important}.chat-card-container{border-radius:10px;position:relative;overflow:hidden;color:#fff;background:#f6f6f6}.chat-card-container .chat-card-img{border-radius:0}.chat-card-container__img{min-width:220px;height:120px}.chat-card-container .chat-card-title{padding:2px 10px;color:#2e375a;font-family:RobotoMedium,serif;font-size:12px;line-height:14px;font-weight:bold}.chat-card-container .chat-card-title span{display:inline-block;white-space:pre-wrap}.chat-card-container .chat-card-sub-title{padding:2px 10px;color:#2e375a;font-family:RobotoRegular,serif;font-size:10px;line-height:14px}.chat-card-container .chat-card-sub-title span{display:inline-block;white-space:pre-wrap}.chat-card-container .action-button{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;line-height:25px;border-radius:25px;background-color:var(--xapp-primary-color, #616161);color:#d5d9e7;cursor:pointer}.chat-card-container .action-button:focus-visible{outline:none;filter:invert(100%)}.chat-chip{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;color:#2f385a;line-height:25px;border-radius:25px;border:thin solid #aeb3be;cursor:pointer;user-select:none}.chat-chip-link{text-decoration:underline}@media screen and (max-width: 640px){.chat-chip{min-height:44px;padding:8px}}.chat-chips{width:100%;overflow-x:auto;overflow-y:hidden;white-space:nowrap;box-sizing:border-box;margin:0 auto;padding:10px;scroll-behavior:smooth;-ms-overflow-style:none;-moz-overflow-style:none;-webkit-overflow-scrolling:touch}.chat-chips::-webkit-scrollbar{background-color:#fff;height:10px}.chat-chips::-webkit-scrollbar-track{background-color:#fff}.chat-chips::-webkit-scrollbar-button{display:none}.chat-chips::-webkit-scrollbar-thumb{background-color:#babac0;border-radius:10px;border:2.5px solid #fff}.status-container{display:flex;flex-flow:row nowrap;justify-content:space-between;padding-top:var(--xapp-header-padding-top, 0px);padding-right:var(--xapp-header-padding-right, 5px);padding-bottom:var(--xapp-header-padding-bottom, 0px);padding-left:var(--xapp-header-padding-left, 10px);box-sizing:border-box;z-index:999;line-height:40px;min-height:calc(40px + var(--xapp-header-padding-top, 0px) + var(--xapp-header-padding-bottom, 0px));flex-shrink:0;color:#fff;position:relative;width:100%;background:var(--xapp-header-background, var(--xapp-primary-color, #616161)) !important;border-bottom:solid var(--xapp-header-border-width, 0px) var(--xapp-header-border-color, var(--xapp-primary-color, #616161));align-items:center}.status-container__avatar{width:30px;height:30px}.status-container__avatar .avatar:not(.avatar--empty){background-color:var(--xapp-header-avatar-background, #ffffff)}.status-text{display:inline-flex;flex-direction:column;position:absolute;line-height:100%}.status-text-positionLeft{left:56px}.status-text-positionLeftNoAvatar{left:8px}.status-text-positionWithMenu{left:88px}.status-text-positionCenter{left:50%;transform:translateX(-50%);align-items:center}.status-text-title{font-family:var(--xapp-header-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-header-font-weight, normal);font-size:var(--xapp-header-font-size, 16px);font-style:var(--xapp-header-font-style, normal);color:var(--xapp-header-text-color, rgba(255, 255, 255, 0.87));font-family:var(--xapp-header-font-family, "Overpass", sans-serif);font-weight:var(--xapp-header-font-weight, 500)}.status-text-subtitle{margin-top:2px;font-family:var(--xapp-header-subtitle-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-header-subtitle-font-weight, normal);font-size:var(--xapp-header-subtitle-font-size, 10px);font-style:var(--xapp-header-subtitle-font-style, normal);color:var(--xapp-header-subtitle-text-color, rgba(255, 255, 255, 0.5));font-family:var(--xapp-header-subtitle-font-family, "Overpass", sans-serif);font-weight:var(--xapp-header-subtitle-font-weight, 400)}.xa-chat-menu-container{z-index:100}.background-header .status-container{background-color:#616161 !important}.no-avatar{left:0px !important;color:aqua !important}@media screen and (max-width: 640px){.status-container{line-height:44px;height:44px}}.chat-menu{display:flex;flex-flow:column;flex-shrink:0;z-index:999;overflow-y:hidden}.chat-menu-bottom--closed{max-height:0}.chat-menu-bottom--opened{max-height:calc(var(--xapp-widget-height, 500px) - 40)}.chat-menu-left{position:absolute;top:40px;left:0;width:auto;max-width:var(--xapp-widget-width, 400px);background:var(--xapp-menu-item-background, #efefef);height:100%;overflow:hidden;-webkit-transition:left 1.5s ease-out;-moz-transition:left 1.5s ease-out;-o-transition:left 1.5s ease-out;transition:left 1.5s ease-out}.chat-menu-left--closed{left:-var(--xapp-widget-width, 400px)}.chat-menu-right{position:absolute;top:40px;right:0;width:auto;max-width:var(--xapp-widget-width, 400px);background:var(--xapp-menu-item-background, #efefef);height:100%;overflow:hidden;-webkit-transition:right 1.5s ease-out;-moz-transition:right 1.5s ease-out;-o-transition:right 1.5s ease-out;transition:right 1.5s ease-out}.chat-menu-right--closed{right:-var(--xapp-widget-width, 400px)}.chat-msg-container-wrapper{display:flex;flex-direction:column;margin-bottom:16px}.chat-msg-container-wrapper.visitor{justify-content:flex-end}.chat-msg-container-wrapper.agent{justify-content:flex-start}.chat-msg-container-wrapper.sibling{margin-bottom:8px}.chat-msg-container-wrapper.sibling .avatar{display:none}.chat-msg-timestamp{font-size:.8em}.chat-msg-timestamp.visitor{padding-right:20px;align-self:flex-end}.chat-msg-timestamp.agent{padding-left:48px;align-self:flex-start}.xappw-chat-msg-part--avatar-bottom~.chat-msg-timestamp{display:none}.chat-msg-container{display:flex;flex-flow:column nowrap;flex:0 0 auto;justify-content:flex-start;max-width:100%;position:relative}.chat-msg-container.visitor{align-items:flex-end}.chat-msg-container.visitor .xappw-chat-msg-part__avatar{right:0;display:none}.chat-msg-container.agent{align-items:stretch}.chat-msg-container.agent .xappw-chat-msg-part__avatar{width:36px;height:36px;left:0}.chat-msg-container.agent .xappw-chat-msg-part--avatar-bottom{align-self:flex-start}.message-sr-only{display:none}.chat-text-container p{margin:0 0 8px 0;padding:0}.chat-msg-agent-typing{margin-top:auto;padding-bottom:16px;font-family:var(--xapp-text-typing-status-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-text-typing-status-font-weight, normal);font-size:var(--xapp-text-typing-status-font-size, 14px);font-style:var(--xapp-text-typing-status-font-style, normal);color:var(--xapp-text-typing-status-text-color, #bfbfbf)}.chat-msg-agent-typing::after{display:inline-block;animation:dots steps(1, end) 1.5s infinite;content:""}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}100%{content:""}}.chat-text-bubble{border-radius:10px;padding:10px;display:inline-block;word-wrap:break-word;position:relative;overflow:visible}.chat-text-bubble--mine{font-family:var(--xapp-messages-mine-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-messages-mine-font-weight, normal);font-size:var(--xapp-messages-mine-font-size, 14px);font-style:var(--xapp-messages-mine-font-style, normal);color:var(--xapp-messages-mine-text-color, #ffffff);background:var(--xapp-messages-mine-bubble-color, hsl(120, 75%, 50%));border-bottom-right-radius:0}.chat-text-bubble--mine .chat-text-bubble__tail{right:-8px;color:var(--xapp-messages-mine-bubble-color, hsl(120, 75%, 50%))}.chat-text-bubble--others{font-family:var(--xapp-messages-others-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-messages-others-font-weight, normal);font-size:var(--xapp-messages-others-font-size, 14px);font-style:var(--xapp-messages-others-font-style, normal);color:var(--xapp-messages-others-text-color, #262726);background:var(--xapp-messages-others-bubble-color, #e1e2e1);border-bottom-left-radius:0}.chat-text-bubble--others .chat-text-bubble__tail{left:-8px;color:var(--xapp-messages-others-bubble-color, #e1e2e1)}.chat-text-bubble span{white-space:pre-wrap}.chat-typing-progress .chat-text-bubble{padding:8px 10px;margin-top:4px}.chat-text-bubble__tail{position:absolute;width:8px;height:24px;bottom:0}.xappw-chat-msg-part{display:inline-block;position:relative;word-wrap:break-word}.xappw-chat-msg-part+.xappw-chat-msg-part{margin-top:4px}.xappw-chat-msg-part+.xappw-chat-msg-part .chat-card-img{border-radius:12px 12px 12px 0}.xappw-chat-msg-part__avatar{position:absolute;bottom:0;z-index:10}.xappw-chat-msg-part ul{list-style-position:inside;padding:0;margin:0 0 8px 0}.xappw-chat-msg-part li{padding:0;margin:0}.xappw-chat-msg-part--avatar-below{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.25rem}.xappw-chat-msg-part--avatar-below .xappw-chat-msg-part__avatar{position:static;z-index:auto;margin-left:0;margin-top:.125rem}.xappw-chat-msg-part--avatar-below .chat-msg{margin-left:30px !important}.xappw-chat-msg-part__avatar-wrapper{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.xappw-chat-msg-part__avatar-name{font-size:.8rem;color:#666}.xappw-chat-msg-part--avatar-bottom{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.25rem}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar{position:static;z-index:auto;margin-left:0;margin-top:0;width:18px !important;height:18px !important}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar .avatar{border-radius:9px}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar-wrapper{margin-top:.125rem;gap:.25rem;align-items:center}.xappw-chat-msg-part--avatar-bottom .xappw-chat-msg-part__avatar-name{font-size:.875rem;line-height:18px}.xappw-chat-msg-part--avatar-bottom .chat-msg{margin-left:0 !important}.xappw-chat-msg-part--avatar-bottom .chat-text-bubble--others{border-bottom-right-radius:10px !important}.xappw-chat-msg-part--avatar-bottom .chat-text-bubble--mine{border-bottom-left-radius:10px !important}.xappw-chat-msg-part--avatar-bottom .chat-text-bubble__tail{display:none !important}.cta-bubble{position:relative;border-radius:50%;background:var(--xapp-cta-background, #e1e2e1);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;text-align:center;border:var(--xapp-widget-border-width, 0px) solid var(--xapp-widget-border-color, var(--xapp-primary-color, #616161));border-radius:var(--xapp-widget-border-radius, 50%);max-width:192px}.cta-bubble__tail{position:absolute;left:-16px;right:-16px;top:-16px;bottom:-16px;z-index:1;color:var(--xapp-cta-background, #e1e2e1)}.cta-bubble__tail svg{width:100%;height:100%;margin:0;padding:0}.cta-bubble__content{font-family:var(--xapp-cta-font-family, 14px);font-size:var(--xapp-cta-font-size, 14px);color:var(--xapp-cta-text-color, var(--xapp-primary-color, #616161));z-index:2;text-transform:none !important}.cta-bubble__dismiss{position:absolute;top:4px;right:4px;z-index:3;background:rgba(0,0,0,.2);border:none;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:#fff;transition:background-color .2s}.cta-bubble__dismiss:hover{background:rgba(0,0,0,.4)}.cta-bubble__dismiss:focus{outline:2px solid rgba(0,0,0,.5);outline-offset:2px}.cta-bubble__dismiss svg{display:block}.xappw-vlist{display:flex;flex-flow:column nowrap}.xappw-vlist__header{padding:16px 8px;font-family:"RobotoRegular","serif";font-weight:bold;font-size:16px}.xappw-vlist-container{display:flex;flex-flow:column nowrap;flex:0 0 auto;justify-content:flex-start;max-width:100%;position:relative;white-space:nowrap;border:solid 1px #ccc;border-radius:12px;overflow:hidden}.xappw-vlist-container .xappw-vlist-container__item{display:inline-block;border-top:solid 1px #ccc}.xappw-vlist-container .xappw-vlist-container__item:first-child{border-top:none}.xappw-vlist-item{display:flex;flex-direction:row;flex:0 0 auto;min-width:100%;min-height:56px;padding:8px;box-sizing:border-box;cursor:pointer}.xappw-vlist-item--normal{align-items:flex-start}.xappw-vlist-item--titles{align-items:center}.xappw-vlist-item:hover{background-color:#eee}.xappw-vlist-item__description{display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden}.xappw-vlist-item__side{flex:0 0 auto;display:flex;flex-direction:column}.xappw-vlist-item__img{border-radius:12px;width:40px;height:40px;overflow:hidden}.xappw-vlist-item__external-link{width:20px;margin:0 4px 4px auto;display:inline-block}.xappw-vlist-item__title{text-align:left;font-family:var(--xapp-carousel-title-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-title-font-weight, bold);font-size:var(--xapp-carousel-title-font-size, 14px);font-style:var(--xapp-carousel-title-font-style, normal);color:var(--xapp-carousel-title-text-color, #000);line-height:1.3}.xappw-vlist-item__title span{display:inline-block;white-space:pre-wrap}.xappw-vlist-item__link{font-family:var(--xapp-carousel-link-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-link-font-weight, normal);font-size:var(--xapp-carousel-link-font-size, 12px);font-style:var(--xapp-carousel-link-font-style, normal);color:var(--xapp-carousel-link-text-color, #666);line-height:1.3;overflow:hidden;text-overflow:ellipsis;max-width:100%}.xappw-vlist-item__subtitle{text-align:left;font-family:var(--xapp-carousel-subtitle-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-carousel-subtitle-font-weight, normal);font-size:var(--xapp-carousel-subtitle-font-size, 12px);font-style:var(--xapp-carousel-subtitle-font-style, italic);color:var(--xapp-carousel-subtitle-text-color, #979797);line-height:1.3}.xappw-vlist-item__subtitle span{display:inline-block;white-space:pre-wrap}.xappw-vlist-item .action-button{display:inline-block;padding:0 10px;margin:3px;height:25px;font-size:12px;line-height:25px;border-radius:25px;background-color:var(--xapp-carousel-action-button-color, var(--xapp-primary-color, #616161));color:#d5d9e7;cursor:pointer}.xappw-vlist-item .action-button:focus-visible{outline:none;filter:invert(100%)}.message-list-container{position:relative;flex:1 1 0;min-height:0;overflow-y:scroll;display:flex;flex-direction:column;background:var(--xapp-content-background, #fff)}.message-list-container::-webkit-scrollbar{display:none}.message-list-container{scrollbar-width:none;-ms-overflow-style:none}.message-list-container__msgs{display:flex;flex-direction:column;flex-grow:1;flex-shrink:1;padding-top:var(--xapp-messages-padding-top, 16px);padding-right:var(--xapp-messages-padding-right, 16px);padding-bottom:var(--xapp-messages-padding-bottom, 0);padding-left:var(--xapp-messages-padding-left, 20px)}.message-list-container__chips{flex:0 0 auto;border-top:solid 1px #ccc;border-bottom:solid 1px #ccc;margin-top:auto}.message-list-container__chips--empty{flex-basis:0;border:none;overflow:hidden}.xappw-chat-action-item{text-decoration:none}.xappw-chat-action-item--action{cursor:pointer}.chat-menu-item{border:var(--xapp-chat-menu-item-border-width, #fff) solid var(--xapp-chat-menu-item-border-color, #fff);border-radius:var(--xapp-chat-menu-item-border-radius, 0px);opacity:1;background:var(--xapp-menu-item-background, #efefef);font-family:var(--xapp-menu-item-font-family, 14px);font-weight:var(--xapp-menu-item-font-weight, normal);font-size:var(--xapp-menu-item-font-size, 14px);font-style:var(--xapp-menu-item-font-style, normal);color:var(--xapp-menu-item-text-color, var(--xapp-primary-color, #616161));height:var(--xapp-menu-item-height, 24px);width:100%;max-width:100%;box-sizing:border-box;padding:4px 4px 4px 30px;text-align:left}.chat-menu-item:hover{opacity:.8;cursor:pointer}.chat-menu-item--subtitle{font-family:var(--xapp-menu-item-subtitle-font-family, 14px);font-weight:var(--xapp-menu-item-subtitle-font-weight, normal);font-size:var(--xapp-menu-item-subtitle-font-size, 14px);font-style:var(--xapp-menu-item-subtitle-font-style, normal);color:var(--xapp-menu-item-text-subtitle-color, var(--xapp-primary-color, #616161))}.chat-menu-item:focus-visible{outline:none;filter:invert(100%)}.chat-menu-item-static{border:var(--xapp-chat-menu-item-border-width, #fff) solid var(--xapp-chat-menu-item-border-color, #fff);border-radius:var(--xapp-chat-menu-item-border-radius, 0px);background:var(--xapp-menu-item-background, #efefef);font-family:var(--xapp-menu-item-font-family, 14px);font-weight:var(--xapp-menu-item-font-weight, normal);font-size:var(--xapp-menu-item-font-size, 14px);font-style:var(--xapp-menu-item-font-style, normal);color:var(--xapp-menu-item-text-color, var(--xapp-primary-color, #616161));height:var(--xapp-menu-item-height, 24px);display:flex;justify-content:center;text-align:center;padding:4px 4px 4px 30px}.chat-menu-item-static--body{font-family:var(--xapp-menu-item-subtitle-font-family, 14px);font-weight:var(--xapp-menu-item-subtitle-font-weight, normal);font-size:var(--xapp-menu-item-subtitle-font-size, 14px);font-style:var(--xapp-menu-item-subtitle-font-style, normal);color:var(--xapp-menu-item-text-subtitle-color, var(--xapp-primary-color, #616161))}.chat-menu-item-static-text{border:var(--xapp-chat-menu-item-border-width, #fff) solid var(--xapp-chat-menu-item-border-color, #fff);border-radius:var(--xapp-chat-menu-item-border-radius, 0px);background:var(--xapp-menu-item-background, #efefef);font-family:var(--xapp-menu-item-font-family, 14px);font-weight:var(--xapp-menu-item-font-weight, normal);font-size:var(--xapp-menu-item-font-size, 14px);font-style:var(--xapp-menu-item-font-style, normal);color:var(--xapp-menu-item-text-color, var(--xapp-primary-color, #616161));max-height:100%;max-width:auto;display:flex;justify-content:center;text-align:center;padding:4px 4px 4px 30px}.chat-menu-item-static-text--body{font-family:var(--xapp-menu-item-subtitle-font-family, 14px);font-weight:var(--xapp-menu-item-subtitle-font-weight, normal);font-size:var(--xapp-menu-item-subtitle-font-size, 14px);font-style:var(--xapp-menu-item-subtitle-font-style, normal);color:var(--xapp-menu-item-text-subtitle-color, var(--xapp-primary-color, #616161))}.chat-footer{position:relative;flex:0 0 auto;background-color:var(--xapp-footer-background, var(--xapp-primary-color, #616161)) !important}.chat-footer__menu-icon{border-top:solid var(--xapp-footer-border-width, 0px) var(--xapp-footer-border-color, var(--xapp-primary-color, #616161));z-index:999;padding:6px 0;flex-shrink:0;display:flex;justify-content:center}.chat-footer__menu-icon+.chat-footer__input{margin-top:-6px}.chat-footer__input{margin-top:6px;margin-bottom:6px}.xappw-chat-footer__suggestions{position:absolute;bottom:100%;left:0;right:0;overflow:hidden;z-index:100}.background-footer .chat-footer{background-color:#616161 !important}.server-offline{position:absolute;top:0;right:0;left:0;bottom:0;z-index:5000;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.error-overlay{position:fixed;right:10px;width:400px;max-width:calc(100% - 20px);max-height:50vh;background:#1e1e1e;border:1px solid #333;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.3);z-index:999999;font-family:"Monaco","Menlo","Ubuntu Mono",monospace;font-size:12px;color:#fff}.error-overlay--bottom{bottom:10px}.error-overlay--top{top:10px}.error-overlay.minimized{max-height:auto}.error-overlay .error-overlay-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#2d2d2d;border-bottom:1px solid #333;border-radius:8px 8px 0 0;min-height:52px}.error-overlay .error-overlay-header .error-overlay-title{font-weight:bold;color:#ff6b6b}.error-overlay .error-overlay-header .error-overlay-actions{display:flex;gap:4px}.error-overlay .error-overlay-header .error-overlay-actions button{background:none;border:none;color:#aaa;cursor:pointer;padding:6px 10px;font-size:18px;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.error-overlay .error-overlay-header .error-overlay-actions button:hover{color:#fff;background:hsla(0,0%,100%,.1)}.error-overlay .error-overlay-header .error-overlay-actions button:active{background:hsla(0,0%,100%,.2);transform:scale(0.95)}.error-overlay .error-overlay-content{max-height:calc(50vh - 40px);overflow-y:auto;padding:8px}.error-overlay .error-overlay-content::-webkit-scrollbar{width:8px}.error-overlay .error-overlay-content::-webkit-scrollbar-track{background:#2d2d2d}.error-overlay .error-overlay-content::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.error-overlay .error-overlay-content::-webkit-scrollbar-thumb:hover{background:#666}.error-overlay .error-overlay-content .error-entry{margin-bottom:8px;padding:8px;background:#2d2d2d;border-radius:4px;border-left:3px solid}.error-overlay .error-overlay-content .error-entry.error-error{border-left-color:#ff6b6b}.error-overlay .error-overlay-content .error-entry.error-warning{border-left-color:#ffd93d}.error-overlay .error-overlay-content .error-entry.error-info{border-left-color:#6bcf7f}.error-overlay .error-overlay-content .error-entry .error-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.error-overlay .error-overlay-content .error-entry .error-header .error-time{color:#888;font-size:10px}.error-overlay .error-overlay-content .error-entry .error-header .error-count{color:#ffd93d;font-size:10px;font-weight:bold}.error-overlay .error-overlay-content .error-entry .error-header .error-badge{padding:2px 6px;border-radius:3px;font-size:10px;text-transform:uppercase;font-weight:bold}.error-overlay .error-overlay-content .error-entry .error-header .error-badge-error{background:rgba(255,107,107,.2);color:#ff6b6b}.error-overlay .error-overlay-content .error-entry .error-header .error-badge-warning{background:rgba(255,217,61,.2);color:#ffd93d}.error-overlay .error-overlay-content .error-entry .error-header .error-badge-info{background:rgba(107,207,127,.2);color:#6bcf7f}.error-overlay .error-overlay-content .error-entry .error-message{color:#f0f0f0;word-break:break-word;line-height:1.4}.error-overlay .error-overlay-content .error-entry .error-stack{margin-top:8px}.error-overlay .error-overlay-content .error-entry .error-stack summary{color:#888;cursor:pointer;font-size:11px}.error-overlay .error-overlay-content .error-entry .error-stack summary:hover{color:#aaa}.error-overlay .error-overlay-content .error-entry .error-stack pre{margin:4px 0 0 0;padding:8px;background:#1a1a1a;border-radius:4px;font-size:10px;color:#888;overflow-x:auto;line-height:1.3}.ws-button-container{padding:8px 16px;background:#fff;display:flex;justify-content:flex-end;align-items:center;transform-origin:top;transition:transform .3s ease-out,opacity .3s ease-out,max-height .3s ease-out,padding .3s ease-out;max-height:100px;animation:ws-button-appear .3s ease-out}.ws-button-container--dismissing{transform:scaleY(0);opacity:0;max-height:0;padding-top:0;padding-bottom:0}@keyframes ws-button-appear{0%{transform:scaleY(0);opacity:0;max-height:0;padding-top:0;padding-bottom:0}100%{transform:scaleY(1);opacity:1;max-height:100px;padding-top:8px;padding-bottom:8px}}.ws-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;height:36px;font-size:14px;font-weight:500;color:#2f385a;line-height:1.5;border-radius:18px;border:1px solid #aeb3be;background-color:#fff;cursor:pointer;user-select:none;transition:all .2s ease-in-out;position:relative;min-width:100px}.ws-button:hover:not(.ws-button--disabled){background-color:#f5f5f5;border-color:#2f385a}.ws-button:active:not(.ws-button--disabled){transform:scale(0.98)}.ws-button--disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.ws-button--spinning{padding-left:40px;cursor:not-allowed;pointer-events:none}.ws-button__text{display:inline-block}.ws-button__spinner{position:absolute;left:12px;width:16px;height:16px;border:2px solid rgba(47,56,90,.2);border-top-color:#2f385a;border-right-color:#2f385a;border-radius:50%;animation:ws-button-spin .6s linear infinite}@keyframes ws-button-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@media screen and (max-width: 640px){.ws-button{min-height:44px;padding:12px 20px;font-size:16px}.ws-button--spinning{padding-left:48px}.ws-button__spinner{left:16px;width:20px;height:20px}}.chat-card-img{display:block;width:100%;height:100%}.chat-card-img__content{background-position:center;background-size:cover;width:100%;height:100%}.button-group{display:flex;flex-direction:row;align-items:center;gap:4px;height:32px;flex-shrink:0}.button-group .menu-button,.button-group .refresh-button,.button-group .minimize-button,.button-group .cancel-button{position:static !important;top:auto !important;right:auto !important;margin:0 !important}.cancel-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-cancel-button-color, var(--xapp-cancel-button-color, #a3a6b4));background-color:var(--xapp-cancel-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.cancel-button:hover{background-color:var(--xapp-cancel-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.cancel-button:after{content:"⨉" !important;opacity:inherit !important}.cancel-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.drawer-bars{display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:rgba(0,0,0,0);border:none;padding:6px 0;cursor:pointer}.drawer-bar{flex:0 0 5px;border-radius:5px;background-color:var(--xapp-menu-button-color, #fff);width:25px;margin:2.5px}.drawer-bar:first-child{margin-top:0}.drawer-bar:last-child{margin-bottom:0}@media screen and (max-width: 640px){.drawer-bars{height:44px;width:44px;line-height:44px}}.menu-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-menu-button-color, var(--xapp-cancel-button-color, #a3a6b4));background-color:var(--xapp-menu-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.menu-button:hover{background-color:var(--xapp-menu-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.menu-button:after{content:"⋮" !important;opacity:inherit !important}.menu-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.minimize-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-minimize-button-color, var(--xapp-minimize-button-color, #a3a6b4)) !important;background-color:var(--xapp-minimize-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.minimize-button:hover{background-color:var(--xapp-minimize-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.minimize-button:after{content:"─" !important;opacity:inherit !important}.minimize-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.refresh-button{margin:0px !important;padding:0px !important;min-width:32px;width:32px;height:32px;border:none;outline:none;display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:16px;color:var(--xapp-refresh-button-color, var(--xapp-refresh-button-color, #a3a6b4));background-color:var(--xapp-refresh-button-bg, rgba(255, 255, 255, 0.15)) !important;border-radius:50%;transition:background-color .2s ease}.refresh-button:hover{background-color:var(--xapp-refresh-button-hover-bg, rgba(255, 255, 255, 0.25)) !important}.refresh-button:after{content:"⟳" !important;opacity:inherit !important}.refresh-button:focus-visible{outline:2px solid hsla(0,0%,100%,.5);outline-offset:2px}.chat-schedule-button-container{padding:10px 0;display:flex;flex-direction:row;justify-content:center;margin-top:8px}.chat-schedule-button{border-radius:26px;min-width:200px;height:52px;text-align:center;font-size:1.2em;line-height:1.22857;background-color:var(--xapp-header-background, #0295D2);color:var(--xapp-header-text-color, rgba(255, 255, 255, 0.87));border-width:0px;padding:0 10px;cursor:pointer}.chat-schedule-button:hover{background-color:var(--xapp-header-background-hover, rgb(1.5188679245, 113.1556603774, 159.4811320755))}.chat-schedule-button span{margin-left:6px;position:relative;top:4px}.chat-schedule-button i{position:relative;top:4px}.xappw-admin-input-container{flex-shrink:0;z-index:999;padding-left:20px;padding-right:20px;padding-bottom:0;padding-top:10px}.xappw-admin-input-container:not(.visible){display:none}.xappw-admin-input-container.drag-drop-zone{outline:3px dashed gray;outline-offset:-3px}.xappw-admin-input-form{display:flex;align-items:center;overflow:hidden;line-height:48px;position:relative}.xappw-admin-input-form__buttons{display:flex;align-items:center;right:10px;z-index:2;margin-right:10px}.xappw-admin-input-form__btn{width:56px}.xappw-admin-input{width:calc(100% - 60px);min-height:32px;padding:7px 10px;line-height:normal;display:inline-block;box-sizing:border-box;font-family:var(--xapp-input-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-font-weight, normal);font-size:var(--xapp-input-font-size, 16px);font-style:var(--xapp-input-font-style, normal);color:var(--xapp-input-text-color, #000);outline-width:0;border:var(--xapp-input-border-width, #fff) solid var(--xapp-input-border-color, #fff);border-radius:var(--xapp-input-border-radius, 20px);background:var(--xapp-input-background, #fff);margin:auto}.xappw-admin-input input:focus::placeholder{color:rgba(0,0,0,0)}.xappw-admin-input input::-webkit-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input:-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input::-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input:-ms-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input input::placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-admin-input__input{border:none;outline:none;font-size:inherit;line-height:inherit}#adminBarInput{width:100%}.xappw-admin-input{z-index:1}@media screen and (max-width: 640px){.xappw-admin-input-form{height:44px}}.chat-footer__branding{text-align:end;padding-right:20px;padding-bottom:12px;font-family:var(--xapp-footer-branding-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-footer-branding-font-weight, normal);font-size:var(--xapp-footer-branding-font-size, 14px);font-style:var(--xapp-footer-branding-font-style, normal);color:var(--xapp-footer-branding-text-color, rgba(255, 255, 255, 0.87))}.xapp-search-icon-button{border:none;background:none;background-color:rgba(0,0,0,0) !important;cursor:pointer;padding:0;display:flex;align-items:center}.xapp-search-icon-button svg{display:block;margin:auto;height:100%}.xapp-search-icon-button__content{display:flex;width:100%}.xapp-search-icon-button:focus-visible{outline:none;filter:invert(100%)}@media screen and (max-width: 640px){.xapp-search-icon-button{box-sizing:border-box;padding:12px;min-height:44px;min-width:44px}}.xappw-message-bubble{border-radius:10px;padding:10px;background:var(--xapp-bubble-background, #fff)}.xappw-rich-input__input{display:block !important;width:calc(100% - 50px) !important;height:37px;border:none !important;outline:none !important;box-sizing:border-box !important;box-shadow:none !important;margin:0 !important;font-size:inherit !important;line-height:inherit;color:inherit !important;background-color:inherit !important}.xappw-rich-input__input:focus{color:inherit !important}@media screen and (max-width: 640px){.xappw-rich-input__input{width:calc(100% - 90px)}}.xapp-search-rich-text{display:inline-block;max-width:100%;overflow:hidden;white-space:pre-wrap}.xappw-suggestions-group__items{display:flex;flex-direction:column;padding:2px 0}.xappw-suggestions-group__heading{margin:0 16px}.xappw-suggestions-group-heading{display:flex;align-items:center;font-size:12px;padding:2px 0;color:#061739}.xappw-suggestions-group-heading:after{content:"";border-top:solid 1px #d4d4d4;flex:1 1 auto;margin-left:8px}.xappw-suggestions-item{padding:0 0 0 24px;box-sizing:border-box;width:100%;white-space:nowrap;display:flex;align-items:center;overflow:hidden;font-size:15px;cursor:pointer;border-bottom:solid 1px rgba(0,0,0,0);color:#061739}.xappw-suggestions-item--current,.xappw-suggestions-item:hover{background-color:#3395d2;color:#fff;text-decoration:underline}@media(hover: hover){.xappw-suggestions-item--current .xappw-suggestions-item__actions,.xappw-suggestions-item:hover .xappw-suggestions-item__actions{visibility:visible;color:#fff}}.xappw-suggestions-item__texts{padding:3px 0;flex:1 1 auto;overflow:hidden}.xappw-suggestions-item__actions{flex:0 0 auto;display:flex;margin-left:8px}@media(hover: hover){.xappw-suggestions-item__actions{visibility:hidden}}.xappw-suggestions-list{display:flex;flex-direction:column}.xapp-search-rich-text-span{flex:0 1 auto;display:inline-block;max-width:100%}.xapp-search-rich-text-span:last-child{overflow:hidden;white-space:pre;text-overflow:ellipsis}.xapp-search-rich-text-bold-span{font-weight:bold}.xapp-search-rich-text-input-span{text-decoration:none;font-size:inherit;height:calc(1.5em - 2px);line-height:1em;width:8em;color:inherit}.xapp-search-rich-text-input-span--readonly{border:dashed 1px green;color:green;height:calc(1em - 2px)}.xapp-search-rich-text-normal-span{font-weight:normal}.xappw-suggestions{display:flex;flex-direction:column;font-family:RobotoRegular,serif}.xappw-suggestions__answer{background-color:#d9d9d9;padding:8px 11px;border-radius:12px 12px 0px 0px}.xappw-suggestions__groups{background-color:#f3f3f3;padding:8px 0;border-bottom:1px solid #e5e5e5}.xappw-suggestions__use{width:28px;padding:4px;color:inherit}.xappw-suggestions__use svg{display:block;margin:auto;height:100%}.xappw-input-container{flex-shrink:0;z-index:999;padding:6px 20px}.xappw-input-container:not(.visible){display:none}.xappw-input-container.drag-drop-zone{outline:3px dashed gray;outline-offset:-3px}.xappw-input-form{display:flex;align-items:center;overflow:hidden;line-height:48px;position:relative;border-radius:var(--xapp-input-border-radius, 20px);background:var(--xapp-input-background, #fff);padding:0px !important}.xappw-input-form__buttons{display:flex;align-items:center;position:absolute;right:10px;z-index:2}.xappw-input-form__btn{min-width:20px;width:20px;height:16px}.xappw-input{min-height:32px;padding:7px 10px;line-height:normal;display:inline-block;box-sizing:border-box;font-family:var(--xapp-input-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-font-weight, normal);font-size:var(--xapp-input-font-size, 16px);font-style:var(--xapp-input-font-style, normal);color:var(--xapp-input-text-color, #000);outline-width:0;flex-grow:1;border:var(--xapp-input-border-width, #fff) solid var(--xapp-input-border-color, #fff);background:rgba(0,0,0,0)}.xappw-input input:focus::placeholder{color:rgba(0,0,0,0)}.xappw-input input::-webkit-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input:-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input::-moz-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input:-ms-input-placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input input::placeholder{font-family:var(--xapp-input-placeholder-font-family, "RobotoRegular", "serif");font-weight:var(--xapp-input-placeholder-font-weight, normal);font-size:var(--xapp-input-placeholder-font-size, 14px);font-style:var(--xapp-input-placeholder-font-style, normal);color:var(--xapp-input-placeholder-text-color, #e1e2e1)}.xappw-input{z-index:1}@media screen and (max-width: 640px){.xappw-input-form{height:44px}}.message-form .section{margin-bottom:16px}.message-form .label{display:block;margin-bottom:4px;color:var(--xapp-primary-color, #616161)}.message-form input,.message-form textarea{border:1px solid #ddd;border-radius:4px;outline-width:0;width:100%;font-size:14px;box-sizing:border-box}.message-form input{height:32px;padding:0 10px}.message-form textarea{padding:8px 10px;min-height:100px;resize:none;overflow-y:auto}.message-form__submit{width:100%;background-color:var(--xapp-primary-color, #616161);color:#fff}.message-form--shrink-enter{opacity:.01;position:relative;top:100px}.message-form--shrink-enter-active{position:relative;top:0;opacity:1;transition:opacity 500ms,top 500ms;transition-delay:500ms}.message-form--shrink-exit{opacity:.5;position:relative;top:0}.message-form--shrink-exit-active{top:-200px;opacity:.01;transition:top 500ms,opacity 500ms}.message-form--grow-enter{opacity:.5;position:relative;top:-200px}.message-form--grow-enter-active{position:relative;top:0;opacity:1;transition:opacity 500ms,top 500ms}.message-form--grow-exit{opacity:.5;position:relative;top:0;height:50px}.message-form--grow-exit-active{top:-100px;height:0;opacity:.01;transition:top 500ms,opacity 500ms,height 500ms}.message-form--sent .button-resend{width:100%;margin-top:16px;background-color:var(--xapp-primary-color, #616161);color:#fff}.xappw-multiselect{list-style:none;padding:0;margin:0}.xappw-multiselect li{padding:0;margin:0}.card-container{padding-top:16px;position:relative}.card-container__content{color:#555;border-radius:8px;border:1px solid #ddd;padding:24px 16px 16px 16px;font-size:14px}.card-container__title{text-align:center;color:var(--xapp-primary-color, #616161);margin-bottom:8px}.card-container__icon{width:32px;height:32px;position:relative;background-color:#fff;border:1px solid #e0e0e0;border-radius:50%;box-shadow:0 2px 4px 0 rgba(0,0,0,.1);margin:-16px auto;z-index:999}.card-container__icon svg{display:block;margin:auto;height:100%}@keyframes typing-animation{0%{transform:translateY(0px)}28%{transform:translateY(-5px)}44%{transform:translateY(0px)}}.typing-indicator{height:20px;display:inline-flex;align-items:center}.typing-indicator-part:nth-child(1){animation-delay:200ms}.typing-indicator-part:nth-child(2){animation-delay:300ms}.typing-indicator-part:nth-child(3){animation-delay:400ms}.typing-indicator-part{display:inline-block;animation:typing-animation 1.5s infinite ease-in-out;border-radius:50%;width:7px;height:7px;margin:0 3px;background-color:#7a7a7a}.xappw-send-button{color:var(--xapp-send-button-color, #505050) !important;margin:0;background:var(--xapp-send-button-bg, transparent) !important}.xappw-send-button:hover{background:var(--xapp-send-button-hover-bg, transparent) !important}.xappw-send-button:disabled{background:var(--xapp-send-button-disabled-bg, transparent) !important}.xappw-custom-send-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;width:var(--xapp-send-button-width, 20px);height:var(--xapp-send-button-width, 20px);border:unset;background:rgba(0,0,0,0);padding:8px;transition:opacity .2s ease;position:relative;box-sizing:border-box}.xappw-custom-send-button:disabled{cursor:not-allowed;opacity:.6}.xappw-custom-send-button .send-button-icon{width:24px;height:24px;display:block}@media screen and (max-width: 640px){.xappw-send-button{box-sizing:border-box !important;padding:12px !important;min-height:44px;min-width:44px;margin:0}.xappw-custom-send-button{box-sizing:border-box !important;padding:10px !important;min-height:44px;min-width:44px;width:44px;height:44px;margin:0}.xappw-custom-send-button .send-button-icon{width:24px;height:24px}.xappw-custom-send-button>img{width:24px;height:24px}}
|
package/dist/index.es.js
CHANGED
|
@@ -273,12 +273,11 @@ var EMAIL_REGEX = "^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$";
|
|
|
273
273
|
// Initialize log level from localStorage on module load
|
|
274
274
|
var STORAGE_KEY = 'xaLogLevel';
|
|
275
275
|
var storedLogLevel = localStorage.getItem(STORAGE_KEY);
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
}
|
|
279
|
-
// Override the setter to persist to localStorage
|
|
276
|
+
// Define property with getter/setter to persist to localStorage
|
|
277
|
+
// Only define the property if it hasn't been defined yet
|
|
280
278
|
if (!Object.getOwnPropertyDescriptor(window, "xaLogLevel")) {
|
|
281
279
|
Object.defineProperty(window, "xaLogLevel", {
|
|
280
|
+
// Use a private property to avoid infinite recursion in the getter/setter
|
|
282
281
|
get: function () {
|
|
283
282
|
return this._xaLogLevel;
|
|
284
283
|
},
|
|
@@ -291,8 +290,18 @@ if (!Object.getOwnPropertyDescriptor(window, "xaLogLevel")) {
|
|
|
291
290
|
localStorage.removeItem(STORAGE_KEY);
|
|
292
291
|
}
|
|
293
292
|
},
|
|
293
|
+
configurable: true,
|
|
294
|
+
// enumerable: true makes property visible in Object.keys() and for...in loops
|
|
295
|
+
// This is useful for debugging to see window.xaLogLevel in console inspection
|
|
296
|
+
enumerable: true
|
|
294
297
|
});
|
|
295
298
|
}
|
|
299
|
+
// Restore from localStorage if available
|
|
300
|
+
// Note: We don't check !window.xaLogLevel because the getter returns undefined initially,
|
|
301
|
+
// making such a check redundant on fresh loads
|
|
302
|
+
if (storedLogLevel) {
|
|
303
|
+
window.xaLogLevel = storedLogLevel;
|
|
304
|
+
}
|
|
296
305
|
// Create a namespaced API on window.xapp for easier access
|
|
297
306
|
if (typeof window !== 'undefined') {
|
|
298
307
|
window.xapp = window.xapp || {};
|
|
@@ -455,9 +464,7 @@ function getItemUrl(item) {
|
|
|
455
464
|
return item.url || item.imageActionUrl;
|
|
456
465
|
}
|
|
457
466
|
|
|
458
|
-
|
|
459
|
-
return useDispatch();
|
|
460
|
-
}
|
|
467
|
+
var useChatDispatch = useDispatch.withTypes();
|
|
461
468
|
|
|
462
469
|
var OptionalLink = function (props) {
|
|
463
470
|
var chatDispatch = useChatDispatch();
|
|
@@ -1353,6 +1360,12 @@ var LogChat = /** @class */ (function () {
|
|
|
1353
1360
|
});
|
|
1354
1361
|
});
|
|
1355
1362
|
};
|
|
1363
|
+
LogChat.prototype.notifyDisconnecting = function () {
|
|
1364
|
+
log("CLIENT: notifyDisconnecting:");
|
|
1365
|
+
if (this.inner.notifyDisconnecting) {
|
|
1366
|
+
this.inner.notifyDisconnecting();
|
|
1367
|
+
}
|
|
1368
|
+
};
|
|
1356
1369
|
return LogChat;
|
|
1357
1370
|
}());
|
|
1358
1371
|
|
|
@@ -2901,7 +2914,7 @@ var serverInfo = {
|
|
|
2901
2914
|
displayName: "XAPP Server"};
|
|
2902
2915
|
var StentorRouterChat = /** @class */ (function () {
|
|
2903
2916
|
function StentorRouterChat(config, options) {
|
|
2904
|
-
var _a, _b;
|
|
2917
|
+
var _a, _b, _c, _d, _e;
|
|
2905
2918
|
this.isDisposed = false;
|
|
2906
2919
|
this._userId = "";
|
|
2907
2920
|
this._sessionId = "";
|
|
@@ -2911,6 +2924,12 @@ var StentorRouterChat = /** @class */ (function () {
|
|
|
2911
2924
|
this.isAdmin = false;
|
|
2912
2925
|
this.urlAttributes = {};
|
|
2913
2926
|
this.handlers = {};
|
|
2927
|
+
// Sleep delay management
|
|
2928
|
+
// Use number | NodeJS.Timeout for cross-environment compatibility (browser vs Node.js)
|
|
2929
|
+
this.sleepTimeoutId = null;
|
|
2930
|
+
// Message deduplication
|
|
2931
|
+
this.receivedMessageIds = new Set();
|
|
2932
|
+
this.MESSAGE_DEDUP_CACHE_SIZE = 1000;
|
|
2914
2933
|
this.config = config;
|
|
2915
2934
|
this.options = options;
|
|
2916
2935
|
// Dig out the path parameters. Put them into the attributes.
|
|
@@ -2937,6 +2956,9 @@ var StentorRouterChat = /** @class */ (function () {
|
|
|
2937
2956
|
log("WS url: ".concat(this.serverUrl, " isAdmin: ").concat(this.isAdmin, " attributes: ").concat(JSON.stringify(this.attributes), " appId: ").concat(this.appId));
|
|
2938
2957
|
this.configurableMessages = getConfigurableMessagesConfig(options.configurableMessages);
|
|
2939
2958
|
this.noOfServerErrors = 0;
|
|
2959
|
+
// Initialize sleep delay (default 60 seconds for websocketraw)
|
|
2960
|
+
this.SLEEP_DELAY_MS = (_e = (_d = (_c = options === null || options === void 0 ? void 0 : options.env) === null || _c === void 0 ? void 0 : _c.connection) === null || _d === void 0 ? void 0 : _d.backgroundSleepDelay) !== null && _e !== void 0 ? _e : 60000;
|
|
2961
|
+
log("Background sleep delay set to ".concat(this.SLEEP_DELAY_MS, "ms"));
|
|
2940
2962
|
}
|
|
2941
2963
|
StentorRouterChat.prototype.init = function (dispatch) {
|
|
2942
2964
|
var _this = this;
|
|
@@ -2974,10 +2996,38 @@ var StentorRouterChat = /** @class */ (function () {
|
|
|
2974
2996
|
var _a = _this.configurableMessages[data.tries], retry = _a.retry, delay = _a.delay, text = _a.text;
|
|
2975
2997
|
_this.sendFailureMessage(retry, data.delay || delay, text, sender);
|
|
2976
2998
|
};
|
|
2977
|
-
this.handlers["new message"] = function (data, sender, ts, attributes) {
|
|
2999
|
+
this.handlers["new message"] = function (data, sender, ts, attributes, messageId) {
|
|
2978
3000
|
// Because the router's internal message format is Stentor channel compatible.
|
|
2979
3001
|
// So the data is either a stentor Request (from widget) or a stentor Response (from bot)
|
|
2980
3002
|
var _a;
|
|
3003
|
+
// Deduplicate messages if messageId is provided
|
|
3004
|
+
if (messageId) {
|
|
3005
|
+
// Validate messageId to prevent memory exhaustion attacks
|
|
3006
|
+
if (messageId.length > 256) {
|
|
3007
|
+
log("Rejecting message with oversized messageId (".concat(messageId.length, " chars)"));
|
|
3008
|
+
return;
|
|
3009
|
+
}
|
|
3010
|
+
if (_this.receivedMessageIds.has(messageId)) {
|
|
3011
|
+
log("Deduplicating message with id: ".concat(messageId));
|
|
3012
|
+
return;
|
|
3013
|
+
}
|
|
3014
|
+
_this.receivedMessageIds.add(messageId);
|
|
3015
|
+
// Limit the size of the set to prevent memory issues
|
|
3016
|
+
// Batch eviction: remove ~10% of entries when limit exceeded
|
|
3017
|
+
// Note: Set maintains insertion order per ES2015 spec. Iteration yields
|
|
3018
|
+
// values in insertion order, so we evict the earliest-added entries.
|
|
3019
|
+
// After deletions, remaining entries maintain their relative order.
|
|
3020
|
+
if (_this.receivedMessageIds.size > _this.MESSAGE_DEDUP_CACHE_SIZE) {
|
|
3021
|
+
var idsToRemove = Math.floor(_this.MESSAGE_DEDUP_CACHE_SIZE * 0.1);
|
|
3022
|
+
var iterator = _this.receivedMessageIds.values();
|
|
3023
|
+
for (var i = 0; i < idsToRemove; i++) {
|
|
3024
|
+
var oldest = iterator.next().value;
|
|
3025
|
+
if (oldest) {
|
|
3026
|
+
_this.receivedMessageIds.delete(oldest);
|
|
3027
|
+
}
|
|
3028
|
+
}
|
|
3029
|
+
}
|
|
3030
|
+
}
|
|
2981
3031
|
var message;
|
|
2982
3032
|
if (sender.deviceId === "Bot") {
|
|
2983
3033
|
var response = data;
|
|
@@ -3171,6 +3221,40 @@ var StentorRouterChat = /** @class */ (function () {
|
|
|
3171
3221
|
},
|
|
3172
3222
|
});
|
|
3173
3223
|
};
|
|
3224
|
+
this.handlers["missed messages"] = function (data, _sender, _ts, _attributes) {
|
|
3225
|
+
var _a;
|
|
3226
|
+
var missedData = data;
|
|
3227
|
+
log("Received \"missed messages\" event with ".concat(((_a = missedData === null || missedData === void 0 ? void 0 : missedData.messages) === null || _a === void 0 ? void 0 : _a.length) || 0, " messages"));
|
|
3228
|
+
// Process each missed message
|
|
3229
|
+
if ((missedData === null || missedData === void 0 ? void 0 : missedData.messages) && Array.isArray(missedData.messages)) {
|
|
3230
|
+
missedData.messages.forEach(function (missedMessage) {
|
|
3231
|
+
log("Processing missed message: event=".concat(missedMessage.event, ", messageId=").concat(missedMessage.messageId));
|
|
3232
|
+
// Route the missed message to the appropriate handler
|
|
3233
|
+
var handler = _this.handlers[missedMessage.event];
|
|
3234
|
+
if (handler && missedMessage.event !== "missed messages") {
|
|
3235
|
+
handler(missedMessage.data, missedMessage.sender, missedMessage.timeMs, missedMessage.attributes, missedMessage.messageId);
|
|
3236
|
+
}
|
|
3237
|
+
else {
|
|
3238
|
+
log("No handler for missed message event: ".concat(missedMessage.event));
|
|
3239
|
+
}
|
|
3240
|
+
});
|
|
3241
|
+
}
|
|
3242
|
+
};
|
|
3243
|
+
this.handlers["request missed messages"] = function () {
|
|
3244
|
+
// This is a client→server event, so no handler needed on client side
|
|
3245
|
+
log("Request missed messages handler (no-op on client side)");
|
|
3246
|
+
};
|
|
3247
|
+
// No-op handlers for user activity events (client→server only)
|
|
3248
|
+
// These prevent error logs if the server echoes these events back
|
|
3249
|
+
this.handlers["user backgrounded"] = function () {
|
|
3250
|
+
log("User backgrounded handler (no-op on client side)");
|
|
3251
|
+
};
|
|
3252
|
+
this.handlers["user foregrounded"] = function () {
|
|
3253
|
+
log("User foregrounded handler (no-op on client side)");
|
|
3254
|
+
};
|
|
3255
|
+
this.handlers["user disconnecting"] = function () {
|
|
3256
|
+
log("User disconnecting handler (no-op on client side)");
|
|
3257
|
+
};
|
|
3174
3258
|
// Register the router as a pseudo-agent (serverInfo) so it can send messages (like internal errors)
|
|
3175
3259
|
this.dispatch({
|
|
3176
3260
|
type: "chat",
|
|
@@ -3279,7 +3363,7 @@ var StentorRouterChat = /** @class */ (function () {
|
|
|
3279
3363
|
var message = JSON.parse(me.data);
|
|
3280
3364
|
var handler = _this.handlers[message.event];
|
|
3281
3365
|
if (handler) {
|
|
3282
|
-
_this.handlers[message.event](message.data, message.sender, message.timeMs, message.attributes);
|
|
3366
|
+
_this.handlers[message.event](message.data, message.sender, message.timeMs, message.attributes, message.messageId);
|
|
3283
3367
|
}
|
|
3284
3368
|
else {
|
|
3285
3369
|
err("Unknown router message event: ".concat(message.event));
|
|
@@ -3473,22 +3557,57 @@ var StentorRouterChat = /** @class */ (function () {
|
|
|
3473
3557
|
StentorRouterChat.prototype.dispose = function () {
|
|
3474
3558
|
log("DISPOSE called - cleaning up connection");
|
|
3475
3559
|
this.isDisposed = true;
|
|
3560
|
+
// Clear any pending sleep timeout
|
|
3561
|
+
if (this.sleepTimeoutId) {
|
|
3562
|
+
clearTimeout(this.sleepTimeoutId);
|
|
3563
|
+
this.sleepTimeoutId = null;
|
|
3564
|
+
}
|
|
3476
3565
|
if (this.ws) {
|
|
3477
3566
|
this.wsClose();
|
|
3478
3567
|
}
|
|
3479
3568
|
log("Closed web socket (dispose)");
|
|
3480
3569
|
};
|
|
3481
3570
|
StentorRouterChat.prototype.sleep = function () {
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3571
|
+
var _this = this;
|
|
3572
|
+
log("SLEEP called - scheduling delayed close");
|
|
3573
|
+
// Notify router that user has backgrounded the tab
|
|
3574
|
+
if (this.checkConnection()) {
|
|
3575
|
+
log("SLEEP - Notifying router of user backgrounded");
|
|
3576
|
+
this.emit("user backgrounded");
|
|
3577
|
+
}
|
|
3578
|
+
// Cancel any pending sleep timeout
|
|
3579
|
+
if (this.sleepTimeoutId) {
|
|
3580
|
+
clearTimeout(this.sleepTimeoutId);
|
|
3581
|
+
this.sleepTimeoutId = null;
|
|
3582
|
+
}
|
|
3583
|
+
// Schedule WebSocket close after delay
|
|
3584
|
+
// Note: Don't set isDisposed here - only in dispose(). Setting it here would
|
|
3585
|
+
// prevent reconnection when the user returns to the tab after the timeout.
|
|
3586
|
+
this.sleepTimeoutId = window.setTimeout(function () {
|
|
3587
|
+
if (_this.ws) {
|
|
3588
|
+
_this.wsClose();
|
|
3589
|
+
}
|
|
3590
|
+
log("SLEEP - closed web socket after ".concat(_this.SLEEP_DELAY_MS, "ms delay"));
|
|
3591
|
+
_this.sleepTimeoutId = null;
|
|
3592
|
+
}, this.SLEEP_DELAY_MS);
|
|
3593
|
+
log("SLEEP - WebSocket will close in ".concat(this.SLEEP_DELAY_MS, "ms if not woken up"));
|
|
3488
3594
|
};
|
|
3489
3595
|
StentorRouterChat.prototype.wakeup = function () {
|
|
3490
|
-
|
|
3596
|
+
var _this = this;
|
|
3491
3597
|
log("WAKEUP called - userId:", this._userId);
|
|
3598
|
+
// Cancel pending sleep if user returned before timeout
|
|
3599
|
+
if (this.sleepTimeoutId) {
|
|
3600
|
+
clearTimeout(this.sleepTimeoutId);
|
|
3601
|
+
this.sleepTimeoutId = null;
|
|
3602
|
+
log("WAKEUP - Cancelled pending sleep, keeping WebSocket open");
|
|
3603
|
+
// Notify router that user has foregrounded the tab (connection still open)
|
|
3604
|
+
if (this.checkConnection()) {
|
|
3605
|
+
log("WAKEUP - Notifying router of user foregrounded");
|
|
3606
|
+
this.emit("user foregrounded");
|
|
3607
|
+
}
|
|
3608
|
+
return; // WebSocket is still open, no need to reconnect
|
|
3609
|
+
}
|
|
3610
|
+
this.isDisposed = false;
|
|
3492
3611
|
// wait for the session setup
|
|
3493
3612
|
if (!this._userId) {
|
|
3494
3613
|
log("WAKEUP - No userId, returning early");
|
|
@@ -3502,6 +3621,47 @@ var StentorRouterChat = /** @class */ (function () {
|
|
|
3502
3621
|
// Fire up the WebSocket
|
|
3503
3622
|
log("WAKEUP - Calling autoReconnect");
|
|
3504
3623
|
this.autoReconnect(this.wsCreate.bind(this, "wakeup"));
|
|
3624
|
+
// Request any missed messages and notify router after reconnection is established
|
|
3625
|
+
// Use waitFor to poll for connection readiness with timeout
|
|
3626
|
+
waitFor(this.checkConnection.bind(this), 100, 5000, "wakeup-connection")
|
|
3627
|
+
.then(function () {
|
|
3628
|
+
// Notify router that user has foregrounded the tab (after reconnect)
|
|
3629
|
+
log("WAKEUP - Notifying router of user foregrounded (after reconnect)");
|
|
3630
|
+
_this.emit("user foregrounded");
|
|
3631
|
+
_this.requestMissedMessages();
|
|
3632
|
+
})
|
|
3633
|
+
.catch(function () {
|
|
3634
|
+
log("WAKEUP - Connection not ready after 5s, skipping missed messages request");
|
|
3635
|
+
});
|
|
3636
|
+
};
|
|
3637
|
+
StentorRouterChat.prototype.requestMissedMessages = function () {
|
|
3638
|
+
log("Requesting missed messages from server");
|
|
3639
|
+
this.emit("request missed messages");
|
|
3640
|
+
};
|
|
3641
|
+
/**
|
|
3642
|
+
* Notifies the router that the user is disconnecting (e.g., closing tab, navigating away).
|
|
3643
|
+
* This is a best-effort notification - it may not arrive before the page unloads.
|
|
3644
|
+
* Should be called from a beforeunload event handler.
|
|
3645
|
+
*/
|
|
3646
|
+
StentorRouterChat.prototype.notifyDisconnecting = function () {
|
|
3647
|
+
if (!this.checkConnection()) {
|
|
3648
|
+
return;
|
|
3649
|
+
}
|
|
3650
|
+
log("Notifying router of user disconnecting");
|
|
3651
|
+
var payload = JSON.stringify({
|
|
3652
|
+
event: "user disconnecting",
|
|
3653
|
+
data: { reason: "tab_close" },
|
|
3654
|
+
sender: this.visitorInfo,
|
|
3655
|
+
sessionId: this._sessionId,
|
|
3656
|
+
timeMs: Date.now()
|
|
3657
|
+
});
|
|
3658
|
+
try {
|
|
3659
|
+
this.ws.send(payload);
|
|
3660
|
+
}
|
|
3661
|
+
catch (e) {
|
|
3662
|
+
// Best-effort - page is unloading, so we can't do much if send fails
|
|
3663
|
+
log("Failed to send disconnect notification:", e);
|
|
3664
|
+
}
|
|
3505
3665
|
};
|
|
3506
3666
|
StentorRouterChat.prototype.bargeOut = function (_cb) {
|
|
3507
3667
|
return __awaiter$1(this, void 0, void 0, function () {
|
|
@@ -32009,8 +32169,15 @@ var ChatWidgetWrapper = function (props) {
|
|
|
32009
32169
|
},
|
|
32010
32170
|
configurableMessages: configurableMessages,
|
|
32011
32171
|
hooks: rawConfig === null || rawConfig === void 0 ? void 0 : rawConfig.hooks,
|
|
32172
|
+
env: rawConfig,
|
|
32012
32173
|
};
|
|
32013
|
-
}, [
|
|
32174
|
+
}, [
|
|
32175
|
+
token,
|
|
32176
|
+
rawConfig === null || rawConfig === void 0 ? void 0 : rawConfig.botName,
|
|
32177
|
+
rawConfig === null || rawConfig === void 0 ? void 0 : rawConfig.avatarUrl,
|
|
32178
|
+
rawConfig === null || rawConfig === void 0 ? void 0 : rawConfig.configurableMessages,
|
|
32179
|
+
rawConfig === null || rawConfig === void 0 ? void 0 : rawConfig.hooks,
|
|
32180
|
+
]);
|
|
32014
32181
|
// Only create chat server when config is ready (not loading and no error)
|
|
32015
32182
|
var chatServer = useChatServer(configLoading || configError ? null : connection, configLoading || configError ? null : options);
|
|
32016
32183
|
// Determine mode class for loading/error states
|
|
@@ -32131,6 +32298,22 @@ var ChatWidget = function (props) {
|
|
|
32131
32298
|
chatServer.wakeup();
|
|
32132
32299
|
}
|
|
32133
32300
|
}, [chatServer, innerDispatch, isTabVisible]);
|
|
32301
|
+
// Handle beforeunload to notify router when user is leaving
|
|
32302
|
+
useEffect(function () {
|
|
32303
|
+
if (!chatServer) {
|
|
32304
|
+
return undefined;
|
|
32305
|
+
}
|
|
32306
|
+
var handleBeforeUnload = function () {
|
|
32307
|
+
log("beforeunload - notifying router of user disconnecting");
|
|
32308
|
+
if (chatServer.notifyDisconnecting) {
|
|
32309
|
+
chatServer.notifyDisconnecting();
|
|
32310
|
+
}
|
|
32311
|
+
};
|
|
32312
|
+
window.addEventListener("beforeunload", handleBeforeUnload);
|
|
32313
|
+
return function () {
|
|
32314
|
+
window.removeEventListener("beforeunload", handleBeforeUnload);
|
|
32315
|
+
};
|
|
32316
|
+
}, [chatServer]);
|
|
32134
32317
|
useEffect(function () {
|
|
32135
32318
|
// For reopen widget after move on same window
|
|
32136
32319
|
// if (get("opened")) {
|