@eshal-bot/chat-widget 0.1.24 → 0.1.26

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.
@@ -7869,7 +7869,7 @@
7869
7869
  m$1.hydrateRoot;
7870
7870
  }
7871
7871
 
7872
- var css_248z$1 = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.chat-widget-root{--cw-primary:#2563eb;--cw-primary-hover:#1d4ed8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.\\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}#chat-widget-root .chat-widget-root *{box-sizing:border-box;margin:0;padding:0}#chat-widget-root .chat-messages::-webkit-scrollbar{width:6px}#chat-widget-root .chat-messages::-webkit-scrollbar-track{background:transparent}#chat-widget-root .chat-messages::-webkit-scrollbar-thumb{background:rgba(156,163,175,.5);border-radius:10px}#chat-widget-root .chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.7)}#chat-widget-root .dark .chat-messages::-webkit-scrollbar-thumb{background:rgba(75,85,99,.5)}#chat-widget-root .dark .chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(75,85,99,.7)}#chat-widget-root .pointer-events-none{pointer-events:none}#chat-widget-root .visible{visibility:visible}#chat-widget-root .static{position:static}#chat-widget-root .fixed{position:fixed}#chat-widget-root .absolute{position:absolute}#chat-widget-root .relative{position:relative}#chat-widget-root .inset-0{inset:0}#chat-widget-root .-right-1{right:-.25rem}#chat-widget-root .-top-1{top:-.25rem}#chat-widget-root .bottom-5{bottom:1.25rem}#chat-widget-root .bottom-full{bottom:100%}#chat-widget-root .left-0{left:0}#chat-widget-root .left-5{left:1.25rem}#chat-widget-root .right-0{right:0}#chat-widget-root .right-5{right:1.25rem}#chat-widget-root .top-1\\/2{top:50%}#chat-widget-root .top-5{top:1.25rem}#chat-widget-root .isolate{isolation:isolate}#chat-widget-root .z-10{z-index:10}#chat-widget-root .z-50{z-index:50}#chat-widget-root .z-\\[999999\\]{z-index:999999}#chat-widget-root .m-0{margin:0}#chat-widget-root .-mx-1{margin-left:-.25rem;margin-right:-.25rem}#chat-widget-root .my-3{margin-bottom:.75rem;margin-top:.75rem}#chat-widget-root .my-4{margin-bottom:1rem;margin-top:1rem}#chat-widget-root .-mb-px{margin-bottom:-1px}#chat-widget-root .mb-1{margin-bottom:.25rem}#chat-widget-root .mb-2{margin-bottom:.5rem}#chat-widget-root .mb-3{margin-bottom:.75rem}#chat-widget-root .mb-4{margin-bottom:1rem}#chat-widget-root .mb-5{margin-bottom:1.25rem}#chat-widget-root .ml-0\\.5{margin-left:.125rem}#chat-widget-root .ml-1{margin-left:.25rem}#chat-widget-root .mt-1{margin-top:.25rem}#chat-widget-root .mt-1\\.5{margin-top:.375rem}#chat-widget-root .mt-2{margin-top:.5rem}#chat-widget-root .mt-3{margin-top:.75rem}#chat-widget-root .mt-4{margin-top:1rem}#chat-widget-root .block{display:block}#chat-widget-root .inline-block{display:inline-block}#chat-widget-root .inline{display:inline}#chat-widget-root .flex{display:flex}#chat-widget-root .inline-flex{display:inline-flex}#chat-widget-root .table{display:table}#chat-widget-root .hidden{display:none}#chat-widget-root .h-1\\.5{height:.375rem}#chat-widget-root .h-10{height:2.5rem}#chat-widget-root .h-12{height:3rem}#chat-widget-root .h-14{height:3.5rem}#chat-widget-root .h-16{height:4rem}#chat-widget-root .h-2{height:.5rem}#chat-widget-root .h-3{height:.75rem}#chat-widget-root .h-3\\.5{height:.875rem}#chat-widget-root .h-4{height:1rem}#chat-widget-root .h-5{height:1.25rem}#chat-widget-root .h-7{height:1.75rem}#chat-widget-root .h-8{height:2rem}#chat-widget-root .h-\\[48px\\]{height:48px}#chat-widget-root .h-\\[650px\\]{height:650px}#chat-widget-root .h-auto{height:auto}#chat-widget-root .h-full{height:100%}#chat-widget-root .h-px{height:1px}#chat-widget-root .max-h-\\[85vh\\]{max-height:85vh}#chat-widget-root .min-h-0{min-height:0}#chat-widget-root .min-h-\\[48px\\]{min-height:48px}#chat-widget-root .w-1\\.5{width:.375rem}#chat-widget-root .w-10{width:2.5rem}#chat-widget-root .w-14{width:3.5rem}#chat-widget-root .w-16{width:4rem}#chat-widget-root .w-2{width:.5rem}#chat-widget-root .w-3\\.5{width:.875rem}#chat-widget-root .w-4{width:1rem}#chat-widget-root .w-5{width:1.25rem}#chat-widget-root .w-7{width:1.75rem}#chat-widget-root .w-8{width:2rem}#chat-widget-root .w-80{width:20rem}#chat-widget-root .w-96{width:24rem}#chat-widget-root .w-\\[380px\\]{width:380px}#chat-widget-root .w-\\[48px\\]{width:48px}#chat-widget-root .w-full{width:100%}#chat-widget-root .min-w-0{min-width:0}#chat-widget-root .min-w-\\[60px\\]{min-width:60px}#chat-widget-root .min-w-full{min-width:100%}#chat-widget-root .max-w-\\[75\\%\\]{max-width:75%}#chat-widget-root .max-w-\\[85\\%\\]{max-width:85%}#chat-widget-root .max-w-\\[92vw\\]{max-width:92vw}#chat-widget-root .max-w-full{max-width:100%}#chat-widget-root .max-w-none{max-width:none}#chat-widget-root .max-w-sm{max-width:24rem}#chat-widget-root .max-w-xs{max-width:20rem}#chat-widget-root .flex-1{flex:1 1 0%}#chat-widget-root .flex-shrink-0{flex-shrink:0}#chat-widget-root .border-collapse{border-collapse:collapse}#chat-widget-root .-translate-y-1\\/2{--tw-translate-y:-50%}#chat-widget-root .-translate-y-1\\/2,#chat-widget-root .rotate-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .rotate-0{--tw-rotate:0deg}#chat-widget-root .scale-0{--tw-scale-x:0;--tw-scale-y:0}#chat-widget-root .scale-0,#chat-widget-root .scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-100{--tw-scale-x:1;--tw-scale-y:1}#chat-widget-root .scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}#chat-widget-root .scale-110,#chat-widget-root .scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-95{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}#chat-widget-root .animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}#chat-widget-root .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}#chat-widget-root .animate-spin{animation:spin 1s linear infinite}#chat-widget-root .cursor-not-allowed{cursor:not-allowed}#chat-widget-root .cursor-pointer{cursor:pointer}#chat-widget-root .resize-none{resize:none}#chat-widget-root .resize{resize:both}#chat-widget-root .list-decimal{list-style-type:decimal}#chat-widget-root .list-disc{list-style-type:disc}#chat-widget-root .list-none{list-style-type:none}#chat-widget-root .flex-row{flex-direction:row}#chat-widget-root .flex-row-reverse{flex-direction:row-reverse}#chat-widget-root .flex-col{flex-direction:column}#chat-widget-root .flex-wrap{flex-wrap:wrap}#chat-widget-root .items-start{align-items:flex-start}#chat-widget-root .items-end{align-items:flex-end}#chat-widget-root .items-center{align-items:center}#chat-widget-root .justify-center{justify-content:center}#chat-widget-root .justify-between{justify-content:space-between}#chat-widget-root .gap-0{gap:0}#chat-widget-root .gap-1{gap:.25rem}#chat-widget-root .gap-1\\.5{gap:.375rem}#chat-widget-root .gap-2{gap:.5rem}#chat-widget-root .gap-2\\.5{gap:.625rem}#chat-widget-root .gap-3{gap:.75rem}#chat-widget-root .gap-6{gap:1.5rem}#chat-widget-root :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root .overflow-hidden{overflow:hidden}#chat-widget-root .overflow-x-auto{overflow-x:auto}#chat-widget-root .overflow-y-auto{overflow-y:auto}#chat-widget-root .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#chat-widget-root .whitespace-normal{white-space:normal}#chat-widget-root .whitespace-nowrap{white-space:nowrap}#chat-widget-root .whitespace-pre-wrap{white-space:pre-wrap}#chat-widget-root .break-words{overflow-wrap:break-word}#chat-widget-root .rounded{border-radius:.25rem}#chat-widget-root .rounded-2xl{border-radius:1rem}#chat-widget-root .rounded-3xl{border-radius:1.5rem}#chat-widget-root .rounded-full{border-radius:9999px}#chat-widget-root .rounded-lg{border-radius:.5rem}#chat-widget-root .rounded-xl{border-radius:.75rem}#chat-widget-root .rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}#chat-widget-root .rounded-tl-sm{border-top-left-radius:.125rem}#chat-widget-root .rounded-tr-sm{border-top-right-radius:.125rem}#chat-widget-root .border{border-width:1px}#chat-widget-root .border-0{border-width:0}#chat-widget-root .border-2{border-width:2px}#chat-widget-root .border-l-4{border-left-width:4px}#chat-widget-root .border-t{border-top-width:1px}#chat-widget-root .border-t-2{border-top-width:2px}#chat-widget-root .border-dotted{border-style:dotted}#chat-widget-root .border-none{border-style:none}#chat-widget-root .\\!border-red-500{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity,1))!important}#chat-widget-root .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}#chat-widget-root .border-blue-700\\/50{border-color:rgba(29,78,216,.5)}#chat-widget-root .border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-200\\/50{border-color:rgba(229,231,235,.5)}#chat-widget-root .border-gray-200\\/60{border-color:rgba(229,231,235,.6)}#chat-widget-root .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-700\\/50{border-color:rgba(55,65,81,.5)}#chat-widget-root .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}#chat-widget-root .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}#chat-widget-root .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}#chat-widget-root .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}#chat-widget-root .bg-current{background-color:currentColor}#chat-widget-root .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-100\\/80{background-color:rgba(243,244,246,.8)}#chat-widget-root .bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-700\\/50{background-color:rgba(55,65,81,.5)}#chat-widget-root .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-800\\/50{background-color:rgba(31,41,55,.5)}#chat-widget-root .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}#chat-widget-root .bg-green-200{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}#chat-widget-root .bg-orange-200{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity,1))}#chat-widget-root .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}#chat-widget-root .bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}#chat-widget-root .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}#chat-widget-root .bg-slate-50\\/50{background-color:rgba(248,250,252,.5)}#chat-widget-root .bg-slate-800\\/50{background-color:rgba(30,41,59,.5)}#chat-widget-root .bg-transparent{background-color:transparent}#chat-widget-root .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}#chat-widget-root .bg-white\\/10{background-color:hsla(0,0%,100%,.1)}#chat-widget-root .bg-white\\/20{background-color:hsla(0,0%,100%,.2)}#chat-widget-root .bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}#chat-widget-root .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}#chat-widget-root .from-gray-50\\/50{--tw-gradient-from:rgba(249,250,251,.5) var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,250,251,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}#chat-widget-root .from-white\\/0{--tw-gradient-from:hsla(0,0%,100%,0) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}#chat-widget-root .from-white\\/10{--tw-gradient-from:hsla(0,0%,100%,.1) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}#chat-widget-root .via-white\\/5{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,0%,100%,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}#chat-widget-root .to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}#chat-widget-root .to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}#chat-widget-root .to-white\\/10{--tw-gradient-to:hsla(0,0%,100%,.1) var(--tw-gradient-to-position)}#chat-widget-root .object-cover{-o-object-fit:cover;object-fit:cover}#chat-widget-root .p-0{padding:0}#chat-widget-root .p-3{padding:.75rem}#chat-widget-root .p-5{padding:1.25rem}#chat-widget-root .p-8{padding:2rem}#chat-widget-root .px-1{padding-left:.25rem;padding-right:.25rem}#chat-widget-root .px-2{padding-left:.5rem;padding-right:.5rem}#chat-widget-root .px-3{padding-left:.75rem;padding-right:.75rem}#chat-widget-root .px-4{padding-left:1rem;padding-right:1rem}#chat-widget-root .px-5{padding-left:1.25rem;padding-right:1.25rem}#chat-widget-root .py-1{padding-bottom:.25rem;padding-top:.25rem}#chat-widget-root .py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}#chat-widget-root .py-12{padding-bottom:3rem;padding-top:3rem}#chat-widget-root .py-2{padding-bottom:.5rem;padding-top:.5rem}#chat-widget-root .py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}#chat-widget-root .py-3{padding-bottom:.75rem;padding-top:.75rem}#chat-widget-root .py-4{padding-bottom:1rem;padding-top:1rem}#chat-widget-root .pb-1{padding-bottom:.25rem}#chat-widget-root .pb-2{padding-bottom:.5rem}#chat-widget-root .pl-4{padding-left:1rem}#chat-widget-root .pl-\\[50px\\]{padding-left:50px}#chat-widget-root .ps-5{padding-inline-start:1.25rem}#chat-widget-root .pt-1{padding-top:.25rem}#chat-widget-root .text-left{text-align:left}#chat-widget-root .text-center{text-align:center}#chat-widget-root .text-right{text-align:right}#chat-widget-root .align-middle{vertical-align:middle}#chat-widget-root .align-text-bottom{vertical-align:text-bottom}#chat-widget-root .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}#chat-widget-root .text-2xl{font-size:1.5rem;line-height:2rem}#chat-widget-root .text-\\[10px\\]{font-size:10px}#chat-widget-root .text-\\[11px\\]{font-size:11px}#chat-widget-root .text-\\[15px\\]{font-size:15px}#chat-widget-root .text-base{font-size:1rem;line-height:1.5rem}#chat-widget-root .text-lg{font-size:1.125rem;line-height:1.75rem}#chat-widget-root .text-sm{font-size:.875rem;line-height:1.25rem}#chat-widget-root .text-xl{font-size:1.25rem;line-height:1.75rem}#chat-widget-root .text-xs{font-size:.75rem;line-height:1rem}#chat-widget-root .font-bold{font-weight:700}#chat-widget-root .font-medium{font-weight:500}#chat-widget-root .font-semibold{font-weight:600}#chat-widget-root .uppercase{text-transform:uppercase}#chat-widget-root .lowercase{text-transform:lowercase}#chat-widget-root .italic{font-style:italic}#chat-widget-root .leading-normal{line-height:1.5}#chat-widget-root .leading-relaxed{line-height:1.625}#chat-widget-root .leading-snug{line-height:1.375}#chat-widget-root .leading-tight{line-height:1.25}#chat-widget-root .tracking-wide{letter-spacing:.025em}#chat-widget-root .text-\\[\\#4A5568\\]{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}#chat-widget-root .text-current{color:currentColor}#chat-widget-root .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500\\/80{color:hsla(220,9%,46%,.8)}#chat-widget-root .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}#chat-widget-root .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}#chat-widget-root .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}#chat-widget-root .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}#chat-widget-root .no-underline{text-decoration-line:none}#chat-widget-root .placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .opacity-0{opacity:0}#chat-widget-root .opacity-50{opacity:.5}#chat-widget-root .opacity-60{opacity:.6}#chat-widget-root .opacity-80{opacity:.8}#chat-widget-root .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}#chat-widget-root .shadow,#chat-widget-root .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}#chat-widget-root .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}#chat-widget-root .shadow-lg,#chat-widget-root .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}#chat-widget-root .shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}#chat-widget-root .shadow-none,#chat-widget-root .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}#chat-widget-root .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .outline-none{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}#chat-widget-root .brightness-0{--tw-brightness:brightness(0)}#chat-widget-root .brightness-0,#chat-widget-root .drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}#chat-widget-root .drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}#chat-widget-root .drop-shadow-md,#chat-widget-root .invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .invert{--tw-invert:invert(100%)}#chat-widget-root .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}#chat-widget-root .transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .duration-150{transition-duration:.15s}#chat-widget-root .duration-200{transition-duration:.2s}#chat-widget-root .duration-300{transition-duration:.3s}#chat-widget-root .duration-500{transition-duration:.5s}#chat-widget-root :is(#chat-widget-root .animate-in){animation:slideIn .3s ease-out}#chat-widget-root :is(#chat-widget-root .transition-all){transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .placeholder\\:text-\\[\\#8C8C8C\\]::-moz-placeholder{--tw-text-opacity:1;color:rgb(140 140 140/var(--tw-text-opacity,1))}#chat-widget-root .placeholder\\:text-\\[\\#8C8C8C\\]::placeholder{--tw-text-opacity:1;color:rgb(140 140 140/var(--tw-text-opacity,1))}#chat-widget-root .placeholder\\:text-\\[\\#A2A9B2\\]::-moz-placeholder{--tw-text-opacity:1;color:rgb(162 169 178/var(--tw-text-opacity,1))}#chat-widget-root .placeholder\\:text-\\[\\#A2A9B2\\]::placeholder{--tw-text-opacity:1;color:rgb(162 169 178/var(--tw-text-opacity,1))}#chat-widget-root .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}#chat-widget-root .hover\\:scale-105:hover,#chat-widget-root .hover\\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .hover\\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}#chat-widget-root .hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .hover\\:border-blue-400:hover{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}#chat-widget-root .hover\\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}#chat-widget-root .hover\\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-blue-900\\/50:hover{background-color:rgba(30,58,138,.5)}#chat-widget-root .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-800\\/80:hover{background-color:rgba(31,41,55,.8)}#chat-widget-root .hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-transparent:hover{background-color:transparent}#chat-widget-root .hover\\:underline:hover{text-decoration-line:underline}#chat-widget-root .hover\\:opacity-80:hover{opacity:.8}#chat-widget-root .hover\\:opacity-90:hover{opacity:.9}#chat-widget-root .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .focus\\:\\!border-red-500:focus{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity,1))!important}#chat-widget-root .focus\\:border-\\[\\#5A6069\\]:focus{--tw-border-opacity:1;border-color:rgb(90 96 105/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:border-\\[\\#B0B0B0\\]:focus{--tw-border-opacity:1;border-color:rgb(176 176 176/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus\\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:ring-white\\/40:focus-visible{--tw-ring-color:hsla(0,0%,100%,.4)}#chat-widget-root .active\\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .active\\:scale-95:active,#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}#chat-widget-root .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}#chat-widget-root .disabled\\:opacity-40:disabled{opacity:.4}#chat-widget-root .disabled\\:opacity-50:disabled{opacity:.5}#chat-widget-root .disabled\\:shadow-none:disabled{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root :is(.group:hover .group-hover\\:scale-100){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root :is(.group:hover .group-hover\\:opacity-100){opacity:1}#chat-widget-root .dark\\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .dark\\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}#chat-widget-root .rtl\\:rounded-tl-2xl:where([dir=rtl],[dir=rtl] *){border-top-left-radius:1rem}#chat-widget-root .rtl\\:rounded-tr-sm:where([dir=rtl],[dir=rtl] *){border-top-right-radius:.125rem}#chat-widget-root .\\[\\&\\:first-child\\]\\:\\!mt-0:first-child{margin-top:0!important}#chat-widget-root .\\[\\&\\:not\\(\\:last-child\\)\\]\\:mb-2:not(:last-child){margin-bottom:.5rem}#chat-widget-root :is(.\\[\\&\\>\\*\\:first-child\\]\\:\\!mt-0>:first-child){margin-top:0!important}#chat-widget-root :is(.\\[\\&\\>\\*\\:last-child\\]\\:\\!mb-0>:last-child){margin-bottom:0!important}";
7872
+ var css_248z$1 = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.chat-widget-root{--cw-primary:#2563eb;--cw-primary-hover:#1d4ed8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.\\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}#chat-widget-root .chat-widget-root *{box-sizing:border-box;margin:0;padding:0}#chat-widget-root .chat-messages::-webkit-scrollbar{width:6px}#chat-widget-root .chat-messages::-webkit-scrollbar-track{background:transparent}#chat-widget-root .chat-messages::-webkit-scrollbar-thumb{background:rgba(156,163,175,.5);border-radius:10px}#chat-widget-root .chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.7)}#chat-widget-root .dark .chat-messages::-webkit-scrollbar-thumb{background:rgba(75,85,99,.5)}#chat-widget-root .dark .chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(75,85,99,.7)}#chat-widget-root .pointer-events-none{pointer-events:none}#chat-widget-root .visible{visibility:visible}#chat-widget-root .static{position:static}#chat-widget-root .fixed{position:fixed}#chat-widget-root .absolute{position:absolute}#chat-widget-root .relative{position:relative}#chat-widget-root .inset-0{inset:0}#chat-widget-root .-right-1{right:-.25rem}#chat-widget-root .-top-1{top:-.25rem}#chat-widget-root .-top-8{top:-2rem}#chat-widget-root .bottom-5{bottom:1.25rem}#chat-widget-root .bottom-full{bottom:100%}#chat-widget-root .left-0{left:0}#chat-widget-root .left-1\\/2{left:50%}#chat-widget-root .left-5{left:1.25rem}#chat-widget-root .right-0{right:0}#chat-widget-root .right-5{right:1.25rem}#chat-widget-root .top-1\\/2{top:50%}#chat-widget-root .top-5{top:1.25rem}#chat-widget-root .isolate{isolation:isolate}#chat-widget-root .z-10{z-index:10}#chat-widget-root .z-50{z-index:50}#chat-widget-root .z-\\[999999\\]{z-index:999999}#chat-widget-root .m-0{margin:0}#chat-widget-root .mx-2{margin-left:.5rem;margin-right:.5rem}#chat-widget-root .my-3{margin-bottom:.75rem;margin-top:.75rem}#chat-widget-root .my-4{margin-bottom:1rem;margin-top:1rem}#chat-widget-root .-mb-px{margin-bottom:-1px}#chat-widget-root .mb-1{margin-bottom:.25rem}#chat-widget-root .mb-2{margin-bottom:.5rem}#chat-widget-root .mb-3{margin-bottom:.75rem}#chat-widget-root .mb-4{margin-bottom:1rem}#chat-widget-root .mb-5{margin-bottom:1.25rem}#chat-widget-root .ml-0\\.5{margin-left:.125rem}#chat-widget-root .ml-1{margin-left:.25rem}#chat-widget-root .mt-1{margin-top:.25rem}#chat-widget-root .mt-1\\.5{margin-top:.375rem}#chat-widget-root .mt-2{margin-top:.5rem}#chat-widget-root .mt-3{margin-top:.75rem}#chat-widget-root .mt-4{margin-top:1rem}#chat-widget-root .block{display:block}#chat-widget-root .inline-block{display:inline-block}#chat-widget-root .inline{display:inline}#chat-widget-root .flex{display:flex}#chat-widget-root .inline-flex{display:inline-flex}#chat-widget-root .table{display:table}#chat-widget-root .hidden{display:none}#chat-widget-root .h-1\\.5{height:.375rem}#chat-widget-root .h-10{height:2.5rem}#chat-widget-root .h-12{height:3rem}#chat-widget-root .h-14{height:3.5rem}#chat-widget-root .h-16{height:4rem}#chat-widget-root .h-2{height:.5rem}#chat-widget-root .h-3{height:.75rem}#chat-widget-root .h-3\\.5{height:.875rem}#chat-widget-root .h-4{height:1rem}#chat-widget-root .h-5{height:1.25rem}#chat-widget-root .h-7{height:1.75rem}#chat-widget-root .h-8{height:2rem}#chat-widget-root .h-\\[48px\\]{height:48px}#chat-widget-root .h-\\[650px\\]{height:650px}#chat-widget-root .h-auto{height:auto}#chat-widget-root .h-full{height:100%}#chat-widget-root .h-px{height:1px}#chat-widget-root .max-h-\\[85vh\\]{max-height:85vh}#chat-widget-root .min-h-0{min-height:0}#chat-widget-root .min-h-\\[48px\\]{min-height:48px}#chat-widget-root .w-1\\.5{width:.375rem}#chat-widget-root .w-10{width:2.5rem}#chat-widget-root .w-12{width:3rem}#chat-widget-root .w-14{width:3.5rem}#chat-widget-root .w-16{width:4rem}#chat-widget-root .w-2{width:.5rem}#chat-widget-root .w-3\\.5{width:.875rem}#chat-widget-root .w-4{width:1rem}#chat-widget-root .w-5{width:1.25rem}#chat-widget-root .w-7{width:1.75rem}#chat-widget-root .w-8{width:2rem}#chat-widget-root .w-80{width:20rem}#chat-widget-root .w-96{width:24rem}#chat-widget-root .w-\\[380px\\]{width:380px}#chat-widget-root .w-\\[48px\\]{width:48px}#chat-widget-root .w-full{width:100%}#chat-widget-root .min-w-0{min-width:0}#chat-widget-root .min-w-\\[60px\\]{min-width:60px}#chat-widget-root .min-w-full{min-width:100%}#chat-widget-root .max-w-\\[75\\%\\]{max-width:75%}#chat-widget-root .max-w-\\[85\\%\\]{max-width:85%}#chat-widget-root .max-w-\\[92vw\\]{max-width:92vw}#chat-widget-root .max-w-full{max-width:100%}#chat-widget-root .max-w-none{max-width:none}#chat-widget-root .max-w-sm{max-width:24rem}#chat-widget-root .max-w-xs{max-width:20rem}#chat-widget-root .flex-1{flex:1 1 0%}#chat-widget-root .flex-shrink-0{flex-shrink:0}#chat-widget-root .border-collapse{border-collapse:collapse}#chat-widget-root .-translate-x-1\\/2{--tw-translate-x:-50%}#chat-widget-root .-translate-x-1\\/2,#chat-widget-root .-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .-translate-y-1\\/2{--tw-translate-y:-50%}#chat-widget-root .rotate-0{--tw-rotate:0deg}#chat-widget-root .rotate-0,#chat-widget-root .scale-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-0{--tw-scale-x:0;--tw-scale-y:0}#chat-widget-root .scale-100{--tw-scale-x:1;--tw-scale-y:1}#chat-widget-root .scale-100,#chat-widget-root .scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}#chat-widget-root .scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}#chat-widget-root .scale-125,#chat-widget-root .scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-95{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}#chat-widget-root .animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}#chat-widget-root .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}#chat-widget-root .animate-spin{animation:spin 1s linear infinite}#chat-widget-root .cursor-not-allowed{cursor:not-allowed}#chat-widget-root .cursor-pointer{cursor:pointer}#chat-widget-root .resize-none{resize:none}#chat-widget-root .resize{resize:both}#chat-widget-root .list-decimal{list-style-type:decimal}#chat-widget-root .list-disc{list-style-type:disc}#chat-widget-root .list-none{list-style-type:none}#chat-widget-root .flex-row{flex-direction:row}#chat-widget-root .flex-row-reverse{flex-direction:row-reverse}#chat-widget-root .flex-col{flex-direction:column}#chat-widget-root .flex-wrap{flex-wrap:wrap}#chat-widget-root .items-start{align-items:flex-start}#chat-widget-root .items-end{align-items:flex-end}#chat-widget-root .items-center{align-items:center}#chat-widget-root .justify-center{justify-content:center}#chat-widget-root .justify-between{justify-content:space-between}#chat-widget-root .gap-0{gap:0}#chat-widget-root .gap-1{gap:.25rem}#chat-widget-root .gap-1\\.5{gap:.375rem}#chat-widget-root .gap-2{gap:.5rem}#chat-widget-root .gap-2\\.5{gap:.625rem}#chat-widget-root .gap-3{gap:.75rem}#chat-widget-root .gap-4{gap:1rem}#chat-widget-root .gap-6{gap:1.5rem}#chat-widget-root :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root .overflow-hidden{overflow:hidden}#chat-widget-root .overflow-x-auto{overflow-x:auto}#chat-widget-root .overflow-y-auto{overflow-y:auto}#chat-widget-root .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#chat-widget-root .whitespace-normal{white-space:normal}#chat-widget-root .whitespace-nowrap{white-space:nowrap}#chat-widget-root .whitespace-pre-wrap{white-space:pre-wrap}#chat-widget-root .break-words{overflow-wrap:break-word}#chat-widget-root .rounded{border-radius:.25rem}#chat-widget-root .rounded-2xl{border-radius:1rem}#chat-widget-root .rounded-3xl{border-radius:1.5rem}#chat-widget-root .rounded-full{border-radius:9999px}#chat-widget-root .rounded-lg{border-radius:.5rem}#chat-widget-root .rounded-md{border-radius:.375rem}#chat-widget-root .rounded-xl{border-radius:.75rem}#chat-widget-root .rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}#chat-widget-root .rounded-tl-sm{border-top-left-radius:.125rem}#chat-widget-root .rounded-tr-sm{border-top-right-radius:.125rem}#chat-widget-root .border{border-width:1px}#chat-widget-root .border-0{border-width:0}#chat-widget-root .border-2{border-width:2px}#chat-widget-root .border-l-4{border-left-width:4px}#chat-widget-root .border-t{border-top-width:1px}#chat-widget-root .border-t-2{border-top-width:2px}#chat-widget-root .border-dotted{border-style:dotted}#chat-widget-root .border-none{border-style:none}#chat-widget-root .\\!border-red-500{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity,1))!important}#chat-widget-root .border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}#chat-widget-root .border-blue-700\\/50{border-color:rgba(29,78,216,.5)}#chat-widget-root .border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-200\\/60{border-color:rgba(229,231,235,.6)}#chat-widget-root .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}#chat-widget-root .border-gray-700\\/50{border-color:rgba(55,65,81,.5)}#chat-widget-root .border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}#chat-widget-root .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}#chat-widget-root .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}#chat-widget-root .bg-blue-900\\/30{background-color:rgba(30,58,138,.3)}#chat-widget-root .bg-current{background-color:currentColor}#chat-widget-root .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-700\\/50{background-color:rgba(55,65,81,.5)}#chat-widget-root .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}#chat-widget-root .bg-green-200{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}#chat-widget-root .bg-orange-200{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity,1))}#chat-widget-root .bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}#chat-widget-root .bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}#chat-widget-root .bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}#chat-widget-root .bg-slate-50\\/50{background-color:rgba(248,250,252,.5)}#chat-widget-root .bg-slate-800\\/50{background-color:rgba(30,41,59,.5)}#chat-widget-root .bg-transparent{background-color:transparent}#chat-widget-root .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}#chat-widget-root .bg-white\\/10{background-color:hsla(0,0%,100%,.1)}#chat-widget-root .bg-white\\/20{background-color:hsla(0,0%,100%,.2)}#chat-widget-root .bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity,1))}#chat-widget-root .bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}#chat-widget-root .bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}#chat-widget-root .from-gray-50\\/50{--tw-gradient-from:rgba(249,250,251,.5) var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,250,251,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}#chat-widget-root .from-white\\/0{--tw-gradient-from:hsla(0,0%,100%,0) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}#chat-widget-root .from-white\\/10{--tw-gradient-from:hsla(0,0%,100%,.1) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}#chat-widget-root .from-yellow-200{--tw-gradient-from:#fef08a var(--tw-gradient-from-position);--tw-gradient-to:hsla(53,98%,77%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}#chat-widget-root .via-white\\/5{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,0%,100%,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}#chat-widget-root .to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}#chat-widget-root .to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}#chat-widget-root .to-white\\/10{--tw-gradient-to:hsla(0,0%,100%,.1) var(--tw-gradient-to-position)}#chat-widget-root .to-yellow-400{--tw-gradient-to:#facc15 var(--tw-gradient-to-position)}#chat-widget-root .object-cover{-o-object-fit:cover;object-fit:cover}#chat-widget-root .p-0{padding:0}#chat-widget-root .p-3{padding:.75rem}#chat-widget-root .p-5{padding:1.25rem}#chat-widget-root .p-6{padding:1.5rem}#chat-widget-root .p-8{padding:2rem}#chat-widget-root .px-1{padding-left:.25rem;padding-right:.25rem}#chat-widget-root .px-2{padding-left:.5rem;padding-right:.5rem}#chat-widget-root .px-3{padding-left:.75rem;padding-right:.75rem}#chat-widget-root .px-4{padding-left:1rem;padding-right:1rem}#chat-widget-root .px-5{padding-left:1.25rem;padding-right:1.25rem}#chat-widget-root .py-1{padding-bottom:.25rem;padding-top:.25rem}#chat-widget-root .py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}#chat-widget-root .py-12{padding-bottom:3rem;padding-top:3rem}#chat-widget-root .py-2{padding-bottom:.5rem;padding-top:.5rem}#chat-widget-root .py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}#chat-widget-root .py-3{padding-bottom:.75rem;padding-top:.75rem}#chat-widget-root .py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}#chat-widget-root .py-4{padding-bottom:1rem;padding-top:1rem}#chat-widget-root .pb-1{padding-bottom:.25rem}#chat-widget-root .pb-2{padding-bottom:.5rem}#chat-widget-root .pl-4{padding-left:1rem}#chat-widget-root .pl-\\[50px\\]{padding-left:50px}#chat-widget-root .ps-5{padding-inline-start:1.25rem}#chat-widget-root .pt-1{padding-top:.25rem}#chat-widget-root .text-left{text-align:left}#chat-widget-root .text-center{text-align:center}#chat-widget-root .text-right{text-align:right}#chat-widget-root .align-middle{vertical-align:middle}#chat-widget-root .align-text-bottom{vertical-align:text-bottom}#chat-widget-root .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}#chat-widget-root .text-2xl{font-size:1.5rem;line-height:2rem}#chat-widget-root .text-\\[10px\\]{font-size:10px}#chat-widget-root .text-\\[11px\\]{font-size:11px}#chat-widget-root .text-\\[15px\\]{font-size:15px}#chat-widget-root .text-base{font-size:1rem;line-height:1.5rem}#chat-widget-root .text-lg{font-size:1.125rem;line-height:1.75rem}#chat-widget-root .text-sm{font-size:.875rem;line-height:1.25rem}#chat-widget-root .text-xl{font-size:1.25rem;line-height:1.75rem}#chat-widget-root .text-xs{font-size:.75rem;line-height:1rem}#chat-widget-root .font-bold{font-weight:700}#chat-widget-root .font-medium{font-weight:500}#chat-widget-root .font-semibold{font-weight:600}#chat-widget-root .uppercase{text-transform:uppercase}#chat-widget-root .lowercase{text-transform:lowercase}#chat-widget-root .italic{font-style:italic}#chat-widget-root .leading-normal{line-height:1.5}#chat-widget-root .leading-relaxed{line-height:1.625}#chat-widget-root .leading-snug{line-height:1.375}#chat-widget-root .leading-tight{line-height:1.25}#chat-widget-root .tracking-wide{letter-spacing:.025em}#chat-widget-root .text-\\[\\#4A5568\\]{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}#chat-widget-root .text-current{color:currentColor}#chat-widget-root .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500\\/80{color:hsla(220,9%,46%,.8)}#chat-widget-root .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}#chat-widget-root .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}#chat-widget-root .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}#chat-widget-root .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}#chat-widget-root .text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}#chat-widget-root .underline{text-decoration-line:underline}#chat-widget-root .no-underline{text-decoration-line:none}#chat-widget-root .underline-offset-4{text-underline-offset:4px}#chat-widget-root .placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .opacity-0{opacity:0}#chat-widget-root .opacity-50{opacity:.5}#chat-widget-root .opacity-60{opacity:.6}#chat-widget-root .opacity-80{opacity:.8}#chat-widget-root .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}#chat-widget-root .shadow,#chat-widget-root .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}#chat-widget-root .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}#chat-widget-root .shadow-lg,#chat-widget-root .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}#chat-widget-root .shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}#chat-widget-root .shadow-none,#chat-widget-root .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}#chat-widget-root .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-black\\/20{--tw-shadow-color:rgba(0,0,0,.2);--tw-shadow:var(--tw-shadow-colored)}#chat-widget-root .shadow-gray-200\\/80{--tw-shadow-color:rgba(229,231,235,.8);--tw-shadow:var(--tw-shadow-colored)}#chat-widget-root .outline-none{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .ring-blue-100{--tw-ring-opacity:1;--tw-ring-color:rgb(219 234 254/var(--tw-ring-opacity,1))}#chat-widget-root .ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}#chat-widget-root .blur{--tw-blur:blur(8px)}#chat-widget-root .blur,#chat-widget-root .brightness-0{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .brightness-0{--tw-brightness:brightness(0)}#chat-widget-root .drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}#chat-widget-root .drop-shadow,#chat-widget-root .drop-shadow-md{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}#chat-widget-root .drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}#chat-widget-root .drop-shadow-sm,#chat-widget-root .grayscale-\\[0\\.3\\]{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .grayscale-\\[0\\.3\\]{--tw-grayscale:grayscale(0.3)}#chat-widget-root .invert{--tw-invert:invert(100%)}#chat-widget-root .filter,#chat-widget-root .invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}#chat-widget-root .transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .duration-150{transition-duration:.15s}#chat-widget-root .duration-200{transition-duration:.2s}#chat-widget-root .duration-300{transition-duration:.3s}#chat-widget-root .duration-500{transition-duration:.5s}#chat-widget-root :is(#chat-widget-root .animate-in){animation:slideIn .3s ease-out}#chat-widget-root :is(#chat-widget-root .transition-all){transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}#chat-widget-root .placeholder\\:text-\\[\\#8C8C8C\\]::-moz-placeholder{--tw-text-opacity:1;color:rgb(140 140 140/var(--tw-text-opacity,1))}#chat-widget-root .placeholder\\:text-\\[\\#8C8C8C\\]::placeholder{--tw-text-opacity:1;color:rgb(140 140 140/var(--tw-text-opacity,1))}#chat-widget-root .placeholder\\:text-\\[\\#A2A9B2\\]::-moz-placeholder{--tw-text-opacity:1;color:rgb(162 169 178/var(--tw-text-opacity,1))}#chat-widget-root .placeholder\\:text-\\[\\#A2A9B2\\]::placeholder{--tw-text-opacity:1;color:rgb(162 169 178/var(--tw-text-opacity,1))}#chat-widget-root .hover\\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}#chat-widget-root .hover\\:scale-105:hover,#chat-widget-root .hover\\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .hover\\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}#chat-widget-root .hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .hover\\:border-blue-400:hover{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}#chat-widget-root .hover\\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}#chat-widget-root .hover\\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-blue-900\\/50:hover{background-color:rgba(30,58,138,.5)}#chat-widget-root .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-transparent:hover{background-color:transparent}#chat-widget-root .hover\\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}#chat-widget-root .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}#chat-widget-root .hover\\:underline:hover{text-decoration-line:underline}#chat-widget-root .hover\\:opacity-80:hover{opacity:.8}#chat-widget-root .hover\\:opacity-90:hover{opacity:.9}#chat-widget-root .hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}#chat-widget-root .hover\\:shadow-md:hover,#chat-widget-root .hover\\:shadow-xl:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}#chat-widget-root .hover\\:grayscale-0:hover{--tw-grayscale:grayscale(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .focus\\:\\!border-red-500:focus{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity,1))!important}#chat-widget-root .focus\\:border-\\[\\#5A6069\\]:focus{--tw-border-opacity:1;border-color:rgb(90 96 105/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:border-\\[\\#B0B0B0\\]:focus{--tw-border-opacity:1;border-color:rgb(176 176 176/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus\\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:ring-white\\/40:focus-visible{--tw-ring-color:hsla(0,0%,100%,.4)}#chat-widget-root .active\\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .active\\:scale-95:active,#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}#chat-widget-root .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}#chat-widget-root .disabled\\:opacity-40:disabled{opacity:.4}#chat-widget-root .disabled\\:opacity-50:disabled{opacity:.5}#chat-widget-root .disabled\\:shadow-none:disabled{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root :is(.group:hover .group-hover\\:scale-100){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root :is(.group:hover .group-hover\\:opacity-100){opacity:1}#chat-widget-root .dark\\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .dark\\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}#chat-widget-root .rtl\\:rounded-tl-2xl:where([dir=rtl],[dir=rtl] *){border-top-left-radius:1rem}#chat-widget-root .rtl\\:rounded-tr-sm:where([dir=rtl],[dir=rtl] *){border-top-right-radius:.125rem}#chat-widget-root .\\[\\&\\:first-child\\]\\:\\!mt-0:first-child{margin-top:0!important}#chat-widget-root .\\[\\&\\:not\\(\\:last-child\\)\\]\\:mb-2:not(:last-child){margin-bottom:.5rem}#chat-widget-root :is(.\\[\\&\\>\\*\\:first-child\\]\\:\\!mt-0>:first-child){margin-top:0!important}#chat-widget-root :is(.\\[\\&\\>\\*\\:last-child\\]\\:\\!mb-0>:last-child){margin-bottom:0!important}";
7873
7873
 
7874
7874
  var css_248z = ".chat-widget-root{position:fixed;z-index:999999}.chat-widget-container{color:var(--cw-text-color,inherit);font-family:var(\r\n --cw-font-family,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Roboto\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif\r\n )}#chat-widget-root .chat-messages p{overflow-wrap:anywhere;word-break:break-word}textarea#chat-widget-input::-moz-placeholder{border:none;line-height:48px;outline:none}textarea#chat-widget-input::placeholder{border:none;line-height:48px;outline:none}textarea#chat-widget-input{border:none;line-height:48px;outline:none}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}#chat-widget-root .scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}#chat-widget-root .scrollbar-hide::-webkit-scrollbar{display:none}@media print{.chat-widget-root{display:none!important}}";
7875
7875
 
@@ -8574,11 +8574,16 @@
8574
8574
  };
8575
8575
 
8576
8576
  /**
8577
- * Constructs the WebSocket URL from the base API URL.
8578
- * @param {string} apiBaseUrl - The base URL of the API.
8579
- * @returns {string} The WebSocket URL.
8577
+ * Constructs the WebSocket URL.
8578
+ * @param {string} apiBaseUrl - The base URL of the API (used when wsBaseUrl is not provided).
8579
+ * @param {string} [wsBaseUrl] - Explicit WebSocket base URL (e.g. wss://knowledge-api-prod.eshal.ai/ws).
8580
+ * When provided, it is returned directly without any transformation.
8581
+ * @returns {string} The WebSocket base URL.
8580
8582
  */
8581
- const getWebSocketUrl = apiBaseUrl => {
8583
+ const getWebSocketUrl = (apiBaseUrl, wsBaseUrl) => {
8584
+ if (wsBaseUrl) {
8585
+ return wsBaseUrl.replace(/\/$/, '');
8586
+ }
8582
8587
  if (!apiBaseUrl) {
8583
8588
  // Default fallback if no API base URL is provided
8584
8589
  return 'wss://dev.eshal.ai/knowledge-api/ws';
@@ -8770,6 +8775,23 @@
8770
8775
  if (timeoutValue === undefined || timeoutValue === null || timeoutValue === 0) {
8771
8776
  return true;
8772
8777
  }
8778
+
8779
+ // Settings snapshot check — mirrors chatbot-preview: if timeout config changed, start a new session
8780
+ if (timeoutValue !== null && timeoutUnit !== null) {
8781
+ const currentSnapshot = JSON.stringify({
8782
+ value: timeoutValue,
8783
+ unit: timeoutUnit === null || timeoutUnit === void 0 ? void 0 : timeoutUnit.toUpperCase()
8784
+ });
8785
+ if (session.settingsSnapshot && session.settingsSnapshot !== currentSnapshot) {
8786
+ console.log('[Session] Timeout settings changed — treating session as invalid.');
8787
+ return false;
8788
+ }
8789
+ }
8790
+
8791
+ // Mirror chatbot-preview: don't count down until the user has first interacted.
8792
+ // null = explicitly new session (our format), user hasn't sent a message yet → always valid.
8793
+ // undefined = old session saved before this field existed → fall through and check by time.
8794
+ if (session.firstInteractionAt === null) return true;
8773
8795
  const timeoutMs = getTimeoutMs(timeoutValue, timeoutUnit);
8774
8796
  if (!timeoutMs) return true; // Default to valid if unit is missing but value was provided (to avoid accidental wipes)
8775
8797
 
@@ -8789,7 +8811,8 @@
8789
8811
  localStorage.setItem("".concat(SESSION_KEY, "_").concat(orgId), JSON.stringify(_objectSpread2({
8790
8812
  conversationId,
8791
8813
  lastActivity: now,
8792
- createdAt: now
8814
+ createdAt: now,
8815
+ firstInteractionAt: null
8793
8816
  }, extra)));
8794
8817
  } catch (_unused2) {}
8795
8818
  };
@@ -8797,7 +8820,13 @@
8797
8820
  try {
8798
8821
  const session = getSession(orgId);
8799
8822
  if (!session) return;
8800
- session.lastActivity = new Date().toISOString();
8823
+ const now = new Date().toISOString();
8824
+ session.lastActivity = now;
8825
+ // Mirror chatbot-preview: record the first interaction time so the timeout
8826
+ // only starts counting from when the user actually sends their first message.
8827
+ if (!session.firstInteractionAt) {
8828
+ session.firstInteractionAt = now;
8829
+ }
8801
8830
  localStorage.setItem("".concat(SESSION_KEY, "_").concat(orgId), JSON.stringify(session));
8802
8831
  } catch (_unused3) {}
8803
8832
  };
@@ -8872,6 +8901,7 @@
8872
8901
  welcomeMessage,
8873
8902
  quickQuestions = [],
8874
8903
  apiBaseUrl,
8904
+ wsBaseUrl,
8875
8905
  apiKey,
8876
8906
  organizationId,
8877
8907
  autoOpen,
@@ -8966,8 +8996,8 @@
8966
8996
  const websocketUrl = reactExports.useMemo(() => {
8967
8997
  if (!organizationId) return null;
8968
8998
  // Construct WebSocket URL from the API base URL
8969
- const wsBaseUrl = getWebSocketUrl(apiBaseUrl);
8970
- return "".concat(wsBaseUrl, "/").concat(organizationId, "/").concat(bidiSessionId);
8999
+ const resolvedWsBaseUrl = getWebSocketUrl(apiBaseUrl, wsBaseUrl);
9000
+ return "".concat(resolvedWsBaseUrl, "/").concat(organizationId, "/").concat(bidiSessionId);
8971
9001
  }, [apiBaseUrl, organizationId, bidiSessionId]);
8972
9002
  const getNextMessageId = reactExports.useCallback(() => {
8973
9003
  const id = "msg-".concat(messageIdRef.current);
@@ -8993,6 +9023,10 @@
8993
9023
  const historyLoadedRef = reactExports.useRef(false); // true once fetch is initiated
8994
9024
  const historyHasMessagesRef = reactExports.useRef(false); // true once history with messages is loaded
8995
9025
  const inactivityInitializedRef = reactExports.useRef(false); // true after first inactivity effect run
9026
+ const prevTimeoutConfigRef = reactExports.useRef({
9027
+ value: null,
9028
+ unit: null
9029
+ }); // tracks previous timeout config to detect real changes
8996
9030
  reactExports.useEffect(() => {
8997
9031
  // Wait for all configuration to be ready
8998
9032
  if (!organizationId || !bidiSessionId || inactivityTimeoutValue === undefined) return;
@@ -9047,7 +9081,28 @@
9047
9081
  }
9048
9082
  }
9049
9083
  }
9050
- setMessages(historyMessages);
9084
+
9085
+ // Always prepend the welcome message so it shows at the top after refresh,
9086
+ // matching chatbot-preview behaviour (welcome message is client-side only
9087
+ // and is not stored in server history).
9088
+ // Use a timestamp before the first history message so it sorts first
9089
+ // (activeMessages is sorted by timestamp before being passed to the UI).
9090
+ if (welcomeMessage) {
9091
+ var _historyMessages$;
9092
+ const firstTs = (_historyMessages$ = historyMessages[0]) === null || _historyMessages$ === void 0 ? void 0 : _historyMessages$.timestamp;
9093
+ const firstTsMs = firstTs instanceof Date ? firstTs.getTime() : firstTs ? new Date(firstTs).getTime() : Date.now();
9094
+ const welcomeMsg = _objectSpread2(_objectSpread2({}, createMessage({
9095
+ id: 'welcome-restored',
9096
+ role: 'assistant',
9097
+ content: welcomeMessage
9098
+ })), {}, {
9099
+ isWelcome: true,
9100
+ timestamp: new Date(firstTsMs - 1)
9101
+ });
9102
+ setMessages([welcomeMsg, ...historyMessages]);
9103
+ } else {
9104
+ setMessages(historyMessages);
9105
+ }
9051
9106
  }
9052
9107
  }).catch(err => {
9053
9108
  console.error('[Session] History fetch failed:', err);
@@ -9070,7 +9125,12 @@
9070
9125
  } else {
9071
9126
  // We have a fresh ID (either from initializer or rotation), persist it if not already there
9072
9127
  if (!existing || existing.conversationId !== bidiSessionId) {
9073
- saveSession(organizationId, bidiSessionId);
9128
+ saveSession(organizationId, bidiSessionId, {
9129
+ settingsSnapshot: JSON.stringify({
9130
+ value: inactivityTimeoutValue,
9131
+ unit: inactivityTimeoutUnit === null || inactivityTimeoutUnit === void 0 ? void 0 : inactivityTimeoutUnit.toUpperCase()
9132
+ })
9133
+ });
9074
9134
  }
9075
9135
  }
9076
9136
  }
@@ -9893,10 +9953,6 @@
9893
9953
  // Signal ChatWindow to show CSAT (voice path; backend sends conclusion in event, not on message)
9894
9954
  setVoiceConclusionForCsat(true);
9895
9955
  }
9896
- if (event.turnComplete) {
9897
- handleTurnComplete();
9898
- return;
9899
- }
9900
9956
 
9901
9957
  // Handle conversation conclusion detection from bidi/voice
9902
9958
  if (typeof conclusionDetected === "boolean" && conclusionDetected) {
@@ -9921,6 +9977,7 @@
9921
9977
  handleInterrupted();
9922
9978
  return;
9923
9979
  }
9980
+
9924
9981
  // Always process user transcriptions - they mark when user has spoken
9925
9982
  if (event.inputTranscription) {
9926
9983
  const transcriptionText = event.inputTranscription.text || '';
@@ -9941,15 +9998,42 @@
9941
9998
  }
9942
9999
  }
9943
10000
 
10001
+ // Handle sources that arrive as a separate message after turnComplete.
10002
+ // Must be checked before the !userHasSpokenRef gate so they are always
10003
+ // attached regardless of session state.
10004
+ if (Array.isArray(event.sources) && event.sources.length > 0) {
10005
+ setBidiMessages(prev => {
10006
+ const updated = [...prev];
10007
+ for (let i = updated.length - 1; i >= 0; i--) {
10008
+ if (updated[i].role === 'assistant') {
10009
+ updated[i] = _objectSpread2(_objectSpread2({}, updated[i]), {}, {
10010
+ sources: event.sources
10011
+ });
10012
+ break;
10013
+ }
10014
+ }
10015
+ return updated;
10016
+ });
10017
+ return;
10018
+ }
10019
+
9944
10020
  // CRITICAL: Ignore assistant responses until user has spoken
9945
10021
  // This prevents automatic greetings from appearing before user's first message
9946
10022
  if (!userHasSpokenRef.current) {
9947
10023
  var _event$outputTranscri, _event$content2;
9948
- // Silently ignore assistant responses before user speaks
9949
10024
  if ((_event$outputTranscri = event.outputTranscription) !== null && _event$outputTranscri !== void 0 && _event$outputTranscri.text || (_event$content2 = event.content) !== null && _event$content2 !== void 0 && _event$content2.parts) {
10025
+ // Still finalize the turn so state is consistent
10026
+ if (event.turnComplete) {
10027
+ handleTurnComplete();
10028
+ }
9950
10029
  return;
9951
10030
  }
9952
10031
  }
10032
+
10033
+ // NOTE: The backend sends outputTranscription and turnComplete in the SAME WebSocket
10034
+ // message (voice_chat.py). Process transcription/content FIRST so the assistant message
10035
+ // exists in bidiMessages before handleTurnComplete clears currentAssistantMessageIdRef —
10036
+ // otherwise the follow-up prompts message that arrives next has no message to attach to.
9953
10037
  if ((_event$outputTranscri2 = event.outputTranscription) !== null && _event$outputTranscri2 !== void 0 && _event$outputTranscri2.text) {
9954
10038
  appendAssistantContent(event.outputTranscription.text, Boolean(event.outputTranscription.finished));
9955
10039
  }
@@ -9959,9 +10043,37 @@
9959
10043
  const contentFinished = ((_event$content4 = event.content) === null || _event$content4 === void 0 ? void 0 : _event$content4.finished) || event.finished || false;
9960
10044
  handleContentParts(event.content.parts, contentFinished);
9961
10045
  }
10046
+ if (event.prompts && Array.isArray(event.prompts) && event.prompts.length > 0) {
10047
+ console.log("[BIDI] handleBidiEvent: attaching prompts to last assistant message", {
10048
+ count: event.prompts.length
10049
+ });
10050
+ setBidiMessages(prev => {
10051
+ const updated = [...prev];
10052
+ for (let i = updated.length - 1; i >= 0; i--) {
10053
+ if (updated[i].role === "assistant") {
10054
+ updated[i] = _objectSpread2(_objectSpread2({}, updated[i]), {}, {
10055
+ prompts: event.prompts
10056
+ });
10057
+ break;
10058
+ }
10059
+ }
10060
+ return updated;
10061
+ });
10062
+ // Save prompts to localStorage for session persistence
10063
+ try {
10064
+ savePromptSuggestions(organizationId, event.prompts);
10065
+ } catch (_e) {/* ignore */}
10066
+ }
10067
+
10068
+ // Handle turn completion AFTER content is appended so the assistant message
10069
+ // exists in bidiMessages before the next turn's prompts arrive
10070
+ if (event.turnComplete) {
10071
+ handleTurnComplete();
10072
+ return;
10073
+ }
9962
10074
 
9963
10075
  // Log if no handlers processed the event
9964
- if (!event.turnComplete && !event.interrupted && !event.inputTranscription && !event.outputTranscription && !event.content) {
10076
+ if (!event.interrupted && !event.inputTranscription && !event.outputTranscription && !event.content && !event.prompts) {
9965
10077
  console.warn("[BIDI] handleBidiEvent: event had no recognized fields", event);
9966
10078
  }
9967
10079
  }, [appendAssistantContent, appendUserTranscription, handleContentParts, handleInterrupted, handleTurnComplete, stopVoiceSession]);
@@ -10179,7 +10291,12 @@
10179
10291
 
10180
10292
  // Create a new session id and persist it
10181
10293
  const newSessionId = "widget-session-".concat(Math.random().toString(36).slice(2, 9));
10182
- saveSession(organizationId, newSessionId);
10294
+ saveSession(organizationId, newSessionId, {
10295
+ settingsSnapshot: JSON.stringify({
10296
+ value: inactivityTimeoutValue,
10297
+ unit: inactivityTimeoutUnit === null || inactivityTimeoutUnit === void 0 ? void 0 : inactivityTimeoutUnit.toUpperCase()
10298
+ })
10299
+ });
10183
10300
  setBidiSessionId(newSessionId);
10184
10301
 
10185
10302
  // Re-show the welcome message
@@ -10216,34 +10333,52 @@
10216
10333
  // Corner cases handled:
10217
10334
  // - Initial mount / page refresh: reads stored lastActivity and checks if already
10218
10335
  // expired → resets immediately, otherwise schedules for the remaining time.
10219
- // - Config change (value/unit updated): refreshes lastActivity to NOW so the new
10220
- // timeout starts fresh WITHOUT resetting the conversation or creating a new session ID.
10336
+ // - Config change (value/unit updated): mirrors chatbot-preview by resetting the
10337
+ // entire conversation so the new period starts clean.
10221
10338
  // - orgId change: resets the initialized flag so the next run is treated as initial mount.
10339
+ // - firstInteractionAt gate: mirrors chatbot-preview — countdown only starts after the
10340
+ // user sends their first message; the timer re-polls until that happens.
10222
10341
  reactExports.useEffect(() => {
10223
10342
  // Reset initialized flag when org changes so we do an immediate expiry check for the new org
10224
10343
  inactivityInitializedRef.current = false;
10344
+ prevTimeoutConfigRef.current = {
10345
+ value: null,
10346
+ unit: null
10347
+ };
10225
10348
  }, [organizationId]);
10226
10349
  reactExports.useEffect(() => {
10227
10350
  if (!organizationId || !inactivityTimeoutValue) return;
10228
10351
  const timeoutMs = getTimeoutMs(inactivityTimeoutValue, inactivityTimeoutUnit);
10229
10352
  if (!timeoutMs) return;
10230
- const isConfigChange = inactivityInitializedRef.current;
10353
+
10354
+ // Detect a real timeout config change (value or unit changed), NOT a bidiSessionId change.
10355
+ const prev = prevTimeoutConfigRef.current;
10356
+ const isConfigChange = inactivityInitializedRef.current && (prev.value !== inactivityTimeoutValue || prev.unit !== inactivityTimeoutUnit);
10231
10357
  inactivityInitializedRef.current = true;
10358
+ prevTimeoutConfigRef.current = {
10359
+ value: inactivityTimeoutValue,
10360
+ unit: inactivityTimeoutUnit
10361
+ };
10232
10362
  if (isConfigChange) {
10233
- // The actual timeout config (value/unit) changed at runtime — refresh lastActivity
10234
- // to now so the new timeout period starts from this moment, preserving the session.
10235
- const existing = getSession(organizationId);
10236
- if (existing) {
10237
- updateActivity(organizationId);
10238
- }
10363
+ // Timeout config changed at runtime — mirror chatbot-preview: reset the session so
10364
+ // the new period starts on a clean slate (previous conversation is discarded).
10365
+ console.warn("[Session] Inactivity timeout config changed — resetting conversation.");
10366
+ resetConversationRef.current();
10367
+ return; // Timer will restart via bidiSessionId change triggered by resetConversation
10239
10368
  }
10240
- // On page refresh or initial mount, isConfigChange is false so we do NOT touch
10241
- // lastActivity — the stored timestamp is used as-is to calculate remaining time.
10369
+ // On page refresh or initial mount isConfigChange is false stored timestamp used as-is.
10242
10370
 
10243
10371
  let timerId = null;
10244
10372
  const scheduleCheck = () => {
10245
10373
  const session = getSession(organizationId);
10246
10374
  if (!session) return;
10375
+
10376
+ // Mirror chatbot-preview: don't expire before the user's first interaction.
10377
+ // Poll at timeoutMs intervals until firstInteractionAt is set.
10378
+ if (!session.firstInteractionAt) {
10379
+ timerId = setTimeout(scheduleCheck, timeoutMs);
10380
+ return;
10381
+ }
10247
10382
  const lastActivityTime = new Date(session.lastActivity).getTime();
10248
10383
  const elapsed = Date.now() - lastActivityTime;
10249
10384
  const remaining = timeoutMs - elapsed;
@@ -10256,13 +10391,13 @@
10256
10391
  };
10257
10392
 
10258
10393
  // On initial mount: check immediately (session may already be expired).
10259
- // On config change: lastActivity was just set to now, so remaining ≈ timeoutMs.
10394
+ // On bidiSessionId change (after reset): session is fresh so remaining ≈ timeoutMs.
10260
10395
  scheduleCheck();
10261
10396
  return () => {
10262
10397
  if (timerId) clearTimeout(timerId);
10263
10398
  };
10264
10399
  // resetConversation intentionally omitted — accessed via resetConversationRef to
10265
- // prevent the effect from re-running (and resetting lastActivity) on identity changes.
10400
+ // prevent the effect from re-running (and spuriously resetting) on identity changes.
10266
10401
  // bidiSessionId IS included so the timer restarts after a session reset.
10267
10402
  // eslint-disable-next-line react-hooks/exhaustive-deps
10268
10403
  }, [organizationId, inactivityTimeoutValue, inactivityTimeoutUnit, bidiSessionId]);
@@ -10487,7 +10622,7 @@
10487
10622
  * See the LICENSE file in the root directory of this source tree.
10488
10623
  */
10489
10624
 
10490
- const __iconNode$a = [["path", {
10625
+ const __iconNode$d = [["path", {
10491
10626
  d: "M2 10v3",
10492
10627
  key: "1fnikh"
10493
10628
  }], ["path", {
@@ -10506,7 +10641,7 @@
10506
10641
  d: "M22 10v3",
10507
10642
  key: "154ddg"
10508
10643
  }]];
10509
- const AudioLines = createLucideIcon("audio-lines", __iconNode$a);
10644
+ const AudioLines = createLucideIcon("audio-lines", __iconNode$d);
10510
10645
 
10511
10646
  /**
10512
10647
  * @license lucide-react v0.575.0 - ISC
@@ -10515,7 +10650,33 @@
10515
10650
  * See the LICENSE file in the root directory of this source tree.
10516
10651
  */
10517
10652
 
10518
- const __iconNode$9 = [["path", {
10653
+ const __iconNode$c = [["path", {
10654
+ d: "m15 18-6-6 6-6",
10655
+ key: "1wnfg3"
10656
+ }]];
10657
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$c);
10658
+
10659
+ /**
10660
+ * @license lucide-react v0.575.0 - ISC
10661
+ *
10662
+ * This source code is licensed under the ISC license.
10663
+ * See the LICENSE file in the root directory of this source tree.
10664
+ */
10665
+
10666
+ const __iconNode$b = [["path", {
10667
+ d: "m9 18 6-6-6-6",
10668
+ key: "mthhwq"
10669
+ }]];
10670
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$b);
10671
+
10672
+ /**
10673
+ * @license lucide-react v0.575.0 - ISC
10674
+ *
10675
+ * This source code is licensed under the ISC license.
10676
+ * See the LICENSE file in the root directory of this source tree.
10677
+ */
10678
+
10679
+ const __iconNode$a = [["path", {
10519
10680
  d: "M12 15V3",
10520
10681
  key: "m9g1x1"
10521
10682
  }], ["path", {
@@ -10525,7 +10686,7 @@
10525
10686
  d: "m7 10 5 5 5-5",
10526
10687
  key: "brsn70"
10527
10688
  }]];
10528
- const Download = createLucideIcon("download", __iconNode$9);
10689
+ const Download = createLucideIcon("download", __iconNode$a);
10529
10690
 
10530
10691
  /**
10531
10692
  * @license lucide-react v0.575.0 - ISC
@@ -10534,7 +10695,7 @@
10534
10695
  * See the LICENSE file in the root directory of this source tree.
10535
10696
  */
10536
10697
 
10537
- const __iconNode$8 = [["path", {
10698
+ const __iconNode$9 = [["path", {
10538
10699
  d: "M15 3h6v6",
10539
10700
  key: "1q9fwt"
10540
10701
  }], ["path", {
@@ -10544,7 +10705,7 @@
10544
10705
  d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",
10545
10706
  key: "a6xqqp"
10546
10707
  }]];
10547
- const ExternalLink = createLucideIcon("external-link", __iconNode$8);
10708
+ const ExternalLink = createLucideIcon("external-link", __iconNode$9);
10548
10709
 
10549
10710
  /**
10550
10711
  * @license lucide-react v0.575.0 - ISC
@@ -10553,7 +10714,7 @@
10553
10714
  * See the LICENSE file in the root directory of this source tree.
10554
10715
  */
10555
10716
 
10556
- const __iconNode$7 = [["path", {
10717
+ const __iconNode$8 = [["path", {
10557
10718
  d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
10558
10719
  key: "1oefj6"
10559
10720
  }], ["path", {
@@ -10569,7 +10730,7 @@
10569
10730
  d: "M16 17H8",
10570
10731
  key: "z1uh3a"
10571
10732
  }]];
10572
- const FileText = createLucideIcon("file-text", __iconNode$7);
10733
+ const FileText = createLucideIcon("file-text", __iconNode$8);
10573
10734
 
10574
10735
  /**
10575
10736
  * @license lucide-react v0.575.0 - ISC
@@ -10578,7 +10739,7 @@
10578
10739
  * See the LICENSE file in the root directory of this source tree.
10579
10740
  */
10580
10741
 
10581
- const __iconNode$6 = [["circle", {
10742
+ const __iconNode$7 = [["circle", {
10582
10743
  cx: "12",
10583
10744
  cy: "12",
10584
10745
  r: "10",
@@ -10590,7 +10751,7 @@
10590
10751
  d: "M2 12h20",
10591
10752
  key: "9i4pu4"
10592
10753
  }]];
10593
- const Globe = createLucideIcon("globe", __iconNode$6);
10754
+ const Globe = createLucideIcon("globe", __iconNode$7);
10594
10755
 
10595
10756
  /**
10596
10757
  * @license lucide-react v0.575.0 - ISC
@@ -10599,11 +10760,11 @@
10599
10760
  * See the LICENSE file in the root directory of this source tree.
10600
10761
  */
10601
10762
 
10602
- const __iconNode$5 = [["path", {
10763
+ const __iconNode$6 = [["path", {
10603
10764
  d: "M21 12a9 9 0 1 1-6.219-8.56",
10604
10765
  key: "13zald"
10605
10766
  }]];
10606
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$5);
10767
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$6);
10607
10768
 
10608
10769
  /**
10609
10770
  * @license lucide-react v0.575.0 - ISC
@@ -10612,11 +10773,11 @@
10612
10773
  * See the LICENSE file in the root directory of this source tree.
10613
10774
  */
10614
10775
 
10615
- const __iconNode$4 = [["path", {
10776
+ const __iconNode$5 = [["path", {
10616
10777
  d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
10617
10778
  key: "1sd12s"
10618
10779
  }]];
10619
- const MessageCircle = createLucideIcon("message-circle", __iconNode$4);
10780
+ const MessageCircle = createLucideIcon("message-circle", __iconNode$5);
10620
10781
 
10621
10782
  /**
10622
10783
  * @license lucide-react v0.575.0 - ISC
@@ -10625,14 +10786,27 @@
10625
10786
  * See the LICENSE file in the root directory of this source tree.
10626
10787
  */
10627
10788
 
10628
- const __iconNode$3 = [["path", {
10789
+ const __iconNode$4 = [["path", {
10629
10790
  d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
10630
10791
  key: "1ffxy3"
10631
10792
  }], ["path", {
10632
10793
  d: "m21.854 2.147-10.94 10.939",
10633
10794
  key: "12cjpa"
10634
10795
  }]];
10635
- const Send = createLucideIcon("send", __iconNode$3);
10796
+ const Send = createLucideIcon("send", __iconNode$4);
10797
+
10798
+ /**
10799
+ * @license lucide-react v0.575.0 - ISC
10800
+ *
10801
+ * This source code is licensed under the ISC license.
10802
+ * See the LICENSE file in the root directory of this source tree.
10803
+ */
10804
+
10805
+ const __iconNode$3 = [["path", {
10806
+ d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",
10807
+ key: "r04s7s"
10808
+ }]];
10809
+ const Star = createLucideIcon("star", __iconNode$3);
10636
10810
 
10637
10811
  /**
10638
10812
  * @license lucide-react v0.575.0 - ISC
@@ -60227,41 +60401,87 @@
60227
60401
  hoverShadow
60228
60402
  };
60229
60403
  };
60230
- const QuickQuestions = _ref3 => {
60231
- var _ref4;
60404
+ const SCROLL_AMOUNT$1 = 150;
60405
+ const HorizontalQuickQuestions = _ref3 => {
60232
60406
  let {
60233
- questions = [],
60234
- isDark = false,
60235
- primaryColor = "#2563eb",
60407
+ questions,
60408
+ isDark,
60409
+ palette,
60410
+ resolvedTextColor,
60411
+ fontFamily,
60412
+ fontSize,
60413
+ isRtl,
60236
60414
  onQuestionClick,
60237
- isTyping = false,
60238
- layout = "vertical",
60239
- fontFamily = "Inter",
60240
- fontSize = "14px",
60241
- textColor,
60242
- isRtl = false,
60243
- questionTextColor,
60244
- questionBoxColor
60415
+ applyHoverState
60245
60416
  } = _ref3;
60246
- if (!questions.length || isTyping) {
60247
- return null;
60248
- }
60249
- const resolvedTextColor = (_ref4 = questionTextColor !== null && questionTextColor !== void 0 ? questionTextColor : textColor) !== null && _ref4 !== void 0 ? _ref4 : isDark ? "#f3f4f6" : "#111827";
60250
- const resolvedQuestionBoxColor = questionBoxColor !== null && questionBoxColor !== void 0 ? questionBoxColor : isDark ? "#374151" : "#e5e7eb";
60251
- const palette = reactExports.useMemo(() => getQuickQuestionPalette(resolvedTextColor, isDark), [resolvedTextColor, isDark]);
60252
- const applyHoverState = (element, isHover) => {
60253
- element.style.backgroundColor = isHover ? palette.hoverBackground : palette.background;
60254
- element.style.borderColor = isHover ? palette.hoverBorder : palette.border;
60255
- element.style.boxShadow = isHover ? palette.hoverShadow : palette.shadow;
60256
- };
60257
- if (layout === "horizontal") {
60258
- return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
60259
- className: "px-4 py-4 border-t ".concat(isDark ? "border-gray-700/50" : "border-gray-200/60"),
60260
- children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
60261
- className: "text-xs mb-3 font-semibold tracking-wide uppercase ".concat(isDark ? "text-gray-400" : "text-gray-500"),
60262
- children: "Quick questions:"
60417
+ const scrollRef = reactExports.useRef(null);
60418
+ const [canScrollLeft, setCanScrollLeft] = reactExports.useState(false);
60419
+ const [canScrollRight, setCanScrollRight] = reactExports.useState(false);
60420
+ const updateScrollState = reactExports.useCallback(() => {
60421
+ const el = scrollRef.current;
60422
+ if (!el) return;
60423
+ const {
60424
+ scrollLeft,
60425
+ scrollWidth,
60426
+ clientWidth
60427
+ } = el;
60428
+ setCanScrollLeft(Math.abs(scrollLeft) > 1);
60429
+ setCanScrollRight(Math.abs(scrollLeft) + clientWidth < scrollWidth - 1);
60430
+ }, []);
60431
+ reactExports.useEffect(() => {
60432
+ updateScrollState();
60433
+ const el = scrollRef.current;
60434
+ if (!el) return;
60435
+ const observer = new ResizeObserver(updateScrollState);
60436
+ observer.observe(el);
60437
+ return () => observer.disconnect();
60438
+ }, [updateScrollState, questions]);
60439
+ const scroll = reactExports.useCallback(direction => {
60440
+ const el = scrollRef.current;
60441
+ if (!el) return;
60442
+ const amount = direction === "left" ? -SCROLL_AMOUNT$1 : SCROLL_AMOUNT$1;
60443
+ el.scrollBy({
60444
+ left: isRtl ? -amount : amount,
60445
+ behavior: "smooth"
60446
+ });
60447
+ }, [isRtl]);
60448
+ const arrowBg = isDark ? "rgba(31,41,55,0.85)" : "rgba(255,255,255,0.85)";
60449
+ const arrowColor = isDark ? "#e5e7eb" : "#374151";
60450
+ const arrowBorder = isDark ? "#4b5563" : "#d1d5db";
60451
+ const arrowDisabledOpacity = 0.35;
60452
+ return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
60453
+ className: "px-4 py-4 border-t ".concat(isDark ? "border-gray-700/50" : "border-gray-200/60"),
60454
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
60455
+ className: "text-xs mb-3 font-semibold tracking-wide uppercase ".concat(isDark ? "text-gray-400" : "text-gray-500"),
60456
+ children: "Quick questions:"
60457
+ }), /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
60458
+ className: "flex items-center gap-1.5",
60459
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx("button", {
60460
+ onClick: () => scroll("left"),
60461
+ disabled: !canScrollLeft,
60462
+ "aria-label": "Scroll left",
60463
+ className: "flex-shrink-0 flex items-center justify-center w-7 h-7 rounded-full shadow-sm transition-all duration-200 hover:shadow-md active:scale-95",
60464
+ style: {
60465
+ backgroundColor: arrowBg,
60466
+ border: "1px solid ".concat(arrowBorder),
60467
+ color: arrowColor,
60468
+ backdropFilter: "blur(4px)",
60469
+ opacity: canScrollLeft ? 1 : arrowDisabledOpacity,
60470
+ cursor: canScrollLeft ? "pointer" : "default"
60471
+ },
60472
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(ChevronLeft, {
60473
+ size: 16
60474
+ })
60263
60475
  }), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
60264
- className: "flex gap-3 overflow-x-auto scrollbar-hide pb-2",
60476
+ ref: scrollRef,
60477
+ onScroll: updateScrollState,
60478
+ className: "flex-1 flex gap-3 overflow-x-auto pb-2",
60479
+ style: {
60480
+ scrollBehavior: "smooth",
60481
+ WebkitOverflowScrolling: "touch",
60482
+ scrollbarWidth: "none",
60483
+ msOverflowStyle: "none"
60484
+ },
60265
60485
  children: questions.map((question, index) => /*#__PURE__*/jsxRuntimeExports.jsxs("button", {
60266
60486
  onClick: () => onQuestionClick === null || onQuestionClick === void 0 ? void 0 : onQuestionClick(question),
60267
60487
  className: "group relative text-sm px-5 py-2.5 rounded-xl font-medium transition-all duration-300 hover:scale-105 active:scale-95 whitespace-nowrap flex-shrink-0 overflow-hidden backdrop-blur-sm ".concat(isRtl ? "text-right" : "text-left"),
@@ -60293,7 +60513,64 @@
60293
60513
  children: question
60294
60514
  })]
60295
60515
  }, index))
60516
+ }), /*#__PURE__*/jsxRuntimeExports.jsx("button", {
60517
+ onClick: () => scroll("right"),
60518
+ disabled: !canScrollRight,
60519
+ "aria-label": "Scroll right",
60520
+ className: "flex-shrink-0 flex items-center justify-center w-7 h-7 rounded-full shadow-sm transition-all duration-200 hover:shadow-md active:scale-95",
60521
+ style: {
60522
+ backgroundColor: arrowBg,
60523
+ border: "1px solid ".concat(arrowBorder),
60524
+ color: arrowColor,
60525
+ backdropFilter: "blur(4px)",
60526
+ opacity: canScrollRight ? 1 : arrowDisabledOpacity,
60527
+ cursor: canScrollRight ? "pointer" : "default"
60528
+ },
60529
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(ChevronRight, {
60530
+ size: 16
60531
+ })
60296
60532
  })]
60533
+ })]
60534
+ });
60535
+ };
60536
+ const QuickQuestions = _ref4 => {
60537
+ var _ref5;
60538
+ let {
60539
+ questions = [],
60540
+ isDark = false,
60541
+ primaryColor = "#2563eb",
60542
+ onQuestionClick,
60543
+ isTyping = false,
60544
+ layout = "vertical",
60545
+ fontFamily = "Inter",
60546
+ fontSize = "14px",
60547
+ textColor,
60548
+ isRtl = false,
60549
+ questionTextColor,
60550
+ questionBoxColor
60551
+ } = _ref4;
60552
+ if (!questions.length || isTyping) {
60553
+ return null;
60554
+ }
60555
+ const resolvedTextColor = (_ref5 = questionTextColor !== null && questionTextColor !== void 0 ? questionTextColor : textColor) !== null && _ref5 !== void 0 ? _ref5 : isDark ? "#f3f4f6" : "#111827";
60556
+ const resolvedQuestionBoxColor = questionBoxColor !== null && questionBoxColor !== void 0 ? questionBoxColor : isDark ? "#374151" : "#e5e7eb";
60557
+ const palette = reactExports.useMemo(() => getQuickQuestionPalette(resolvedTextColor, isDark), [resolvedTextColor, isDark]);
60558
+ const applyHoverState = (element, isHover) => {
60559
+ element.style.backgroundColor = isHover ? palette.hoverBackground : palette.background;
60560
+ element.style.borderColor = isHover ? palette.hoverBorder : palette.border;
60561
+ element.style.boxShadow = isHover ? palette.hoverShadow : palette.shadow;
60562
+ };
60563
+ if (layout === "horizontal") {
60564
+ return /*#__PURE__*/jsxRuntimeExports.jsx(HorizontalQuickQuestions, {
60565
+ questions: questions,
60566
+ isDark: isDark,
60567
+ palette: palette,
60568
+ resolvedTextColor: resolvedTextColor,
60569
+ fontFamily: fontFamily,
60570
+ fontSize: fontSize,
60571
+ isRtl: isRtl,
60572
+ onQuestionClick: onQuestionClick,
60573
+ applyHoverState: applyHoverState
60297
60574
  });
60298
60575
  }
60299
60576
 
@@ -60772,6 +61049,8 @@
60772
61049
  voiceStatus = "idle",
60773
61050
  messagesContainerRef,
60774
61051
  companyLogo,
61052
+ chatbotAvatarEnabled,
61053
+ chatbotAvatar,
60775
61054
  conciergeName,
60776
61055
  companyName,
60777
61056
  apiBaseUrl,
@@ -60900,7 +61179,7 @@
60900
61179
  isRtl: isRtl,
60901
61180
  onDecision: onDecision,
60902
61181
  onPromptSuggestionClick: onPromptSuggestionClick,
60903
- companyLogo: companyLogo,
61182
+ companyLogo: chatbotAvatarEnabled && chatbotAvatar ? chatbotAvatar : companyLogo,
60904
61183
  conciergeName: conciergeName,
60905
61184
  companyName: companyName,
60906
61185
  apiBaseUrl: apiBaseUrl,
@@ -60928,7 +61207,7 @@
60928
61207
  formatTime: formatTime,
60929
61208
  isRtl: isRtl,
60930
61209
  onDecision: onDecision,
60931
- companyLogo: companyLogo,
61210
+ companyLogo: chatbotAvatarEnabled && chatbotAvatar ? chatbotAvatar : companyLogo,
60932
61211
  conciergeName: conciergeName,
60933
61212
  companyName: companyName,
60934
61213
  apiBaseUrl: apiBaseUrl,
@@ -60990,7 +61269,119 @@
60990
61269
  }
60991
61270
  }
60992
61271
  };
60993
- const ChatInput = _ref => {
61272
+ const SCROLL_AMOUNT = 150;
61273
+ const PromptSuggestionsRow = _ref => {
61274
+ let {
61275
+ suggestions,
61276
+ onSuggestionClick,
61277
+ promptPrimary,
61278
+ promptTextColor,
61279
+ promptFontFamily,
61280
+ promptFontSize,
61281
+ isDark,
61282
+ isRtl
61283
+ } = _ref;
61284
+ const scrollRef = reactExports.useRef(null);
61285
+ const [canScrollLeft, setCanScrollLeft] = reactExports.useState(false);
61286
+ const [canScrollRight, setCanScrollRight] = reactExports.useState(false);
61287
+ const updateScrollState = reactExports.useCallback(() => {
61288
+ const el = scrollRef.current;
61289
+ if (!el) return;
61290
+ const {
61291
+ scrollLeft,
61292
+ scrollWidth,
61293
+ clientWidth
61294
+ } = el;
61295
+ setCanScrollLeft(Math.abs(scrollLeft) > 1);
61296
+ setCanScrollRight(Math.abs(scrollLeft) + clientWidth < scrollWidth - 1);
61297
+ }, []);
61298
+ reactExports.useEffect(() => {
61299
+ updateScrollState();
61300
+ const el = scrollRef.current;
61301
+ if (!el) return;
61302
+ const observer = new ResizeObserver(updateScrollState);
61303
+ observer.observe(el);
61304
+ return () => observer.disconnect();
61305
+ }, [updateScrollState, suggestions]);
61306
+ const scroll = reactExports.useCallback(direction => {
61307
+ const el = scrollRef.current;
61308
+ if (!el) return;
61309
+ const amount = direction === "left" ? -SCROLL_AMOUNT : SCROLL_AMOUNT;
61310
+ el.scrollBy({
61311
+ left: isRtl ? -amount : amount,
61312
+ behavior: "smooth"
61313
+ });
61314
+ }, [isRtl]);
61315
+ const arrowBg = isDark ? "rgba(31,41,55,0.85)" : "rgba(255,255,255,0.85)";
61316
+ const arrowColor = isDark ? "#e5e7eb" : "#374151";
61317
+ const arrowBorder = isDark ? "#4b5563" : "#d1d5db";
61318
+ const arrowDisabledOpacity = 0.35;
61319
+ return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
61320
+ className: "mb-2 px-5",
61321
+ children: /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
61322
+ className: "flex items-center gap-1.5",
61323
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx("button", {
61324
+ type: "button",
61325
+ onClick: () => scroll("left"),
61326
+ disabled: !canScrollLeft,
61327
+ "aria-label": "Scroll left",
61328
+ className: "flex-shrink-0 flex items-center justify-center w-7 h-7 rounded-full shadow-sm transition-all duration-200 hover:shadow-md active:scale-95",
61329
+ style: {
61330
+ backgroundColor: arrowBg,
61331
+ border: "1px solid ".concat(arrowBorder),
61332
+ color: arrowColor,
61333
+ backdropFilter: "blur(4px)",
61334
+ opacity: canScrollLeft ? 1 : arrowDisabledOpacity,
61335
+ cursor: canScrollLeft ? "pointer" : "default"
61336
+ },
61337
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(ChevronLeft, {
61338
+ size: 16
61339
+ })
61340
+ }), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
61341
+ ref: scrollRef,
61342
+ onScroll: updateScrollState,
61343
+ className: "flex-1 flex gap-2 overflow-x-auto pb-1",
61344
+ style: {
61345
+ scrollBehavior: "smooth",
61346
+ WebkitOverflowScrolling: "touch",
61347
+ scrollbarWidth: "none",
61348
+ msOverflowStyle: "none"
61349
+ },
61350
+ children: suggestions.map((p, index) => /*#__PURE__*/jsxRuntimeExports.jsx("button", {
61351
+ type: "button",
61352
+ onClick: () => onSuggestionClick(p.text || p),
61353
+ dir: "auto",
61354
+ className: "inline-flex items-center rounded-full px-4 py-1.5 whitespace-nowrap flex-shrink-0 border-0 transition-transform duration-150 active:scale-95",
61355
+ style: {
61356
+ background: "linear-gradient(135deg, ".concat(promptPrimary, " 0%, ").concat(promptPrimary, "dd 100%)"),
61357
+ color: promptTextColor,
61358
+ fontFamily: promptFontFamily,
61359
+ fontSize: promptFontSize
61360
+ },
61361
+ children: p.text || p
61362
+ }, "".concat(p.text || p, "-").concat(index)))
61363
+ }), /*#__PURE__*/jsxRuntimeExports.jsx("button", {
61364
+ type: "button",
61365
+ onClick: () => scroll("right"),
61366
+ disabled: !canScrollRight,
61367
+ "aria-label": "Scroll right",
61368
+ className: "flex-shrink-0 flex items-center justify-center w-7 h-7 rounded-full shadow-sm transition-all duration-200 hover:shadow-md active:scale-95",
61369
+ style: {
61370
+ backgroundColor: arrowBg,
61371
+ border: "1px solid ".concat(arrowBorder),
61372
+ color: arrowColor,
61373
+ backdropFilter: "blur(4px)",
61374
+ opacity: canScrollRight ? 1 : arrowDisabledOpacity,
61375
+ cursor: canScrollRight ? "pointer" : "default"
61376
+ },
61377
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(ChevronRight, {
61378
+ size: 16
61379
+ })
61380
+ })]
61381
+ })
61382
+ });
61383
+ };
61384
+ const ChatInput = _ref2 => {
60994
61385
  let {
60995
61386
  inputValue,
60996
61387
  setInputValue,
@@ -61025,8 +61416,10 @@
61025
61416
  userMessageBoxColor,
61026
61417
  userTextColor,
61027
61418
  promptSuggestions,
61028
- onPromptSuggestionClick
61029
- } = _ref;
61419
+ onPromptSuggestionClick,
61420
+ showResolveButton = false,
61421
+ onResolve
61422
+ } = _ref2;
61030
61423
  const [isFocused, setIsFocused] = reactExports.useState(false);
61031
61424
  const [showTooltip, setShowTooltip] = reactExports.useState(false);
61032
61425
  const [tooltipPosition, setTooltipPosition] = reactExports.useState({
@@ -61222,24 +61615,25 @@
61222
61615
  style: {
61223
61616
  overflow: "visible"
61224
61617
  },
61225
- children: [promptSuggestions.length > 0 && onPromptSuggestionClick && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
61226
- className: "mb-2 -mx-1 px-5",
61227
- children: /*#__PURE__*/jsxRuntimeExports.jsx("div", {
61228
- className: "flex gap-2 overflow-x-auto scrollbar-hide pb-1",
61229
- children: promptSuggestions.map((p, index) => /*#__PURE__*/jsxRuntimeExports.jsx("button", {
61230
- type: "button",
61231
- onClick: () => onPromptSuggestionClick(p.text || p),
61232
- dir: "auto",
61233
- className: "inline-flex items-center rounded-full px-4 py-1.5 whitespace-nowrap flex-shrink-0 border-0 transition-transform duration-150 active:scale-95",
61234
- style: {
61235
- background: "linear-gradient(135deg, ".concat(promptPrimary, " 0%, ").concat(promptPrimary, "dd 100%)"),
61236
- color: promptTextColor,
61237
- fontFamily: promptFontFamily,
61238
- fontSize: promptFontSize
61239
- },
61240
- children: p.text || p
61241
- }, "".concat(p.text || p, "-").concat(index)))
61618
+ children: [showResolveButton && onResolve && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
61619
+ className: "flex justify-center py-2",
61620
+ children: /*#__PURE__*/jsxRuntimeExports.jsx("button", {
61621
+ onClick: onResolve,
61622
+ className: cn("text-sm font-medium underline underline-offset-4 transition-colors bg-transparent border-0 cursor-pointer", isDark ? "text-gray-400 hover:text-gray-200" : "text-gray-500 hover:text-gray-700"),
61623
+ style: {
61624
+ fontFamily: fontFamily || "Inter"
61625
+ },
61626
+ children: "Resolve"
61242
61627
  })
61628
+ }), promptSuggestions.length > 0 && onPromptSuggestionClick && /*#__PURE__*/jsxRuntimeExports.jsx(PromptSuggestionsRow, {
61629
+ suggestions: promptSuggestions,
61630
+ onSuggestionClick: onPromptSuggestionClick,
61631
+ promptPrimary: promptPrimary,
61632
+ promptTextColor: promptTextColor,
61633
+ promptFontFamily: promptFontFamily,
61634
+ promptFontSize: promptFontSize,
61635
+ isDark: isDark,
61636
+ isRtl: isRtl
61243
61637
  }), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
61244
61638
  className: "my-4",
61245
61639
  style: {
@@ -61423,7 +61817,7 @@
61423
61817
  className: "no-underline",
61424
61818
  children: /*#__PURE__*/jsxRuntimeExports.jsxs("span", {
61425
61819
  dir: "ltr",
61426
- className: cn("inline-flex items-center gap-1.5 rounded-lg py-1.5 px-3 transition-colors", isDark ? "bg-gray-800/50 border border-gray-700/50 hover:bg-gray-800/80" : "bg-gray-100/80 border border-gray-200/50 hover:bg-gray-100"),
61820
+ className: "inline-flex items-center gap-1.5 py-1.5 px-3",
61427
61821
  children: [/*#__PURE__*/jsxRuntimeExports.jsx("span", {
61428
61822
  className: cn("font-sans text-[10px] font-medium", isDark ? "text-gray-400" : "text-gray-500"),
61429
61823
  children: "Powered by"
@@ -62018,6 +62412,8 @@
62018
62412
  conciergeName,
62019
62413
  companyName,
62020
62414
  companyLogo,
62415
+ chatbotAvatarEnabled,
62416
+ chatbotAvatar,
62021
62417
  messages,
62022
62418
  isLoading,
62023
62419
  isConversationLoading = false,
@@ -62088,6 +62484,13 @@
62088
62484
  }
62089
62485
  });
62090
62486
 
62487
+ // Resolve / Feedback state
62488
+ const [showResolveForm, setShowResolveForm] = reactExports.useState(false);
62489
+ const [isConversationResolved, setIsConversationResolved] = reactExports.useState(false);
62490
+ const [resolveRating, setResolveRating] = reactExports.useState(0);
62491
+ const [resolveFeedbackText, setResolveFeedbackText] = reactExports.useState("");
62492
+ const [isSubmittingResolve, setIsSubmittingResolve] = reactExports.useState(false);
62493
+
62091
62494
  // Sync csatSubmitted from session whenever the conversation changes
62092
62495
  reactExports.useEffect(() => {
62093
62496
  try {
@@ -62097,7 +62500,6 @@
62097
62500
  if (submitted) setShowCsat(false);
62098
62501
  } catch (_unused2) {}
62099
62502
  }, [conversationId, organizationId]);
62100
- // const [lastUserMessageTime, setLastUserMessageTime] = useState(null);
62101
62503
 
62102
62504
  // Auto-scroll hook
62103
62505
  useAutoScroll(messagesContainerRef, [messages, isLoading], {
@@ -62135,53 +62537,9 @@
62135
62537
  }
62136
62538
  return userMessageBoxColor || DEFAULT_USER_MESSAGE_COLOR;
62137
62539
  }, [isDark, primaryColor, userMessageBoxColor]);
62138
- const placeholder = isRtlLanguage ? "اكتب رسالتك هنا" : "Type your message here";
62540
+ const placeholder = isConversationResolved ? "Conversation resolved" : isRtlLanguage ? "اكتب رسالتك هنا..." : "Type your message...";
62139
62541
  const hasUserMessages = messages === null || messages === void 0 || (_messages$some = messages.some) === null || _messages$some === void 0 ? void 0 : _messages$some.call(messages, msg => msg.role === "user");
62140
62542
  const shouldShowQuickQuestions = !hasUserMessages && quickQuestions.length > 0 && quickQuestionsEnabled;
62141
-
62142
- // Show CSAT when the last assistant message is marked as concluded (text/SSE path)
62143
- reactExports.useEffect(() => {
62144
- if (!csatEnabled) return;
62145
- if (csatSubmitted) return;
62146
- if (!messages || messages.length === 0) return;
62147
- const lastMessage = messages[messages.length - 1];
62148
- if (lastMessage && lastMessage.role === "assistant" && lastMessage.conclusionDetected && !showCsat && csatTriggerType === "ON_END") {
62149
- setShowCsat(true);
62150
- }
62151
- }, [messages, csatEnabled, csatSubmitted, showCsat, csatTriggerType]);
62152
-
62153
- // Show CSAT when voice conclusion was detected (backend sends conclusion_detected in event; no message flag)
62154
- reactExports.useEffect(() => {
62155
- if (!csatEnabled || csatSubmitted || showCsat) return;
62156
- if (csatTriggerType !== "ON_END") return;
62157
- if (voiceConclusionForCsat) {
62158
- setShowCsat(true);
62159
- }
62160
- }, [voiceConclusionForCsat, csatEnabled, csatSubmitted, showCsat, csatTriggerType]);
62161
-
62162
- // // Track time of the most recent user message
62163
- // useEffect(() => {
62164
- // if (!messages || messages.length === 0) return;
62165
- // const lastMsg = messages[messages.length - 1];
62166
- // if (lastMsg?.role === "user") {
62167
- // setLastUserMessageTime(Date.now());
62168
- // }
62169
- // }, [messages]);
62170
-
62171
- // // Trigger CSAT after 60 seconds of no new user message
62172
- // useEffect(() => {
62173
- // if (!csatEnabled) return;
62174
- // if (csatSubmitted) return;
62175
- // if (showCsat) return;
62176
- // if (!lastUserMessageTime) return;
62177
-
62178
- // const timer = setTimeout(() => {
62179
- // setShowCsat(true);
62180
- // }, 60 * 1000);
62181
-
62182
- // return () => clearTimeout(timer);
62183
- // }, [lastUserMessageTime, csatEnabled, csatSubmitted, showCsat]);
62184
-
62185
62543
  const handleCsatRating = async (rating, format) => {
62186
62544
  setCsatSubmitted(true); // optimistic UI
62187
62545
  setShowCsat(false);
@@ -62215,6 +62573,77 @@
62215
62573
  console.error("CSAT submission error:", error);
62216
62574
  }
62217
62575
  };
62576
+
62577
+ // Handle Resolve feedback submission
62578
+ const handleResolveSubmission = reactExports.useCallback(async () => {
62579
+ if (isSubmittingResolve || isConversationResolved) return;
62580
+ if (resolveRating === 0) return;
62581
+ setIsSubmittingResolve(true);
62582
+ try {
62583
+ const headers = {
62584
+ "Content-Type": "application/json"
62585
+ };
62586
+ if (organizationId) {
62587
+ headers["x-eshal-org"] = organizationId;
62588
+ }
62589
+ const ratingFormat = (() => {
62590
+ const fmt = csatFormat || "Emoji";
62591
+ if (fmt === "Emoji") return "EMOJI";
62592
+ if (fmt === "Thumbs") return "THUMBS";
62593
+ if (fmt === "Stars") return "STARS";
62594
+ return fmt.toUpperCase();
62595
+ })();
62596
+ const response = await fetch("".concat(apiBaseUrl.replace(/\/$/, ""), "/api/v1/support/csat"), {
62597
+ method: "POST",
62598
+ headers,
62599
+ credentials: "include",
62600
+ body: JSON.stringify({
62601
+ conversationId,
62602
+ rating: String(resolveRating),
62603
+ ratingFormat,
62604
+ organizationId,
62605
+ conciergeId,
62606
+ feedback: resolveFeedbackText || undefined
62607
+ })
62608
+ });
62609
+ if (response.ok) {
62610
+ setIsConversationResolved(true);
62611
+ setShowResolveForm(false);
62612
+ setCsatSubmitted(true);
62613
+ markCsatSubmitted(organizationId);
62614
+
62615
+ // Reset session and start new conversation
62616
+ setTimeout(() => {
62617
+ setIsConversationResolved(false);
62618
+ setCsatSubmitted(false);
62619
+ setShowResolveForm(false);
62620
+ setResolveRating(0);
62621
+ setResolveFeedbackText("");
62622
+ if (onResetConversation) {
62623
+ onResetConversation();
62624
+ }
62625
+ }, 1500);
62626
+ } else {
62627
+ console.error("Failed to submit resolve feedback:", await response.text());
62628
+ }
62629
+ } catch (error) {
62630
+ console.error("Error submitting resolve feedback:", error);
62631
+ } finally {
62632
+ setIsSubmittingResolve(false);
62633
+ }
62634
+ }, [isSubmittingResolve, isConversationResolved, resolveRating, resolveFeedbackText, conversationId, organizationId, conciergeId, apiBaseUrl, csatFormat, onResetConversation]);
62635
+
62636
+ // Handle X button: first click shows form, second click closes
62637
+ const handleCloseClick = reactExports.useCallback(() => {
62638
+ if (showResolveForm) {
62639
+ setShowResolveForm(false);
62640
+ onClose === null || onClose === void 0 || onClose();
62641
+ } else if (!isConversationResolved) {
62642
+ setShowResolveForm(true);
62643
+ } else {
62644
+ onClose === null || onClose === void 0 || onClose();
62645
+ }
62646
+ }, [showResolveForm, isConversationResolved, onClose]);
62218
62647
  const latestPromptSuggestions = reactExports.useMemo(() => {
62219
62648
  if (!messages || !Array.isArray(messages)) return [];
62220
62649
  for (let i = messages.length - 1; i >= 0; i -= 1) {
@@ -62225,6 +62654,15 @@
62225
62654
  }
62226
62655
  return [];
62227
62656
  }, [messages]);
62657
+
62658
+ // Keep last known suggestions stable — don't clear them while a response is streaming
62659
+ const stablePromptSuggestionsRef = reactExports.useRef([]);
62660
+ reactExports.useEffect(() => {
62661
+ if (latestPromptSuggestions.length > 0) {
62662
+ stablePromptSuggestionsRef.current = latestPromptSuggestions;
62663
+ }
62664
+ }, [latestPromptSuggestions]);
62665
+ const stablePromptSuggestions = latestPromptSuggestions.length > 0 ? latestPromptSuggestions : stablePromptSuggestionsRef.current;
62228
62666
  reactExports.useEffect(() => {
62229
62667
  if (!csatEnabled) return;
62230
62668
  if (!showCsat) return;
@@ -62241,6 +62679,121 @@
62241
62679
  window.cancelAnimationFrame(frame);
62242
62680
  };
62243
62681
  }, [showCsat, csatEnabled, csatSubmitted]);
62682
+
62683
+ // Render the dynamic rating input based on csatFormat
62684
+ const renderRatingInput = () => {
62685
+ const format = csatFormat || "Emoji";
62686
+ if (format === "Stars") {
62687
+ return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
62688
+ className: "flex justify-center gap-2 mb-5",
62689
+ children: [1, 2, 3, 4, 5].map(star => /*#__PURE__*/jsxRuntimeExports.jsx("button", {
62690
+ onClick: () => setResolveRating(star),
62691
+ className: "transition-all duration-150 hover:scale-110 active:scale-95 bg-transparent border-0 p-0 cursor-pointer",
62692
+ disabled: isSubmittingResolve,
62693
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(Star, {
62694
+ className: cn("w-8 h-8 transition-colors", star <= resolveRating ? "text-yellow-400 drop-shadow-sm" : isDark ? "text-gray-600" : "text-gray-300"),
62695
+ fill: star <= resolveRating ? "#FBBF24" : "none"
62696
+ })
62697
+ }, star))
62698
+ });
62699
+ }
62700
+ if (format === "Thumbs") {
62701
+ return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
62702
+ className: "flex gap-4 justify-center mb-5",
62703
+ children: [{
62704
+ value: 1,
62705
+ emoji: "👍"
62706
+ }, {
62707
+ value: 2,
62708
+ emoji: "👎"
62709
+ }].map(item => /*#__PURE__*/jsxRuntimeExports.jsx("button", {
62710
+ onClick: () => setResolveRating(item.value),
62711
+ disabled: isSubmittingResolve,
62712
+ className: cn("w-12 h-12 rounded-xl border flex items-center justify-center text-2xl transition-all hover:scale-105 active:scale-95", resolveRating === item.value ? "ring-2 ring-blue-300 scale-110 shadow-lg" : "", isDark ? "bg-gray-700 border-gray-600 hover:bg-gray-600" : "bg-white border-gray-200 hover:bg-gray-50"),
62713
+ children: /*#__PURE__*/jsxRuntimeExports.jsx("span", {
62714
+ className: "drop-shadow-md",
62715
+ children: item.emoji
62716
+ })
62717
+ }, item.value))
62718
+ });
62719
+ }
62720
+
62721
+ // Default: Emoji format
62722
+ const emojis = [{
62723
+ value: 1,
62724
+ emoji: "😡"
62725
+ }, {
62726
+ value: 2,
62727
+ emoji: "😐"
62728
+ }, {
62729
+ value: 3,
62730
+ emoji: "🙂"
62731
+ }, {
62732
+ value: 4,
62733
+ emoji: "😀"
62734
+ }, {
62735
+ value: 5,
62736
+ emoji: "😍"
62737
+ }];
62738
+ return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
62739
+ className: "flex gap-2 justify-center items-center mb-5",
62740
+ children: emojis.map(item => /*#__PURE__*/jsxRuntimeExports.jsx("button", {
62741
+ onClick: () => setResolveRating(item.value),
62742
+ disabled: isSubmittingResolve,
62743
+ className: cn("rounded-full w-10 h-10 flex items-center justify-center text-xl transition-all hover:scale-110 active:scale-95 bg-transparent border-0 p-0 cursor-pointer", resolveRating === item.value ? "ring-2 ring-blue-100 scale-125 bg-gradient-to-b from-yellow-200 to-yellow-400 shadow-md" : "grayscale-[0.3] opacity-80 hover:grayscale-0"),
62744
+ children: /*#__PURE__*/jsxRuntimeExports.jsx("span", {
62745
+ role: "img",
62746
+ "aria-label": "emoji",
62747
+ className: "drop-shadow-sm filter",
62748
+ children: item.emoji
62749
+ })
62750
+ }, item.value))
62751
+ });
62752
+ };
62753
+
62754
+ // Render the feedback form
62755
+ const renderFeedbackForm = () => /*#__PURE__*/jsxRuntimeExports.jsx("div", {
62756
+ className: "animate-in slide-in-from-top-4 fade-in duration-300 mt-4 mx-2",
62757
+ children: /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
62758
+ className: cn("w-full rounded-3xl p-6 shadow-lg", isDark ? "bg-gray-800 shadow-black/20" : "bg-white shadow-gray-200/80"),
62759
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx("p", {
62760
+ className: cn("text-sm font-medium text-center mb-5", isDark ? "text-gray-300" : "text-gray-500"),
62761
+ style: {
62762
+ fontFamily: fontFamily || "Inter"
62763
+ },
62764
+ children: csatPrompt || "Please rate our support to help us improve."
62765
+ }), renderRatingInput(), /*#__PURE__*/jsxRuntimeExports.jsx("textarea", {
62766
+ value: resolveFeedbackText,
62767
+ onChange: e => {
62768
+ if (e.target.value.length <= 1000) {
62769
+ setResolveFeedbackText(e.target.value);
62770
+ }
62771
+ },
62772
+ maxLength: 1000,
62773
+ placeholder: "Tell us more about your experience...",
62774
+ rows: 4,
62775
+ disabled: isSubmittingResolve,
62776
+ className: cn("w-full rounded-xl border px-4 py-3 text-sm resize-none outline-none transition-colors mb-5", isDark ? "bg-gray-700 border-gray-600 text-gray-100 placeholder-gray-400" : "bg-gray-50 border-gray-200 text-gray-900 placeholder-gray-400"),
62777
+ style: {
62778
+ fontFamily: fontFamily || "Inter"
62779
+ }
62780
+ }), /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
62781
+ className: "relative group",
62782
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx("button", {
62783
+ onClick: handleResolveSubmission,
62784
+ disabled: resolveRating === 0 || isSubmittingResolve,
62785
+ className: cn("w-full py-3.5 rounded-xl text-sm font-semibold transition-all duration-200", "disabled:opacity-50 disabled:cursor-not-allowed", isDark ? "bg-gray-700 text-gray-100 hover:bg-gray-600" : "bg-gray-100 text-gray-700 hover:bg-gray-200"),
62786
+ style: {
62787
+ fontFamily: fontFamily || "Inter"
62788
+ },
62789
+ children: isSubmittingResolve ? "Submitting..." : "Submit Feedback"
62790
+ }), resolveRating === 0 && !isSubmittingResolve && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
62791
+ className: "absolute -top-8 left-1/2 -translate-x-1/2 whitespace-nowrap px-2 py-1 rounded-md text-xs bg-gray-800 text-white opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none",
62792
+ children: "Please select a rating first"
62793
+ })]
62794
+ })]
62795
+ })
62796
+ });
62244
62797
  if (!isOpen) {
62245
62798
  return null;
62246
62799
  }
@@ -62259,14 +62812,14 @@
62259
62812
  fontSize: fontSize,
62260
62813
  onToggleTheme: onToggleTheme,
62261
62814
  onMinimize: onMinimize,
62262
- onClose: onClose,
62815
+ onClose: handleCloseClick,
62263
62816
  headerTextBold: headerTextBold,
62264
62817
  headerTextItalic: headerTextItalic
62265
62818
  }), !isMinimized && /*#__PURE__*/jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
62266
- children: [/*#__PURE__*/jsxRuntimeExports.jsxs("div", {
62819
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
62267
62820
  ref: messagesContainerRef,
62268
62821
  className: "chat-messages flex-1 overflow-y-auto px-3 py-4 space-y-4 ".concat(isDark ? "bg-gray-900" : "bg-gradient-to-b from-gray-50/50 to-white", " break-words"),
62269
- children: [onboardingActive && !onboardingCompleted && onOnboardingFormSubmit ? /*#__PURE__*/jsxRuntimeExports.jsx(OnboardingForm, {
62822
+ children: showResolveForm && !isConversationResolved ? renderFeedbackForm() : onboardingActive && !onboardingCompleted && onOnboardingFormSubmit ? /*#__PURE__*/jsxRuntimeExports.jsx(OnboardingForm, {
62270
62823
  questions: onboardingQuestions,
62271
62824
  onPromptSuggestionClick: onPromptSuggestionClick !== null && onPromptSuggestionClick !== void 0 ? onPromptSuggestionClick : text => onDirectSend === null || onDirectSend === void 0 ? void 0 : onDirectSend(text),
62272
62825
  collapsiblePrompt: collectionPrompt,
@@ -62274,63 +62827,67 @@
62274
62827
  primaryColor: primaryColor,
62275
62828
  isRtl: isRtlLanguage,
62276
62829
  isDark: isDark
62277
- }) : /*#__PURE__*/jsxRuntimeExports.jsx(MessageList, {
62278
- messages: messages,
62279
- isDark: isDark,
62280
- primaryColor: primaryColor,
62281
- isLoading: isLoading,
62282
- agentMessageBubbleColor: agentMessageBubbleColor,
62283
- userMessageBoxColor: userMessageBoxColor,
62284
- textColor: textColor,
62285
- assistantTextColor: assistantTextColor,
62286
- userTextColor: userTextColor,
62287
- fontFamily: fontFamily,
62288
- agentMessageBubbleFontFamily: agentMessageBubbleFontFamily,
62289
- agentMessageBubbleFontSize: agentMessageBubbleFontSize,
62290
- userMessageBubbleFontFamily: userMessageBubbleFontFamily,
62291
- userMessageBubbleFontSize: userMessageBubbleFontSize,
62292
- fontSize: fontSize,
62293
- formatTime: formatTime,
62294
- isRtl: isRtlLanguage,
62295
- quickQuestions: quickQuestions,
62296
- shouldShowQuickQuestions: shouldShowQuickQuestions,
62297
- onQuickQuestion: onQuickQuestion !== null && onQuickQuestion !== void 0 ? onQuickQuestion : onDirectSend,
62298
- quickQuestionsLayout: quickQuestionsLayout,
62299
- onDecision: onDecision,
62300
- disclaimerText: disclaimerText,
62301
- disclaimerPosition: disclaimerPosition,
62302
- resolvedAgentBubbleColor: resolvedAgentBubbleColor,
62303
- resolvedUserMessageColor: resolvedUserMessageColor,
62304
- resolvedTextColor: resolvedTextColor,
62305
- isVoiceSessionActive: isVoiceSessionActive,
62306
- voiceStatus: voiceStatus,
62307
- messagesContainerRef: messagesContainerRef,
62308
- companyLogo: companyLogo,
62309
- conciergeName: conciergeName,
62310
- companyName: companyName,
62311
- apiBaseUrl: apiBaseUrl,
62312
- organizationId: organizationId,
62313
- conversationResetKey: conversationId
62314
- }), showCsat && csatEnabled && !csatSubmitted && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
62315
- className: "",
62316
- children: /*#__PURE__*/jsxRuntimeExports.jsx(CSATWidget, {
62317
- format: (() => {
62318
- const fmt = csatFormat || "Emoji";
62319
- if (fmt === "Emoji") return "EMOJI";
62320
- if (fmt === "Thumbs") return "THUMBS";
62321
- if (fmt === "Stars") return "STARS";
62322
- if (fmt === "Numeric") return "NUMERIC";
62323
- return (fmt || "EMOJI").toString().toUpperCase();
62324
- })(),
62325
- prompt: csatPrompt || "How was your experience?",
62326
- onRating: handleCsatRating,
62327
- disabled: false,
62830
+ }) : /*#__PURE__*/jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
62831
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx(MessageList, {
62832
+ messages: messages,
62328
62833
  isDark: isDark,
62329
62834
  primaryColor: primaryColor,
62330
- agentMessageBubbleFontSize: agentMessageBubbleFontSize || fontSize,
62331
- agentMessageBubbleFontFamily: agentMessageBubbleFontFamily || fontFamily
62332
- })
62333
- })]
62835
+ isLoading: isLoading,
62836
+ agentMessageBubbleColor: agentMessageBubbleColor,
62837
+ userMessageBoxColor: userMessageBoxColor,
62838
+ textColor: textColor,
62839
+ assistantTextColor: assistantTextColor,
62840
+ userTextColor: userTextColor,
62841
+ fontFamily: fontFamily,
62842
+ agentMessageBubbleFontFamily: agentMessageBubbleFontFamily,
62843
+ agentMessageBubbleFontSize: agentMessageBubbleFontSize,
62844
+ userMessageBubbleFontFamily: userMessageBubbleFontFamily,
62845
+ userMessageBubbleFontSize: userMessageBubbleFontSize,
62846
+ fontSize: fontSize,
62847
+ formatTime: formatTime,
62848
+ isRtl: isRtlLanguage,
62849
+ quickQuestions: quickQuestions,
62850
+ shouldShowQuickQuestions: shouldShowQuickQuestions,
62851
+ onQuickQuestion: onQuickQuestion !== null && onQuickQuestion !== void 0 ? onQuickQuestion : onDirectSend,
62852
+ quickQuestionsLayout: quickQuestionsLayout,
62853
+ onDecision: onDecision,
62854
+ disclaimerText: disclaimerText,
62855
+ disclaimerPosition: disclaimerPosition,
62856
+ resolvedAgentBubbleColor: resolvedAgentBubbleColor,
62857
+ resolvedUserMessageColor: resolvedUserMessageColor,
62858
+ resolvedTextColor: resolvedTextColor,
62859
+ isVoiceSessionActive: isVoiceSessionActive,
62860
+ voiceStatus: voiceStatus,
62861
+ messagesContainerRef: messagesContainerRef,
62862
+ companyLogo: companyLogo,
62863
+ chatbotAvatarEnabled: chatbotAvatarEnabled,
62864
+ chatbotAvatar: chatbotAvatar,
62865
+ conciergeName: conciergeName,
62866
+ companyName: companyName,
62867
+ apiBaseUrl: apiBaseUrl,
62868
+ organizationId: organizationId,
62869
+ conversationResetKey: conversationId
62870
+ }), showCsat && csatEnabled && !csatSubmitted && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
62871
+ className: "",
62872
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(CSATWidget, {
62873
+ format: (() => {
62874
+ const fmt = csatFormat || "Emoji";
62875
+ if (fmt === "Emoji") return "EMOJI";
62876
+ if (fmt === "Thumbs") return "THUMBS";
62877
+ if (fmt === "Stars") return "STARS";
62878
+ if (fmt === "Numeric") return "NUMERIC";
62879
+ return (fmt || "EMOJI").toString().toUpperCase();
62880
+ })(),
62881
+ prompt: csatPrompt || "How was your experience?",
62882
+ onRating: handleCsatRating,
62883
+ disabled: false,
62884
+ isDark: isDark,
62885
+ primaryColor: primaryColor,
62886
+ agentMessageBubbleFontSize: agentMessageBubbleFontSize || fontSize,
62887
+ agentMessageBubbleFontFamily: agentMessageBubbleFontFamily || fontFamily
62888
+ })
62889
+ })]
62890
+ })
62334
62891
  }), !(onboardingActive && !onboardingCompleted) && /*#__PURE__*/jsxRuntimeExports.jsx(ChatInput, {
62335
62892
  inputValue: inputValue,
62336
62893
  setInputValue: setInputValue,
@@ -62348,7 +62905,7 @@
62348
62905
  userMessageBubbleFontSize: userMessageBubbleFontSize,
62349
62906
  fontSize: fontSize,
62350
62907
  isRtl: isRtlLanguage,
62351
- csatVisible: showCsat && csatEnabled && !csatSubmitted,
62908
+ csatVisible: showCsat && csatEnabled && !csatSubmitted || showResolveForm || isConversationResolved,
62352
62909
  enableVoiceInteraction: enableVoiceInteraction,
62353
62910
  isVoiceSessionActive: isVoiceSessionActive,
62354
62911
  voiceStatus: voiceStatus,
@@ -62364,8 +62921,10 @@
62364
62921
  onboardingEnabled: onboardingEnabled,
62365
62922
  userMessageBoxColor: userMessageBoxColor,
62366
62923
  userTextColor: userTextColor,
62367
- promptSuggestions: latestPromptSuggestions,
62368
- onPromptSuggestionClick: onPromptSuggestionClick !== null && onPromptSuggestionClick !== void 0 ? onPromptSuggestionClick : text => onDirectSend === null || onDirectSend === void 0 ? void 0 : onDirectSend(text)
62924
+ promptSuggestions: showResolveForm || isConversationResolved ? [] : stablePromptSuggestions,
62925
+ onPromptSuggestionClick: onPromptSuggestionClick !== null && onPromptSuggestionClick !== void 0 ? onPromptSuggestionClick : text => onDirectSend === null || onDirectSend === void 0 ? void 0 : onDirectSend(text),
62926
+ showResolveButton: hasUserMessages && !isConversationResolved && !showResolveForm && !showCsat,
62927
+ onResolve: () => setShowResolveForm(true)
62369
62928
  })]
62370
62929
  })]
62371
62930
  });
@@ -62412,6 +62971,7 @@
62412
62971
  // Required props for dynamic config
62413
62972
  orgId,
62414
62973
  apiBaseUrl,
62974
+ wsBaseUrl,
62415
62975
  // Optional override props (will override fetched config if provided)
62416
62976
  darkMode,
62417
62977
  primaryColor,
@@ -62480,7 +63040,7 @@
62480
63040
 
62481
63041
  // Map API response to widget props (use props as overrides if provided)
62482
63042
  const widgetConfig = reactExports.useMemo(() => {
62483
- var _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref0, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _agentConfig$inactivi, _agentConfig$inactivi2, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33, _ref34, _ref35, _ref36, _agentConfig$csatEnab, _agentConfig$csatForm, _agentConfig$csatProm, _agentConfig$csatTrig, _agentConfig$csatIdle, _agentConfig$csatFoll, _agentConfig$csatFoll2;
63043
+ var _ref2, _ref3, _ref4, _ref5, _agentConfig$chatbotA, _agentConfig$chatbotA2, _ref6, _ref7, _ref8, _ref9, _ref0, _ref1, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _agentConfig$inactivi, _agentConfig$inactivi2, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33, _ref34, _ref35, _ref36, _agentConfig$csatEnab, _agentConfig$csatForm, _agentConfig$csatProm, _agentConfig$csatTrig, _agentConfig$csatIdle, _agentConfig$csatFoll, _agentConfig$csatFoll2;
62484
63044
  if (!agentConfig) {
62485
63045
  return null;
62486
63046
  }
@@ -62491,6 +63051,8 @@
62491
63051
  companyName: (_ref4 = companyName !== null && companyName !== void 0 ? companyName : agentConfig.companyName) !== null && _ref4 !== void 0 ? _ref4 : "Support Team",
62492
63052
  conciergeName: conciergeName !== null && conciergeName !== void 0 ? conciergeName : agentConfig.conciergeName,
62493
63053
  companyLogo: (_ref5 = companyLogo !== null && companyLogo !== void 0 ? companyLogo : agentConfig.avatar) !== null && _ref5 !== void 0 ? _ref5 : null,
63054
+ chatbotAvatarEnabled: (_agentConfig$chatbotA = agentConfig.chatbotAvatarEnabled) !== null && _agentConfig$chatbotA !== void 0 ? _agentConfig$chatbotA : false,
63055
+ chatbotAvatar: (_agentConfig$chatbotA2 = agentConfig.chatbotAvatar) !== null && _agentConfig$chatbotA2 !== void 0 ? _agentConfig$chatbotA2 : null,
62494
63056
  welcomeMessage: (_ref6 = welcomeMessage !== null && welcomeMessage !== void 0 ? welcomeMessage : agentConfig.welcomeMessage) !== null && _ref6 !== void 0 ? _ref6 : "Hi! How can we help?",
62495
63057
  quickQuestions: (_ref7 = quickQuestions !== null && quickQuestions !== void 0 ? quickQuestions : agentConfig.quickQuestions) !== null && _ref7 !== void 0 ? _ref7 : [],
62496
63058
  quickQuestionsEnabled: quickQuestionsEnabled !== null && quickQuestionsEnabled !== void 0 ? quickQuestionsEnabled : agentConfig.quickQuestionsEnabled,
@@ -62547,6 +63109,7 @@
62547
63109
  welcomeMessage: "Hi! How can we help?",
62548
63110
  quickQuestions: [],
62549
63111
  apiBaseUrl: apiBaseUrl || "",
63112
+ wsBaseUrl: agentConfig === null || agentConfig === void 0 ? void 0 : agentConfig.wsBaseUrl,
62550
63113
  apiKey: apiKey || "",
62551
63114
  organizationId: orgId || "",
62552
63115
  autoOpen: false,
@@ -62556,7 +63119,7 @@
62556
63119
  onboardingQuestions: [],
62557
63120
  onboardingEnabled: false,
62558
63121
  collectionPrompt: undefined
62559
- }), [apiBaseUrl, apiKey, orgId]);
63122
+ }), [apiBaseUrl, wsBaseUrl, apiKey, orgId]);
62560
63123
 
62561
63124
  // ALWAYS call hooks before any early returns (Rules of Hooks)
62562
63125
  const {
@@ -62592,6 +63155,7 @@
62592
63155
  welcomeMessage: widgetConfig.welcomeMessage,
62593
63156
  quickQuestions: widgetConfig.quickQuestions,
62594
63157
  apiBaseUrl,
63158
+ wsBaseUrl: agentConfig === null || agentConfig === void 0 ? void 0 : agentConfig.wsBaseUrl,
62595
63159
  apiKey,
62596
63160
  organizationId: widgetConfig.organizationId,
62597
63161
  autoOpen,
@@ -62649,6 +63213,8 @@
62649
63213
  companyName: widgetConfig.companyName,
62650
63214
  conciergeName: widgetConfig.conciergeName,
62651
63215
  companyLogo: widgetConfig.companyLogo,
63216
+ chatbotAvatarEnabled: widgetConfig.chatbotAvatarEnabled,
63217
+ chatbotAvatar: widgetConfig.chatbotAvatar,
62652
63218
  messages: messages,
62653
63219
  isLoading: isLoading,
62654
63220
  inputValue: inputValue,
@@ -62741,6 +63307,7 @@
62741
63307
  autoOpen: false,
62742
63308
  openDelay: 0,
62743
63309
  apiBaseUrl: null,
63310
+ wsBaseUrl: null,
62744
63311
  apiKey: null,
62745
63312
  organizationId: null,
62746
63313
  sessionUrl: null,
@@ -62818,11 +63385,13 @@
62818
63385
  // Render component
62819
63386
  // If orgId and apiBaseUrl are provided, use dynamic config
62820
63387
  // Otherwise, use the old static config approach for backward compatibility
62821
- const widgetProps = config.orgId && config.apiBaseUrl ? _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
63388
+ const widgetProps = config.orgId && config.apiBaseUrl ? _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
62822
63389
  // Required props
62823
63390
  orgId: config.orgId,
62824
63391
  apiBaseUrl: config.apiBaseUrl
62825
- }, options.position !== undefined && {
63392
+ }, options.wsBaseUrl !== undefined && {
63393
+ wsBaseUrl: config.wsBaseUrl
63394
+ }), options.position !== undefined && {
62826
63395
  position: config.position
62827
63396
  }), options.quickQuestionsLayout !== undefined && {
62828
63397
  quickQuestionsLayout: config.quickQuestionsLayout
@@ -62888,6 +63457,7 @@
62888
63457
  className: config.className
62889
63458
  }) : _objectSpread2(_objectSpread2({}, config), {}, {
62890
63459
  apiBaseUrl: config.apiBaseUrl,
63460
+ wsBaseUrl: config.wsBaseUrl,
62891
63461
  organizationId: config.organizationId
62892
63462
  });
62893
63463
  root.render(/*#__PURE__*/reactExports.createElement(ChatWidget, widgetProps));