@eshal-bot/chat-widget 0.1.72 → 0.1.74

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$2.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 .collapse{visibility:collapse}#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 .sticky{position:sticky}#chat-widget-root .inset-0{inset:0}#chat-widget-root .-top-8{top:-2rem}#chat-widget-root .bottom-0{bottom:0}#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-0{top:0}#chat-widget-root .top-1\\/2{top:50%}#chat-widget-root .top-5{top:1.25rem}#chat-widget-root .top-full{top:100%}#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-\\[60\\]{z-index:60}#chat-widget-root .z-\\[70\\]{z-index:70}#chat-widget-root .z-\\[71\\]{z-index:71}#chat-widget-root .z-\\[999999\\]{z-index:999999}#chat-widget-root .z-\\[9999\\]{z-index:9999}#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 .grid{display:grid}#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-6{height:1.5rem}#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{width:.75rem}#chat-widget-root .w-3\\.5{width:.875rem}#chat-widget-root .w-4{width:1rem}#chat-widget-root .w-44{width:11rem}#chat-widget-root .w-5{width:1.25rem}#chat-widget-root .w-6{width:1.5rem}#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-\\[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 .rotate-90{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-90{--tw-rotate:90deg}#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-125{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-125{--tw-scale-x:1.25;--tw-scale-y:1.25}#chat-widget-root .scale-95{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .scale-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-ew-resize{cursor:ew-resize}#chat-widget-root .cursor-not-allowed{cursor:not-allowed}#chat-widget-root .cursor-ns-resize{cursor:ns-resize}#chat-widget-root .cursor-nwse-resize{cursor:nwse-resize}#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-start{justify-content:flex-start}#chat-widget-root .justify-end{justify-content:flex-end}#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-0\\.5{gap:.125rem}#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-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-visible{overflow:visible}#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-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-b{border-bottom-width:1px}#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 .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-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-0\\.5{padding:.125rem}#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-2\\.5{padding-left:.625rem;padding-right:.625rem}#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 .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-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 .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}#chat-widget-root .leading-5{line-height:1.25rem}#chat-widget-root .leading-none{line-height:1}#chat-widget-root .leading-normal{line-height:1.5}#chat-widget-root .leading-relaxed{line-height:1.625}#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 .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 .placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}#chat-widget-root .placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/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 .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 .drop-shadow-sm{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-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}#chat-widget-root .grayscale-\\[0\\.3\\]{--tw-grayscale:grayscale(0.3)}#chat-widget-root .filter,#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 .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 .\\[font-family\\:inherit\\]{font-family:inherit}#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-500\\/20:hover{background-color:rgba(59,130,246,.2)}#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-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}#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-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/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)}#chat-widget-root .focus\\:ring-0:focus,#chat-widget-root .focus\\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus\\:ring-1: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(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}#chat-widget-root .focus\\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}#chat-widget-root .focus\\:ring-gray-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity,1))}#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\\.97\\]: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\\.97\\]:active{--tw-scale-x:0.97;--tw-scale-y:0.97}#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;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\\:outline-none:active{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .active\\:ring-0:active{--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 .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 :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 .collapse{visibility:collapse}#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 .sticky{position:sticky}#chat-widget-root .inset-0{inset:0}#chat-widget-root .-top-8{top:-2rem}#chat-widget-root .bottom-0{bottom:0}#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-0{top:0}#chat-widget-root .top-1\\/2{top:50%}#chat-widget-root .top-5{top:1.25rem}#chat-widget-root .top-full{top:100%}#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-\\[60\\]{z-index:60}#chat-widget-root .z-\\[70\\]{z-index:70}#chat-widget-root .z-\\[71\\]{z-index:71}#chat-widget-root .z-\\[999999\\]{z-index:999999}#chat-widget-root .z-\\[9999\\]{z-index:9999}#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-1\\.5{margin-bottom:.375rem}#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 .grid{display:grid}#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-6{height:1.5rem}#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{width:.75rem}#chat-widget-root .w-3\\.5{width:.875rem}#chat-widget-root .w-4{width:1rem}#chat-widget-root .w-44{width:11rem}#chat-widget-root .w-5{width:1.25rem}#chat-widget-root .w-6{width:1.5rem}#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-\\[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 .rotate-90{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-90{--tw-rotate:90deg}#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-125{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-125{--tw-scale-x:1.25;--tw-scale-y:1.25}#chat-widget-root .scale-95{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .scale-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-ew-resize{cursor:ew-resize}#chat-widget-root .cursor-not-allowed{cursor:not-allowed}#chat-widget-root .cursor-ns-resize{cursor:ns-resize}#chat-widget-root .cursor-nwse-resize{cursor:nwse-resize}#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-start{justify-content:flex-start}#chat-widget-root .justify-end{justify-content:flex-end}#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-0\\.5{gap:.125rem}#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-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-visible{overflow:visible}#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-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-b{border-bottom-width:1px}#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 .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-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-0\\.5{padding:.125rem}#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-2\\.5{padding-left:.625rem;padding-right:.625rem}#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-2{padding-left:.5rem}#chat-widget-root .pl-4{padding-left:1rem}#chat-widget-root .pl-\\[50px\\]{padding-left:50px}#chat-widget-root .pr-1{padding-right:.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-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 .tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}#chat-widget-root .leading-5{line-height:1.25rem}#chat-widget-root .leading-none{line-height:1}#chat-widget-root .leading-normal{line-height:1.5}#chat-widget-root .leading-relaxed{line-height:1.625}#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 .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 .placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}#chat-widget-root .placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/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-70{opacity:.7}#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 .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 .drop-shadow-sm{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-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}#chat-widget-root .grayscale-\\[0\\.3\\]{--tw-grayscale:grayscale(0.3)}#chat-widget-root .filter,#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 .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 .\\[font-family\\:inherit\\]{font-family:inherit}#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-500\\/20:hover{background-color:rgba(59,130,246,.2)}#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-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}#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-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/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)}#chat-widget-root .focus\\:ring-0:focus,#chat-widget-root .focus\\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus\\:ring-1: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(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}#chat-widget-root .focus\\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}#chat-widget-root .focus\\:ring-gray-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity,1))}#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\\.97\\]: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\\.97\\]:active{--tw-scale-x:0.97;--tw-scale-y:0.97}#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;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\\:outline-none:active{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .active\\:ring-0:active{--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 .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 :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
 
@@ -8900,9 +8900,9 @@
8900
8900
  // rendered as a regular assistant message alongside the freshly-added one.
8901
8901
  function sanitizeMessagesForStorage(messages) {
8902
8902
  if (!Array.isArray(messages)) return [];
8903
- return messages.filter(m => m && !m.isWelcome && (m.content || Array.isArray(m.sources) && m.sources.length > 0)).map(m => {
8903
+ return messages.filter(m => m && !m.isWelcome && (m.content || Array.isArray(m.sources) && m.sources.length > 0 || Array.isArray(m.attachments) && m.attachments.length > 0)).map(m => {
8904
8904
  var _m$type;
8905
- return _objectSpread2(_objectSpread2(_objectSpread2({
8905
+ return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
8906
8906
  id: m.id,
8907
8907
  role: m.role,
8908
8908
  content: m.content,
@@ -8914,6 +8914,14 @@
8914
8914
  feedback: m.feedback
8915
8915
  } : {}), Array.isArray(m.prompts) && m.prompts.length > 0 ? {
8916
8916
  prompts: m.prompts
8917
+ } : {}), Array.isArray(m.attachments) && m.attachments.length > 0 ? {
8918
+ attachments: m.attachments.filter(a => a && (a.filename || a.storageKey)).map(a => ({
8919
+ filename: a.filename,
8920
+ mimeType: a.mimeType,
8921
+ size: a.size,
8922
+ storageKey: a.storageKey,
8923
+ url: a.url
8924
+ }))
8917
8925
  } : {});
8918
8926
  });
8919
8927
  }
@@ -9619,8 +9627,12 @@
9619
9627
  });
9620
9628
  }, [getNextMessageId]);
9621
9629
  const sendMessage = reactExports.useCallback(async (rawText, fieldType, opts) => {
9622
- const trimmed = rawText.trim();
9623
- if (!trimmed) {
9630
+ const trimmed = String(rawText !== null && rawText !== void 0 ? rawText : '').trim();
9631
+ const attachmentsPayload = Array.isArray(opts === null || opts === void 0 ? void 0 : opts.attachments) ? opts.attachments : [];
9632
+ // Allow empty text when the user is sending attachments-only.
9633
+ // A single-file upload with no accompanying prompt is a valid
9634
+ // shape — the concierge treats the file as the whole intent.
9635
+ if (!trimmed && attachmentsPayload.length === 0) {
9624
9636
  return {
9625
9637
  success: false,
9626
9638
  error: 'Message cannot be empty'
@@ -9683,11 +9695,13 @@
9683
9695
 
9684
9696
  // Only add user message to UI for regular inquiries
9685
9697
  if (apiType === 'inquiry' || apiType === 'complaint' || apiType === 'technical') {
9686
- const userMessage = createMessage({
9698
+ const userMessage = createMessage(_objectSpread2({
9687
9699
  id: getNextMessageId(),
9688
9700
  role: "user",
9689
9701
  content: trimmed
9690
- });
9702
+ }, attachmentsPayload.length ? {
9703
+ attachments: attachmentsPayload
9704
+ } : {}));
9691
9705
  setMessages(prev => {
9692
9706
  const cleared = (prev || []).map(msg => {
9693
9707
  var _msg$prompts;
@@ -9709,7 +9723,7 @@
9709
9723
  }
9710
9724
  try {
9711
9725
  // Prepare chat request
9712
- const chatRequest = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
9726
+ const chatRequest = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
9713
9727
  message: trimmed,
9714
9728
  type: apiType,
9715
9729
  conversationId: bidiSessionId,
@@ -9740,6 +9754,8 @@
9740
9754
  filter: widgetFilter
9741
9755
  } : {}), routingChoiceRef.current ? {
9742
9756
  routing: routingChoiceRef.current
9757
+ } : {}), attachmentsPayload.length ? {
9758
+ attachments: attachmentsPayload
9743
9759
  } : {}), {}, {
9744
9760
  messageHistory: messages.filter(msg => {
9745
9761
  // Filter out processing messages, empty messages, and onboarding messages
@@ -9896,17 +9912,25 @@
9896
9912
  }, 500);
9897
9913
  }
9898
9914
  }, [onboardingQuestions, sendMessage, getNextMessageId, pendingUserIntent, organizationId]);
9899
- const handleSmartSubmit = reactExports.useCallback(async () => {
9900
- const trimmedInput = inputValue.trim();
9901
- if (!trimmedInput) return;
9915
+ const handleSmartSubmit = reactExports.useCallback(async (rawTextOverride, attachments) => {
9916
+ // Attachment-only send: when the user uploads a file and hits
9917
+ // Send without typing, the trimmed input is empty but committed
9918
+ // attachments count as a valid message. sendMessage tolerates an
9919
+ // empty string when opts.attachments is non-empty (see the
9920
+ // early-return in sendMessage).
9921
+ const trimmedInput = String(rawTextOverride !== null && rawTextOverride !== void 0 ? rawTextOverride : inputValue).trim();
9922
+ const hasAttachments = Array.isArray(attachments) && attachments.length > 0;
9923
+ if (!trimmedInput && !hasAttachments) return;
9902
9924
 
9903
9925
  // Onboarding is handled entirely by the OnboardingForm component.
9904
9926
  // The text input is hidden while onboarding is active, so any message
9905
9927
  // arriving here is a normal chat message.
9906
- await sendMessage(trimmedInput);
9928
+ await sendMessage(trimmedInput, undefined, hasAttachments ? {
9929
+ attachments
9930
+ } : undefined);
9907
9931
  }, [inputValue, sendMessage]);
9908
- const handleSend = reactExports.useCallback(async () => {
9909
- await handleSmartSubmit();
9932
+ const handleSend = reactExports.useCallback(async (rawTextOverride, attachments) => {
9933
+ await handleSmartSubmit(rawTextOverride, attachments);
9910
9934
  }, [handleSmartSubmit]);
9911
9935
  const toggleChat = () => {
9912
9936
  setIsOpen(prev => !prev);
@@ -11300,7 +11324,7 @@
11300
11324
  * See the LICENSE file in the root directory of this source tree.
11301
11325
  */
11302
11326
 
11303
- const __iconNode$i = [["path", {
11327
+ const __iconNode$k = [["path", {
11304
11328
  d: "M2 10v3",
11305
11329
  key: "1fnikh"
11306
11330
  }], ["path", {
@@ -11319,7 +11343,7 @@
11319
11343
  d: "M22 10v3",
11320
11344
  key: "154ddg"
11321
11345
  }]];
11322
- const AudioLines = createLucideIcon("audio-lines", __iconNode$i);
11346
+ const AudioLines = createLucideIcon("audio-lines", __iconNode$k);
11323
11347
 
11324
11348
  /**
11325
11349
  * @license lucide-react v0.575.0 - ISC
@@ -11328,11 +11352,11 @@
11328
11352
  * See the LICENSE file in the root directory of this source tree.
11329
11353
  */
11330
11354
 
11331
- const __iconNode$h = [["path", {
11355
+ const __iconNode$j = [["path", {
11332
11356
  d: "m15 18-6-6 6-6",
11333
11357
  key: "1wnfg3"
11334
11358
  }]];
11335
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$h);
11359
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$j);
11336
11360
 
11337
11361
  /**
11338
11362
  * @license lucide-react v0.575.0 - ISC
@@ -11341,11 +11365,11 @@
11341
11365
  * See the LICENSE file in the root directory of this source tree.
11342
11366
  */
11343
11367
 
11344
- const __iconNode$g = [["path", {
11368
+ const __iconNode$i = [["path", {
11345
11369
  d: "m9 18 6-6-6-6",
11346
11370
  key: "mthhwq"
11347
11371
  }]];
11348
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$g);
11372
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$i);
11349
11373
 
11350
11374
  /**
11351
11375
  * @license lucide-react v0.575.0 - ISC
@@ -11354,7 +11378,34 @@
11354
11378
  * See the LICENSE file in the root directory of this source tree.
11355
11379
  */
11356
11380
 
11357
- const __iconNode$f = [["rect", {
11381
+ const __iconNode$h = [["circle", {
11382
+ cx: "12",
11383
+ cy: "12",
11384
+ r: "10",
11385
+ key: "1mglay"
11386
+ }], ["line", {
11387
+ x1: "12",
11388
+ x2: "12",
11389
+ y1: "8",
11390
+ y2: "12",
11391
+ key: "1pkeuh"
11392
+ }], ["line", {
11393
+ x1: "12",
11394
+ x2: "12.01",
11395
+ y1: "16",
11396
+ y2: "16",
11397
+ key: "4dfq90"
11398
+ }]];
11399
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$h);
11400
+
11401
+ /**
11402
+ * @license lucide-react v0.575.0 - ISC
11403
+ *
11404
+ * This source code is licensed under the ISC license.
11405
+ * See the LICENSE file in the root directory of this source tree.
11406
+ */
11407
+
11408
+ const __iconNode$g = [["rect", {
11358
11409
  width: "14",
11359
11410
  height: "14",
11360
11411
  x: "8",
@@ -11366,7 +11417,7 @@
11366
11417
  d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
11367
11418
  key: "zix9uf"
11368
11419
  }]];
11369
- const Copy = createLucideIcon("copy", __iconNode$f);
11420
+ const Copy = createLucideIcon("copy", __iconNode$g);
11370
11421
 
11371
11422
  /**
11372
11423
  * @license lucide-react v0.575.0 - ISC
@@ -11375,7 +11426,7 @@
11375
11426
  * See the LICENSE file in the root directory of this source tree.
11376
11427
  */
11377
11428
 
11378
- const __iconNode$e = [["path", {
11429
+ const __iconNode$f = [["path", {
11379
11430
  d: "M12 15V3",
11380
11431
  key: "m9g1x1"
11381
11432
  }], ["path", {
@@ -11385,7 +11436,7 @@
11385
11436
  d: "m7 10 5 5 5-5",
11386
11437
  key: "brsn70"
11387
11438
  }]];
11388
- const Download = createLucideIcon("download", __iconNode$e);
11439
+ const Download = createLucideIcon("download", __iconNode$f);
11389
11440
 
11390
11441
  /**
11391
11442
  * @license lucide-react v0.575.0 - ISC
@@ -11394,7 +11445,7 @@
11394
11445
  * See the LICENSE file in the root directory of this source tree.
11395
11446
  */
11396
11447
 
11397
- const __iconNode$d = [["circle", {
11448
+ const __iconNode$e = [["circle", {
11398
11449
  cx: "12",
11399
11450
  cy: "12",
11400
11451
  r: "1",
@@ -11410,7 +11461,7 @@
11410
11461
  r: "1",
11411
11462
  key: "1pcz8c"
11412
11463
  }]];
11413
- const Ellipsis = createLucideIcon("ellipsis", __iconNode$d);
11464
+ const Ellipsis = createLucideIcon("ellipsis", __iconNode$e);
11414
11465
 
11415
11466
  /**
11416
11467
  * @license lucide-react v0.575.0 - ISC
@@ -11419,7 +11470,7 @@
11419
11470
  * See the LICENSE file in the root directory of this source tree.
11420
11471
  */
11421
11472
 
11422
- const __iconNode$c = [["path", {
11473
+ const __iconNode$d = [["path", {
11423
11474
  d: "M15 3h6v6",
11424
11475
  key: "1q9fwt"
11425
11476
  }], ["path", {
@@ -11429,7 +11480,7 @@
11429
11480
  d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",
11430
11481
  key: "a6xqqp"
11431
11482
  }]];
11432
- const ExternalLink = createLucideIcon("external-link", __iconNode$c);
11483
+ const ExternalLink = createLucideIcon("external-link", __iconNode$d);
11433
11484
 
11434
11485
  /**
11435
11486
  * @license lucide-react v0.575.0 - ISC
@@ -11438,7 +11489,7 @@
11438
11489
  * See the LICENSE file in the root directory of this source tree.
11439
11490
  */
11440
11491
 
11441
- const __iconNode$b = [["path", {
11492
+ const __iconNode$c = [["path", {
11442
11493
  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",
11443
11494
  key: "1oefj6"
11444
11495
  }], ["path", {
@@ -11454,7 +11505,7 @@
11454
11505
  d: "M16 17H8",
11455
11506
  key: "z1uh3a"
11456
11507
  }]];
11457
- const FileText = createLucideIcon("file-text", __iconNode$b);
11508
+ const FileText = createLucideIcon("file-text", __iconNode$c);
11458
11509
 
11459
11510
  /**
11460
11511
  * @license lucide-react v0.575.0 - ISC
@@ -11463,7 +11514,7 @@
11463
11514
  * See the LICENSE file in the root directory of this source tree.
11464
11515
  */
11465
11516
 
11466
- const __iconNode$a = [["circle", {
11517
+ const __iconNode$b = [["circle", {
11467
11518
  cx: "12",
11468
11519
  cy: "12",
11469
11520
  r: "10",
@@ -11475,7 +11526,7 @@
11475
11526
  d: "M2 12h20",
11476
11527
  key: "9i4pu4"
11477
11528
  }]];
11478
- const Globe = createLucideIcon("globe", __iconNode$a);
11529
+ const Globe = createLucideIcon("globe", __iconNode$b);
11479
11530
 
11480
11531
  /**
11481
11532
  * @license lucide-react v0.575.0 - ISC
@@ -11484,11 +11535,11 @@
11484
11535
  * See the LICENSE file in the root directory of this source tree.
11485
11536
  */
11486
11537
 
11487
- const __iconNode$9 = [["path", {
11538
+ const __iconNode$a = [["path", {
11488
11539
  d: "M21 12a9 9 0 1 1-6.219-8.56",
11489
11540
  key: "13zald"
11490
11541
  }]];
11491
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$9);
11542
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$a);
11492
11543
 
11493
11544
  /**
11494
11545
  * @license lucide-react v0.575.0 - ISC
@@ -11497,11 +11548,11 @@
11497
11548
  * See the LICENSE file in the root directory of this source tree.
11498
11549
  */
11499
11550
 
11500
- const __iconNode$8 = [["path", {
11551
+ const __iconNode$9 = [["path", {
11501
11552
  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",
11502
11553
  key: "1sd12s"
11503
11554
  }]];
11504
- const MessageCircle = createLucideIcon("message-circle", __iconNode$8);
11555
+ const MessageCircle = createLucideIcon("message-circle", __iconNode$9);
11505
11556
 
11506
11557
  /**
11507
11558
  * @license lucide-react v0.575.0 - ISC
@@ -11510,11 +11561,24 @@
11510
11561
  * See the LICENSE file in the root directory of this source tree.
11511
11562
  */
11512
11563
 
11513
- const __iconNode$7 = [["path", {
11564
+ const __iconNode$8 = [["path", {
11514
11565
  d: "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",
11515
11566
  key: "kfwtm"
11516
11567
  }]];
11517
- const Moon = createLucideIcon("moon", __iconNode$7);
11568
+ const Moon = createLucideIcon("moon", __iconNode$8);
11569
+
11570
+ /**
11571
+ * @license lucide-react v0.575.0 - ISC
11572
+ *
11573
+ * This source code is licensed under the ISC license.
11574
+ * See the LICENSE file in the root directory of this source tree.
11575
+ */
11576
+
11577
+ const __iconNode$7 = [["path", {
11578
+ d: "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",
11579
+ key: "1miecu"
11580
+ }]];
11581
+ const Paperclip = createLucideIcon("paperclip", __iconNode$7);
11518
11582
 
11519
11583
  /**
11520
11584
  * @license lucide-react v0.575.0 - ISC
@@ -94407,6 +94471,38 @@
94407
94471
  const _downloadKey = s => s.url || s.source_id || s.source_name || "";
94408
94472
  const handleFileDownload = async source => {
94409
94473
  if (!apiBaseUrl) return;
94474
+ // 2026-07-03 — RAG-attach-1 download path. Attachment source
94475
+ // cards carry a presigned READ URL as `source.url` (added by
94476
+ // citation_sources.build_source_obj + chat_utils inline loop
94477
+ // when the chunk has `_is_attachment_chunk: True`). Their
94478
+ // sourceid is `attachment:<storage_key>` — not resolvable by
94479
+ // the legacy /file-download endpoint, which expects a Milvus
94480
+ // Knowledge row id. Open the SAS URL directly instead — same
94481
+ // pattern SharePoint uses, but via the URL the backend already
94482
+ // handed us so no proxy round-trip is needed.
94483
+ const attachmentSourceId = String(source.source_id || source.sourceid || "");
94484
+ const isAttachment = attachmentSourceId.startsWith("attachment:");
94485
+ if (isAttachment) {
94486
+ if (!source.url) {
94487
+ console.warn("[widget] attachment source has no URL; download unavailable");
94488
+ return;
94489
+ }
94490
+ const downloadKey = _downloadKey(source) || "attachment";
94491
+ setDownloadingId(downloadKey);
94492
+ try {
94493
+ const a = document.createElement("a");
94494
+ a.href = source.url;
94495
+ a.download = source.source_name || "download";
94496
+ a.target = "_blank";
94497
+ a.rel = "noopener noreferrer";
94498
+ a.click();
94499
+ } catch (e) {
94500
+ console.error("Attachment download failed:", e);
94501
+ } finally {
94502
+ setDownloadingId(null);
94503
+ }
94504
+ return;
94505
+ }
94410
94506
  // SharePoint proxy URLs are GET endpoints that stream the file
94411
94507
  // directly via Microsoft Graph using the stored OAuth credential.
94412
94508
  // Bypass the legacy POST /file-download lookup (which expects an
@@ -94972,11 +95068,64 @@
94972
95068
  const messageFontFamily = userMessageBubbleFontFamily !== undefined && userMessageBubbleFontFamily !== null ? userMessageBubbleFontFamily : fontFamily !== undefined && fontFamily !== null ? fontFamily : "Inter";
94973
95069
  const messageFontSize = userMessageBubbleFontSize !== undefined && userMessageBubbleFontSize !== null ? userMessageBubbleFontSize : fontSize !== undefined && fontSize !== null ? fontSize : "14px";
94974
95070
  useGoogleFont(messageFontFamily);
95071
+
95072
+ // User attachments (RAG-attach-1) — rendered as small chips above
95073
+ // the text bubble so the reader can see what was uploaded alongside
95074
+ // the message. Image mime types get an inline thumbnail via the SAS
95075
+ // read URL when the backend chose to include it on the send payload;
95076
+ // non-images render a filename chip only. Absent = no chip row.
95077
+ const attachments = Array.isArray(message.attachments) ? message.attachments : [];
94975
95078
  return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
94976
95079
  className: "flex gap-3 flex-row-reverse animate-in",
94977
95080
  children: /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
94978
95081
  className: "flex flex-col items-end max-w-[75%]",
94979
- children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
95082
+ children: [attachments.length > 0 && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
95083
+ className: "mb-1.5 flex flex-wrap justify-end gap-1.5",
95084
+ children: attachments.map((att, idx) => {
95085
+ const isImage = String(att.mimeType || "").startsWith("image/");
95086
+ if (isImage && att.url) {
95087
+ return /*#__PURE__*/jsxRuntimeExports.jsx("a", {
95088
+ href: att.url,
95089
+ target: "_blank",
95090
+ rel: "noopener noreferrer",
95091
+ className: "block rounded-md overflow-hidden",
95092
+ style: {
95093
+ maxWidth: 160
95094
+ },
95095
+ title: att.filename,
95096
+ children: /*#__PURE__*/jsxRuntimeExports.jsx("img", {
95097
+ src: att.url,
95098
+ alt: att.filename || "attachment",
95099
+ style: {
95100
+ maxWidth: 160,
95101
+ maxHeight: 160,
95102
+ display: "block"
95103
+ }
95104
+ })
95105
+ }, att.storageKey || idx);
95106
+ }
95107
+ return /*#__PURE__*/jsxRuntimeExports.jsxs("span", {
95108
+ className: "inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs",
95109
+ style: {
95110
+ backgroundColor: isDark ? "#1f2937" : "#f3f4f6",
95111
+ color: isDark ? "#e5e7eb" : "#374151",
95112
+ border: "1px solid ".concat(isDark ? "#374151" : "#e5e7eb"),
95113
+ maxWidth: 200
95114
+ },
95115
+ title: att.filename,
95116
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx(FileText, {
95117
+ size: 12
95118
+ }), /*#__PURE__*/jsxRuntimeExports.jsx("span", {
95119
+ className: "truncate",
95120
+ style: {
95121
+ maxWidth: 140,
95122
+ direction: "ltr"
95123
+ },
95124
+ children: att.filename
95125
+ })]
95126
+ }, att.storageKey || idx);
95127
+ })
95128
+ }), message.content && message.content.trim() !== "" && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
94980
95129
  className: "rounded-2xl px-4 py-2.5 shadow-lg ".concat(isRtl ? "rounded-tl-sm" : "rounded-tr-sm"),
94981
95130
  dir: "auto",
94982
95131
  style: {
@@ -96186,6 +96335,343 @@
96186
96335
  });
96187
96336
  };
96188
96337
 
96338
+ function joinUrl(base, path) {
96339
+ const b = String(base || "").replace(/\/+$/, "");
96340
+ const p = path.startsWith("/") ? path : "/".concat(path);
96341
+ return b + p;
96342
+ }
96343
+ function mapBackendCode(code) {
96344
+ switch (code) {
96345
+ case "feature_disabled":
96346
+ case "size_exceeded":
96347
+ case "mime_not_allowed":
96348
+ case "storage_unavailable":
96349
+ return code;
96350
+ default:
96351
+ return "unknown";
96352
+ }
96353
+ }
96354
+ function putWithProgress(_ref) {
96355
+ let {
96356
+ url,
96357
+ file,
96358
+ onProgress,
96359
+ registerXhr
96360
+ } = _ref;
96361
+ return new Promise((resolve, reject) => {
96362
+ const xhr = new XMLHttpRequest();
96363
+ registerXhr(xhr);
96364
+ xhr.open("PUT", url, true);
96365
+ // Required by Azure Blob SAS PUT; harmless on S3 pre-signed URLs.
96366
+ xhr.setRequestHeader("x-ms-blob-type", "BlockBlob");
96367
+ if (file.type) {
96368
+ xhr.setRequestHeader("Content-Type", file.type);
96369
+ }
96370
+ xhr.upload.onprogress = ev => {
96371
+ if (ev.lengthComputable) {
96372
+ onProgress(Math.round(ev.loaded / ev.total * 100));
96373
+ }
96374
+ };
96375
+ xhr.onload = () => {
96376
+ if (xhr.status >= 200 && xhr.status < 300) resolve();else reject(new Error("upload_status_".concat(xhr.status)));
96377
+ };
96378
+ xhr.onerror = () => reject(new Error("network"));
96379
+ xhr.onabort = () => reject({
96380
+ aborted: true
96381
+ });
96382
+ xhr.send(file);
96383
+ });
96384
+ }
96385
+
96386
+ // Node-proxied multipart fallback for NFS-backed deployments (no
96387
+ // direct-PUT endpoint). Resolves with the parsed response body — only
96388
+ // `url` is consumed today (READ SAS URL that knowledge-api's
96389
+ // attachment_ingest fetches bytes from). Malformed / empty JSON
96390
+ // resolves to `{}` — the upload succeeded, the read URL is best-effort.
96391
+ function postMultipartWithProgress(_ref2) {
96392
+ let {
96393
+ url,
96394
+ file,
96395
+ conversationId,
96396
+ authHeader,
96397
+ onProgress,
96398
+ registerXhr
96399
+ } = _ref2;
96400
+ return new Promise((resolve, reject) => {
96401
+ const xhr = new XMLHttpRequest();
96402
+ registerXhr(xhr);
96403
+ xhr.open("POST", url, true);
96404
+ // /multipart is protected by resolveWidgetOrg — the same auth the
96405
+ // presign call used must accompany this POST.
96406
+ if (authHeader) {
96407
+ xhr.setRequestHeader("Authorization", authHeader);
96408
+ }
96409
+ xhr.withCredentials = true;
96410
+ const form = new FormData();
96411
+ // Field names match multer.single('file') and the handler's body
96412
+ // read of `conversationId`. Extra fields are ignored by multer.
96413
+ form.append("conversationId", conversationId);
96414
+ form.append("file", file, file.name);
96415
+ xhr.upload.onprogress = ev => {
96416
+ if (ev.lengthComputable) {
96417
+ onProgress(Math.round(ev.loaded / ev.total * 100));
96418
+ }
96419
+ };
96420
+ xhr.onload = () => {
96421
+ if (xhr.status >= 200 && xhr.status < 300) {
96422
+ try {
96423
+ const parsed = JSON.parse(xhr.responseText);
96424
+ resolve({
96425
+ url: typeof (parsed === null || parsed === void 0 ? void 0 : parsed.url) === "string" ? parsed.url : undefined
96426
+ });
96427
+ } catch (_unused) {
96428
+ resolve({});
96429
+ }
96430
+ } else {
96431
+ reject(new Error("upload_status_".concat(xhr.status)));
96432
+ }
96433
+ };
96434
+ xhr.onerror = () => reject(new Error("network"));
96435
+ xhr.onabort = () => reject({
96436
+ aborted: true
96437
+ });
96438
+ xhr.send(form);
96439
+ });
96440
+ }
96441
+ function useFileUpload(_ref3) {
96442
+ let {
96443
+ orgId,
96444
+ conversationId,
96445
+ config,
96446
+ apiEndpoint,
96447
+ authHeader,
96448
+ onError
96449
+ } = _ref3;
96450
+ const [attachments, setAttachments] = reactExports.useState([]);
96451
+ const inflightRef = reactExports.useRef(new Map());
96452
+ const idCounterRef = reactExports.useRef(0);
96453
+ const attachmentsRef = reactExports.useRef(attachments);
96454
+ attachmentsRef.current = attachments;
96455
+ const nextId = reactExports.useCallback(() => {
96456
+ idCounterRef.current += 1;
96457
+ return "att-".concat(Date.now(), "-").concat(idCounterRef.current);
96458
+ }, []);
96459
+ const patchAttachment = reactExports.useCallback((id, patch) => {
96460
+ setAttachments(prev => prev.map(a => a.id === id ? _objectSpread2(_objectSpread2({}, a), patch) : a));
96461
+ }, []);
96462
+ const errorPatch = reactExports.useCallback((id, code, message) => {
96463
+ const patch = {
96464
+ status: "error",
96465
+ error: {
96466
+ code,
96467
+ message
96468
+ }
96469
+ };
96470
+ setAttachments(prev => {
96471
+ const patched = prev.map(a => a.id === id ? _objectSpread2(_objectSpread2({}, a), patch) : a);
96472
+ const target = patched.find(a => a.id === id);
96473
+ if (target && onError) onError(target);
96474
+ return patched;
96475
+ });
96476
+ }, [onError]);
96477
+ const validateFile = reactExports.useCallback((file, currentCount) => {
96478
+ if (!(config !== null && config !== void 0 && config.fileUploadEnabled)) {
96479
+ return {
96480
+ ok: false,
96481
+ code: "feature_disabled",
96482
+ message: "File uploads are not enabled for this organization."
96483
+ };
96484
+ }
96485
+ if (currentCount >= config.fileUploadMaxFiles) {
96486
+ return {
96487
+ ok: false,
96488
+ code: "too_many_files",
96489
+ message: "Max ".concat(config.fileUploadMaxFiles, " files per message.")
96490
+ };
96491
+ }
96492
+ const maxBytes = config.fileUploadMaxSizeMB * 1024 * 1024;
96493
+ if (file.size > maxBytes) {
96494
+ return {
96495
+ ok: false,
96496
+ code: "size_exceeded",
96497
+ message: "File exceeds the ".concat(config.fileUploadMaxSizeMB, " MB limit.")
96498
+ };
96499
+ }
96500
+ const mime = (file.type || "").toLowerCase();
96501
+ const allowed = new Set((config.fileUploadAllowedMimes || []).map(m => String(m).toLowerCase()));
96502
+ if (allowed.size > 0 && !allowed.has(mime)) {
96503
+ return {
96504
+ ok: false,
96505
+ code: "mime_not_allowed",
96506
+ message: "File type \"".concat(file.type || "unknown", "\" is not allowed.")
96507
+ };
96508
+ }
96509
+ return {
96510
+ ok: true
96511
+ };
96512
+ }, [config]);
96513
+ const doUpload = reactExports.useCallback(async (attachmentId, file) => {
96514
+ // Step A — presign
96515
+ let presignRes;
96516
+ try {
96517
+ presignRes = await fetch(joinUrl(apiEndpoint, "/api/v1/chat-attachments/presign"), {
96518
+ method: "POST",
96519
+ credentials: "include",
96520
+ headers: _objectSpread2({
96521
+ "Content-Type": "application/json"
96522
+ }, authHeader ? {
96523
+ Authorization: authHeader
96524
+ } : {}),
96525
+ body: JSON.stringify({
96526
+ filename: file.name,
96527
+ mimeType: file.type,
96528
+ size: file.size,
96529
+ conversationId
96530
+ })
96531
+ });
96532
+ } catch (err) {
96533
+ errorPatch(attachmentId, "network", "Network error while requesting upload.");
96534
+ return;
96535
+ }
96536
+ if (!presignRes.ok) {
96537
+ let backendMsg = "Upload rejected by the server.";
96538
+ let backendCode = "unknown";
96539
+ try {
96540
+ const body = await presignRes.json();
96541
+ if (body !== null && body !== void 0 && body.error) backendMsg = body.error;
96542
+ if (body !== null && body !== void 0 && body.code) backendCode = mapBackendCode(body.code);
96543
+ } catch (_unused2) {
96544
+ /* body not JSON — keep defaults */
96545
+ }
96546
+ errorPatch(attachmentId, backendCode, backendMsg);
96547
+ return;
96548
+ }
96549
+ let presign;
96550
+ try {
96551
+ presign = await presignRes.json();
96552
+ } catch (_unused3) {
96553
+ errorPatch(attachmentId, "unknown", "Malformed presign response.");
96554
+ return;
96555
+ }
96556
+
96557
+ // Step B — upload bytes. Two paths:
96558
+ // * useMultipart=true → POST FormData to /multipart (NFS + any
96559
+ // backend without a direct-PUT endpoint).
96560
+ // * uploadUrl present → XHR PUT direct to blob storage (Azure/S3).
96561
+ // Multipart response carries a READ SAS URL — knowledge-api's
96562
+ // attachment_ingest needs it to fetch bytes back. Without it,
96563
+ // ingest hits `if not url: skip` and the file is never
96564
+ // extracted into the retrieval union.
96565
+ let uploadedReadUrl;
96566
+ try {
96567
+ if (presign.useMultipart) {
96568
+ const multipartResp = await postMultipartWithProgress({
96569
+ url: joinUrl(apiEndpoint, "/api/v1/chat-attachments/multipart"),
96570
+ file,
96571
+ conversationId,
96572
+ authHeader,
96573
+ onProgress: pct => patchAttachment(attachmentId, {
96574
+ progress: pct
96575
+ }),
96576
+ registerXhr: xhr => inflightRef.current.set(attachmentId, xhr)
96577
+ });
96578
+ uploadedReadUrl = multipartResp.url;
96579
+ } else if (presign.uploadUrl) {
96580
+ await putWithProgress({
96581
+ url: presign.uploadUrl,
96582
+ file,
96583
+ onProgress: pct => patchAttachment(attachmentId, {
96584
+ progress: pct
96585
+ }),
96586
+ registerXhr: xhr => inflightRef.current.set(attachmentId, xhr)
96587
+ });
96588
+ } else {
96589
+ throw new Error("presign_missing_target");
96590
+ }
96591
+ } catch (err) {
96592
+ inflightRef.current.delete(attachmentId);
96593
+ if (err && err.aborted) return;
96594
+ errorPatch(attachmentId, "network", "Upload failed. Please retry.");
96595
+ return;
96596
+ }
96597
+ inflightRef.current.delete(attachmentId);
96598
+ patchAttachment(attachmentId, _objectSpread2({
96599
+ status: "ready",
96600
+ progress: 100,
96601
+ storageKey: presign.storageKey
96602
+ }, uploadedReadUrl ? {
96603
+ url: uploadedReadUrl
96604
+ } : {}));
96605
+ }, [apiEndpoint, authHeader, conversationId, errorPatch, patchAttachment]);
96606
+ const addFiles = reactExports.useCallback(async input => {
96607
+ const files = Array.from(input);
96608
+ for (const file of files) {
96609
+ const currentCount = attachmentsRef.current.filter(a => a.status !== "error").length;
96610
+ const check = validateFile(file, currentCount);
96611
+ const id = nextId();
96612
+ if (!check.ok) {
96613
+ const rejected = {
96614
+ id,
96615
+ filename: file.name,
96616
+ size: file.size,
96617
+ mimeType: file.type,
96618
+ status: "error",
96619
+ error: {
96620
+ code: check.code,
96621
+ message: check.message
96622
+ }
96623
+ };
96624
+ setAttachments(prev => {
96625
+ if (onError) onError(rejected);
96626
+ return [...prev, rejected];
96627
+ });
96628
+ continue;
96629
+ }
96630
+ const entry = {
96631
+ id,
96632
+ filename: file.name,
96633
+ size: file.size,
96634
+ mimeType: file.type,
96635
+ status: "uploading",
96636
+ progress: 0
96637
+ };
96638
+ setAttachments(prev => [...prev, entry]);
96639
+ void doUpload(id, file);
96640
+ }
96641
+ }, [validateFile, doUpload, nextId, onError]);
96642
+ const removeAttachment = reactExports.useCallback(id => {
96643
+ const xhr = inflightRef.current.get(id);
96644
+ if (xhr) {
96645
+ xhr.abort();
96646
+ inflightRef.current.delete(id);
96647
+ }
96648
+ setAttachments(prev => prev.filter(a => a.id !== id));
96649
+ }, []);
96650
+ const clearAll = reactExports.useCallback(() => {
96651
+ for (const xhr of inflightRef.current.values()) xhr.abort();
96652
+ inflightRef.current.clear();
96653
+ setAttachments([]);
96654
+ }, []);
96655
+ const isBusy = reactExports.useMemo(() => attachments.some(a => a.status === "validating" || a.status === "uploading"), [attachments]);
96656
+ const toSendPayload = reactExports.useCallback(() => {
96657
+ return attachments.filter(a => a.status === "ready" && typeof a.storageKey === "string").map(a => ({
96658
+ filename: a.filename,
96659
+ mimeType: a.mimeType,
96660
+ size: a.size,
96661
+ storageKey: a.storageKey,
96662
+ url: a.url
96663
+ }));
96664
+ }, [attachments]);
96665
+ return {
96666
+ attachments,
96667
+ addFiles,
96668
+ removeAttachment,
96669
+ clearAll,
96670
+ isBusy,
96671
+ toSendPayload
96672
+ };
96673
+ }
96674
+
96189
96675
  // Lightweight i18n for the embeddable chat widget.
96190
96676
  // Translations are bundled so the widget stays dependency-free.
96191
96677
  // Locale is resolved from `defaultLanguage` (e.g. "zh", "ar") configured
@@ -98197,6 +98683,83 @@
98197
98683
  };
98198
98684
  }
98199
98685
 
98686
+ function formatBytes(bytes) {
98687
+ if (!bytes || bytes < 1024) return "".concat(bytes || 0, " B");
98688
+ const units = ["KB", "MB", "GB"];
98689
+ let val = bytes / 1024;
98690
+ let unit = 0;
98691
+ while (val >= 1024 && unit < units.length - 1) {
98692
+ val /= 1024;
98693
+ unit += 1;
98694
+ }
98695
+ return "".concat(val.toFixed(val >= 10 ? 0 : 1), " ").concat(units[unit]);
98696
+ }
98697
+ function AttachmentChip(_ref) {
98698
+ var _attachment$error;
98699
+ let {
98700
+ attachment,
98701
+ onRemove,
98702
+ isDark
98703
+ } = _ref;
98704
+ const isError = attachment.status === "error";
98705
+ const isUploading = attachment.status === "uploading";
98706
+ const isReady = attachment.status === "ready";
98707
+ const bg = isError ? isDark ? "rgba(239,68,68,0.15)" : "#fee2e2" : isDark ? "#1f2937" : "#f3f4f6";
98708
+ const border = isError ? isDark ? "#b91c1c" : "#fca5a5" : isDark ? "#374151" : "#e5e7eb";
98709
+ const textColor = isError ? isDark ? "#fca5a5" : "#b91c1c" : isDark ? "#e5e7eb" : "#374151";
98710
+ return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
98711
+ className: "inline-flex items-center gap-2 rounded-full pl-2 pr-1 py-1 text-xs",
98712
+ style: {
98713
+ backgroundColor: bg,
98714
+ border: "1px solid ".concat(border),
98715
+ color: textColor,
98716
+ maxWidth: 240
98717
+ },
98718
+ title: isError ? (_attachment$error = attachment.error) === null || _attachment$error === void 0 ? void 0 : _attachment$error.message : attachment.filename,
98719
+ children: [isError ? /*#__PURE__*/jsxRuntimeExports.jsx(CircleAlert, {
98720
+ size: 12
98721
+ }) : isUploading ? /*#__PURE__*/jsxRuntimeExports.jsx(LoaderCircle, {
98722
+ size: 12,
98723
+ className: "animate-spin"
98724
+ }) : /*#__PURE__*/jsxRuntimeExports.jsx(FileText, {
98725
+ size: 12
98726
+ }), /*#__PURE__*/jsxRuntimeExports.jsx("span", {
98727
+ className: "truncate",
98728
+ style: {
98729
+ maxWidth: 140,
98730
+ direction: "ltr"
98731
+ },
98732
+ children: attachment.filename
98733
+ }), isReady && /*#__PURE__*/jsxRuntimeExports.jsx("span", {
98734
+ className: "opacity-70",
98735
+ style: {
98736
+ fontSize: 10
98737
+ },
98738
+ children: formatBytes(attachment.size)
98739
+ }), isUploading && typeof attachment.progress === "number" && /*#__PURE__*/jsxRuntimeExports.jsxs("span", {
98740
+ className: "opacity-70",
98741
+ style: {
98742
+ fontSize: 10
98743
+ },
98744
+ children: [attachment.progress, "%"]
98745
+ }), /*#__PURE__*/jsxRuntimeExports.jsx("button", {
98746
+ type: "button",
98747
+ onClick: () => onRemove(attachment.id),
98748
+ className: "w-4 h-4 rounded-full inline-flex items-center justify-center",
98749
+ style: {
98750
+ backgroundColor: "transparent",
98751
+ border: "none",
98752
+ color: textColor,
98753
+ cursor: "pointer"
98754
+ },
98755
+ "aria-label": "Remove attachment",
98756
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(X, {
98757
+ size: 12
98758
+ })
98759
+ })]
98760
+ });
98761
+ }
98762
+
98200
98763
  var img$1 = "data:image/svg+xml,%3csvg width='219' height='54' xmlns='http://www.w3.org/2000/svg' version='1.0'%3e%3cg class='layer'%3e%3ctitle%3eEshal Logo%3c/title%3e%3cg clip-path='url(%23a)' transform='translate(-.708 -1.076)'%3e%3cg clip-path='url(%23b)'%3e%3cpath d='M21.79 54.75h4.5l3.93-.56 4.49-1.4 3.38-1.97 2.81-2.25 2.24-2.81 2.25-3.93 1.13-3.09v-.85l-3.65-1.12h-.57l-1.96 4.5-1.97 3.09-2.81 2.53-3.93 1.96-3.38.85-2.81.28h-2.81l-4.21-.57-3.94-1.4-2.81-1.97-2.25-2.24-1.96-3.38-1.41-4.21-.56-3.37-.28-3.1v-3.65l.56-5.06 1.12-4.21 1.97-3.94 2.53-2.81 2.25-1.68 2.81-1.41 3.37-.84 2.25-.28H26l4.78.84 4.5 2.25 2.53 2.53 1.4 2.53.56 2.53-.28 3.65-1.12 2.25-1.41 1.69-1.4.55-1.13-4.21-1.68-2.81-1.97-1.97-3.09-1.4-1.12-.28h-5.34l-3.09 1.12-2.25 1.69-1.41 1.97-.84 3.09.28 3.08 1.4 2.82 1.97 1.96 2.81 1.41 2.25.56 4.78.28 3.09-.28.84-.28-1.12 3.09-1.69 1.97-2.25.84h-3.65l-2.81-1.12-1.68-1.41-3.38 2.25.56 1.13 1.13 1.4 2.81 1.69 2.81.84h4.78l2.81-.84 2.53-1.69 1.96-2.25L35 34.8l.84-4.5 3.65-2.24 2.53-2.53 1.69-3.09.56-2.25.28-2.81-.56-3.93-1.12-2.82-2.25-3.09-3.09-2.81-4.22-2.25-4.5-1.12-2.52-.28h-4.5l-3.93.56-4.5 1.41-3.38 1.96-3.37 3.1-2.52 3.65-1.97 4.49-1.13 4.78-.28 2.25v9.27l.84 5.06 1.69 4.78 1.69 3.09 2.25 2.81 2.8 2.53 2.82 1.69 5.06 1.68zm1.12-27.54-2.53-.84-1.4-1.12-.84-1.69.28-2.53 1.12-1.4 2.25-1.13H26l2.81 1.41 1.41 1.97.84 2.8v2.25l-1.12.28zm0 0' fill='black'/%3e%3c/g%3e%3c/g%3e%3cpath d='M82.381 38.435v6.48h-27.06V9.965h26.41v6.5h-18.36v7.57h16.22v6.3h-16.22v8.1zm16.432 7.07c-2.77 0-5.44-.37-8.02-1.11-2.57-.75-4.65-1.72-6.22-2.92l2.75-6.09c1.5 1.09 3.28 1.98 5.34 2.64 2.07.67 4.13 1 6.19 1q3.45 0 5.1-1.02t1.65-2.73c0-.83-.33-1.52-.98-2.06-.65-.55-1.48-1-2.5-1.33-1.01-.33-2.39-.7-4.11-1.1-2.67-.63-4.85-1.26-6.55-1.89s-3.15-1.64-4.37-3.04c-1.21-1.41-1.82-3.27-1.82-5.6 0-2.03.55-3.86 1.64-5.51 1.11-1.66 2.76-2.96 4.97-3.92 2.22-.97 4.93-1.46 8.13-1.46 2.22 0 4.4.27 6.53.8s4 1.3 5.59 2.3l-2.5 6.14c-3.23-1.82-6.45-2.74-9.67-2.74-2.27 0-3.95.37-5.03 1.1-1.07.73-1.61 1.69-1.61 2.89q0 1.8 1.86 2.67c1.25.59 3.16 1.16 5.72 1.72 2.66.63 4.85 1.27 6.55 1.9 1.69.63 3.14 1.63 4.36 2.99 1.21 1.37 1.82 3.21 1.82 5.55 0 2-.56 3.82-1.67 5.46q-1.68 2.475-5.01 3.93c-2.23.95-4.95 1.43-8.14 1.43m50.913-35.54v34.95h-8.08v-14.33h-15.88v14.33h-8.09V9.965h8.09v13.78h15.88V9.965zm29.811 27.47h-16.22l-3.1 7.48h-8.29l15.58-34.95h7.98l15.62 34.95h-8.48zm-2.55-6.15-5.55-13.37-5.53 13.37zm16.274-21.32h8.09v28.36h17.52v6.59h-25.61zm0 0' fill='black'/%3e%3c/g%3e%3c/svg%3e";
98201
98764
 
98202
98765
  var img = "data:image/svg+xml,%3csvg width='219' height='54' xmlns='http://www.w3.org/2000/svg' version='1.0'%3e%3cg class='layer'%3e%3ctitle%3eEshal Logo%3c/title%3e%3cg clip-path='url(%23a)' transform='translate(-.708 -1.076)'%3e%3cg clip-path='url(%23b)'%3e%3cpath d='M21.79 54.75h4.5l3.93-.56 4.49-1.4 3.38-1.97 2.81-2.25 2.24-2.81 2.25-3.93 1.13-3.09v-.85l-3.65-1.12h-.57l-1.96 4.5-1.97 3.09-2.81 2.53-3.93 1.96-3.38.85-2.81.28h-2.81l-4.21-.57-3.94-1.4-2.81-1.97-2.25-2.24-1.96-3.38-1.41-4.21-.56-3.37-.28-3.1v-3.65l.56-5.06 1.12-4.21 1.97-3.94 2.53-2.81 2.25-1.68 2.81-1.41 3.37-.84 2.25-.28H26l4.78.84 4.5 2.25 2.53 2.53 1.4 2.53.56 2.53-.28 3.65-1.12 2.25-1.41 1.69-1.4.55-1.13-4.21-1.68-2.81-1.97-1.97-3.09-1.4-1.12-.28h-5.34l-3.09 1.12-2.25 1.69-1.41 1.97-.84 3.09.28 3.08 1.4 2.82 1.97 1.96 2.81 1.41 2.25.56 4.78.28 3.09-.28.84-.28-1.12 3.09-1.69 1.97-2.25.84h-3.65l-2.81-1.12-1.68-1.41-3.38 2.25.56 1.13 1.13 1.4 2.81 1.69 2.81.84h4.78l2.81-.84 2.53-1.69 1.96-2.25L35 34.8l.84-4.5 3.65-2.24 2.53-2.53 1.69-3.09.56-2.25.28-2.81-.56-3.93-1.12-2.82-2.25-3.09-3.09-2.81-4.22-2.25-4.5-1.12-2.52-.28h-4.5l-3.93.56-4.5 1.41-3.38 1.96-3.37 3.1-2.52 3.65-1.97 4.49-1.13 4.78-.28 2.25v9.27l.84 5.06 1.69 4.78 1.69 3.09 2.25 2.81 2.8 2.53 2.82 1.69 5.06 1.68zm1.12-27.54-2.53-.84-1.4-1.12-.84-1.69.28-2.53 1.12-1.4 2.25-1.13H26l2.81 1.41 1.41 1.97.84 2.8v2.25l-1.12.28zm0 0' fill='white'/%3e%3c/g%3e%3c/g%3e%3cpath d='M82.381 38.435v6.48h-27.06V9.965h26.41v6.5h-18.36v7.57h16.22v6.3h-16.22v8.1zm16.432 7.07c-2.77 0-5.44-.37-8.02-1.11-2.57-.75-4.65-1.72-6.22-2.92l2.75-6.09c1.5 1.09 3.28 1.98 5.34 2.64 2.07.67 4.13 1 6.19 1q3.45 0 5.1-1.02t1.65-2.73c0-.83-.33-1.52-.98-2.06-.65-.55-1.48-1-2.5-1.33-1.01-.33-2.39-.7-4.11-1.1-2.67-.63-4.85-1.26-6.55-1.89s-3.15-1.64-4.37-3.04c-1.21-1.41-1.82-3.27-1.82-5.6 0-2.03.55-3.86 1.64-5.51 1.11-1.66 2.76-2.96 4.97-3.92 2.22-.97 4.93-1.46 8.13-1.46 2.22 0 4.4.27 6.53.8s4 1.3 5.59 2.3l-2.5 6.14c-3.23-1.82-6.45-2.74-9.67-2.74-2.27 0-3.95.37-5.03 1.1-1.07.73-1.61 1.69-1.61 2.89q0 1.8 1.86 2.67c1.25.59 3.16 1.16 5.72 1.72 2.66.63 4.85 1.27 6.55 1.9 1.69.63 3.14 1.63 4.36 2.99 1.21 1.37 1.82 3.21 1.82 5.55 0 2-.56 3.82-1.67 5.46q-1.68 2.475-5.01 3.93c-2.23.95-4.95 1.43-8.14 1.43m50.913-35.54v34.95h-8.08v-14.33h-15.88v14.33h-8.09V9.965h8.09v13.78h15.88V9.965zm29.811 27.47h-16.22l-3.1 7.48h-8.29l15.58-34.95h7.98l15.62 34.95h-8.48zm-2.55-6.15-5.55-13.37-5.53 13.37zm16.274-21.32h8.09v28.36h17.52v6.59h-25.61zm0 0' fill='white'/%3e%3c/g%3e%3c/svg%3e";
@@ -98361,12 +98924,52 @@
98361
98924
  tagSelectorNode = null,
98362
98925
  showResolveButton = false,
98363
98926
  onResolve,
98364
- defaultLanguage = "en"
98927
+ defaultLanguage = "en",
98928
+ // ─── Attachments (RAG-attach-1) ────────────────────────────────
98929
+ // When the operator enables chatFeatures.fileUploadEnabled, these
98930
+ // three props power the paperclip button + chip stack. Off by
98931
+ // default so a widget with no config still renders exactly as
98932
+ // before (paperclip hidden, no extra network calls).
98933
+ chatFeatures,
98934
+ apiEndpoint,
98935
+ organizationId,
98936
+ conversationId
98365
98937
  } = _ref2;
98366
98938
  const t = reactExports.useMemo(() => createTranslator(defaultLanguage), [defaultLanguage]);
98367
98939
  const poweredByParts = reactExports.useMemo(() => getPoweredByParts(defaultLanguage), [defaultLanguage]);
98368
98940
  const [isFocused, setIsFocused] = reactExports.useState(false);
98369
98941
  const [showTooltip, setShowTooltip] = reactExports.useState(false);
98942
+
98943
+ // ─── Attachments hook ────────────────────────────────────────────
98944
+ // Reads the effective operator policy (already clamped server-side)
98945
+ // out of chatFeatures. Absent config = feature off → paperclip
98946
+ // hidden → hook never fires a network request.
98947
+ const uploadConfig = reactExports.useMemo(() => {
98948
+ var _chatFeatures$fileUpl, _chatFeatures$fileUpl2, _chatFeatures$fileUpl3, _chatFeatures$fileUpl4;
98949
+ return {
98950
+ fileUploadEnabled: (_chatFeatures$fileUpl = chatFeatures === null || chatFeatures === void 0 ? void 0 : chatFeatures.fileUploadEnabled) !== null && _chatFeatures$fileUpl !== void 0 ? _chatFeatures$fileUpl : false,
98951
+ fileUploadMaxSizeMB: (_chatFeatures$fileUpl2 = chatFeatures === null || chatFeatures === void 0 ? void 0 : chatFeatures.fileUploadMaxSizeMB) !== null && _chatFeatures$fileUpl2 !== void 0 ? _chatFeatures$fileUpl2 : 10,
98952
+ fileUploadMaxFiles: (_chatFeatures$fileUpl3 = chatFeatures === null || chatFeatures === void 0 ? void 0 : chatFeatures.fileUploadMaxFiles) !== null && _chatFeatures$fileUpl3 !== void 0 ? _chatFeatures$fileUpl3 : 3,
98953
+ fileUploadAllowedMimes: (_chatFeatures$fileUpl4 = chatFeatures === null || chatFeatures === void 0 ? void 0 : chatFeatures.fileUploadAllowedMimes) !== null && _chatFeatures$fileUpl4 !== void 0 ? _chatFeatures$fileUpl4 : []
98954
+ };
98955
+ }, [chatFeatures]);
98956
+ const {
98957
+ attachments,
98958
+ addFiles,
98959
+ removeAttachment,
98960
+ clearAll,
98961
+ isBusy: isUploadBusy,
98962
+ toSendPayload
98963
+ } = useFileUpload({
98964
+ orgId: organizationId,
98965
+ conversationId,
98966
+ config: uploadConfig,
98967
+ apiEndpoint,
98968
+ authHeader: undefined
98969
+ });
98970
+ const fileInputRef = reactExports.useRef(null);
98971
+ const showPaperclip = !!uploadConfig.fileUploadEnabled && !!apiEndpoint;
98972
+ const acceptAttr = reactExports.useMemo(() => uploadConfig.fileUploadAllowedMimes.length > 0 ? uploadConfig.fileUploadAllowedMimes.join(",") : undefined, [uploadConfig.fileUploadAllowedMimes]);
98370
98973
  const [tooltipPosition, setTooltipPosition] = reactExports.useState({
98371
98974
  top: 0,
98372
98975
  left: 0,
@@ -98401,20 +99004,38 @@
98401
99004
  textarea.style.height = "".concat(newHeight, "px");
98402
99005
  }
98403
99006
  }, [inputValue]);
99007
+
99008
+ // Send handler with attachment splicing. When chatFeatures is off,
99009
+ // toSendPayload() returns [] and onSend is called with a single
99010
+ // argument (matches the pre-attachments contract exactly).
99011
+ const sendWithAttachments = reactExports.useCallback(() => {
99012
+ const committed = toSendPayload();
99013
+ if (committed.length > 0) {
99014
+ onSend(undefined, committed);
99015
+ clearAll();
99016
+ } else {
99017
+ onSend();
99018
+ }
99019
+ }, [toSendPayload, clearAll, onSend]);
98404
99020
  const handleKeyPress = event => {
98405
99021
  if (event.key === "Enter" && !event.shiftKey) {
98406
99022
  event.preventDefault();
98407
99023
  if (isVoiceSessionActive && onBidiSubmit) {
98408
99024
  onBidiSubmit();
98409
99025
  } else {
98410
- onSend();
99026
+ sendWithAttachments();
98411
99027
  }
98412
99028
  }
98413
99029
  };
98414
99030
  const handleChange = event => {
98415
99031
  setInputValue(event.target.value);
98416
99032
  };
98417
- const isDisabled = !inputValue.trim() || isLoading || isConversationLoading;
99033
+
99034
+ // Send is enabled if there's text OR at least one ready attachment
99035
+ // (so a user can upload a file and hit Send without typing). When
99036
+ // uploads are in flight we block Send to prevent partial payloads.
99037
+ const hasReadyAttachment = attachments.some(a => a.status === "ready");
99038
+ const isDisabled = !inputValue.trim() && !hasReadyAttachment || isLoading || isConversationLoading || isUploadBusy;
98418
99039
  const separatorColor = isDark ? "#374151" : "#e5e7eb";
98419
99040
 
98420
99041
  // Check if onboarding flow exists and is not completed
@@ -98577,6 +99198,13 @@
98577
99198
  height: "1px",
98578
99199
  backgroundColor: separatorColor
98579
99200
  }
99201
+ }), showPaperclip && attachments.length > 0 && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
99202
+ className: "px-5 mb-2 flex flex-wrap gap-1.5",
99203
+ children: attachments.map(att => /*#__PURE__*/jsxRuntimeExports.jsx(AttachmentChip, {
99204
+ attachment: att,
99205
+ onRemove: removeAttachment,
99206
+ isDark: isDark
99207
+ }, att.id))
98580
99208
  }), /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
98581
99209
  className: "flex items-center px-5 gap-1.5",
98582
99210
  children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
@@ -98710,8 +99338,39 @@
98710
99338
  })]
98711
99339
  })]
98712
99340
  }), document.body)]
99341
+ }), showPaperclip && /*#__PURE__*/jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, {
99342
+ children: [/*#__PURE__*/jsxRuntimeExports.jsx("input", {
99343
+ ref: fileInputRef,
99344
+ type: "file",
99345
+ multiple: true,
99346
+ accept: acceptAttr,
99347
+ className: "hidden",
99348
+ style: {
99349
+ display: "none"
99350
+ },
99351
+ onChange: e => {
99352
+ const files = e.target.files;
99353
+ if (files && files.length) void addFiles(files);
99354
+ // Reset so re-selecting the same file after removal
99355
+ // still fires the change event.
99356
+ e.currentTarget.value = "";
99357
+ }
99358
+ }), /*#__PURE__*/jsxRuntimeExports.jsx("button", {
99359
+ type: "button",
99360
+ onClick: () => fileInputRef.current && fileInputRef.current.click(),
99361
+ disabled: csatVisible || isConversationLoading || isLoading,
99362
+ "aria-label": "Attach file",
99363
+ title: "Attach file",
99364
+ className: "h-10 w-10 rounded-xl flex items-center justify-center transition-all duration-200 ".concat(isDark ? "bg-gray-800 text-gray-200 hover:bg-gray-700" : "bg-white text-gray-600 hover:bg-gray-100", " disabled:opacity-40 disabled:cursor-not-allowed"),
99365
+ style: {
99366
+ border: "none"
99367
+ },
99368
+ children: /*#__PURE__*/jsxRuntimeExports.jsx(Paperclip, {
99369
+ className: "w-4 h-4"
99370
+ })
99371
+ })]
98713
99372
  }), /*#__PURE__*/jsxRuntimeExports.jsx("button", {
98714
- onClick: isVoiceSessionActive && onBidiSubmit ? onBidiSubmit : onSend,
99373
+ onClick: isVoiceSessionActive && onBidiSubmit ? onBidiSubmit : sendWithAttachments,
98715
99374
  disabled: csatVisible || isDisabled || isVoiceSessionActive && voiceStatus !== "connected",
98716
99375
  className: "h-10 w-10 rounded-xl transition-all duration-200 flex items-center justify-center shadow-md disabled:opacity-40 disabled:cursor-not-allowed disabled:shadow-none ".concat(inputValue.trim() ? "scale-100" : "scale-95"),
98717
99376
  style: {
@@ -99681,7 +100340,12 @@
99681
100340
  // Used by the category picker to acknowledge a selection with a
99682
100341
  // localized "topics under X" message in the initial state.
99683
100342
  onSynthesizeAssistantMessage,
99684
- launcherPosition = "bottom-right"
100343
+ launcherPosition = "bottom-right",
100344
+ // File attachments (RAG-attach-1) — chatFeatures is the effective
100345
+ // operator config already clamped server-side. When absent or
100346
+ // fileUploadEnabled=false the paperclip stays hidden.
100347
+ chatFeatures,
100348
+ organizationId
99685
100349
  } = _ref;
99686
100350
  useGoogleFont(fontFamily);
99687
100351
  const messagesContainerRef = reactExports.useRef(null);
@@ -100433,6 +101097,14 @@
100433
101097
  if (!isCsatEnabled) return;
100434
101098
  setShowResolveForm(true);
100435
101099
  }
101100
+ // Attachments (RAG-attach-1) — paperclip stays hidden
101101
+ // unless the operator explicitly opted in via
101102
+ // MasterAgent.config.chatFeatures.
101103
+ ,
101104
+ chatFeatures: chatFeatures,
101105
+ apiEndpoint: apiBaseUrl,
101106
+ organizationId: organizationId,
101107
+ conversationId: conversationId
100436
101108
  })]
100437
101109
  })]
100438
101110
  })]
@@ -100727,7 +101399,7 @@
100727
101399
 
100728
101400
  // Map API response to widget props (use props as overrides if provided)
100729
101401
  const widgetConfig = reactExports.useMemo(() => {
100730
- var _agentConfig$config, _cfg$identity, _cfg$branding, _cfg$typography, _cfg$messages, _cfg$voice, _cfg$onboarding, _cfg$disclaimer, _cfg$csat, _cfg$inactivity, _cfg$behavior, _cfg$security, _cfg$layout, _ref2, _messages$bundles$loc, _messages$bundles, _messages$bundles$en, _messages$bundles2, _ref3, _ref4, _ref5, _ref6, _branding$chatbotAvat, _branding$chatbotAvat2, _ref7, _ref8, _ref9, _ref0, _ref1, _ref10, _ref11, _ref12, _typography$headerTex, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _inactivity$timeoutVa, _inactivity$timeoutUn, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _csat$enabled, _csat$format, _csat$prompt, _csat$triggerType, _csat$idleTimeoutMins, _csat$followUpEnabled, _csat$followUpPrompt, _behavior$autoPromptE, _behavior$allowFeedba, _behavior$provideCita, _agentConfig$organiza;
101402
+ var _agentConfig$config, _cfg$identity, _cfg$branding, _cfg$typography, _cfg$messages, _cfg$voice, _cfg$onboarding, _cfg$disclaimer, _cfg$csat, _cfg$inactivity, _cfg$behavior, _cfg$security, _cfg$layout, _ref2, _messages$bundles$loc, _messages$bundles, _messages$bundles$en, _messages$bundles2, _ref3, _ref4, _ref5, _ref6, _branding$chatbotAvat, _branding$chatbotAvat2, _ref7, _ref8, _ref9, _ref0, _ref1, _ref10, _ref11, _ref12, _typography$headerTex, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _inactivity$timeoutVa, _inactivity$timeoutUn, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _csat$enabled, _csat$format, _csat$prompt, _csat$triggerType, _csat$idleTimeoutMins, _csat$followUpEnabled, _csat$followUpPrompt, _behavior$autoPromptE, _behavior$allowFeedba, _behavior$provideCita, _agentConfig$organiza, _cfg$chatFeatures;
100731
101403
  if (!agentConfig) {
100732
101404
  return null;
100733
101405
  }
@@ -100825,7 +101497,11 @@
100825
101497
  provideCitations: (_behavior$provideCita = behavior.provideCitations) !== null && _behavior$provideCita !== void 0 ? _behavior$provideCita : true,
100826
101498
  // organizationId from the backend response — used internally for
100827
101499
  // session isolation (localStorage keys) and WS paths. Not a user prop.
100828
- organizationId: (_agentConfig$organiza = agentConfig.organizationId) !== null && _agentConfig$organiza !== void 0 ? _agentConfig$organiza : null
101500
+ organizationId: (_agentConfig$organiza = agentConfig.organizationId) !== null && _agentConfig$organiza !== void 0 ? _agentConfig$organiza : null,
101501
+ // Chat features (RAG-attach-1) — surfaces the operator's
101502
+ // file-upload toggle to the input row. Absent config = feature
101503
+ // off → paperclip hidden.
101504
+ chatFeatures: (_cfg$chatFeatures = cfg.chatFeatures) !== null && _cfg$chatFeatures !== void 0 ? _cfg$chatFeatures : null
100829
101505
  };
100830
101506
  }, [agentConfig, darkMode, primaryColor, position, companyName, conciergeName, companyLogo, welcomeMessage, quickQuestions, quickQuestionsEnabled, textColor, agentMessageBubbleColor, userMessageBoxColor, assistantTextColor, userTextColor, fontFamily, fontSize, defaultLanguage, headerTextBold, headerTextItalic, enableVoiceInteraction, disclaimerEnabled, disclaimerText, disclaimerPosition, disclaimerLinkLabel, disclaimerLinkUrl, showPoweredBy, onboardingQuestions, onboardingEnabled, collectionPrompt, allowedDomains, agentMessageBubbleFontFamily, agentMessageBubbleFontSize, userMessageBubbleFontFamily, userMessageBubbleFontSize
100831
101507
  // CSAT dependencies
@@ -101104,6 +101780,10 @@
101104
101780
  widgetFilter: widgetFilter,
101105
101781
  onWidgetFilterChange: setWidgetFilter,
101106
101782
  onSynthesizeAssistantMessage: addAssistantMessage
101783
+ // Chat features (RAG-attach-1) — file-upload paperclip.
101784
+ ,
101785
+ chatFeatures: widgetConfig.chatFeatures,
101786
+ organizationId: widgetConfig.organizationId
101107
101787
  }), !isOpen && /*#__PURE__*/jsxRuntimeExports.jsx(ToggleButton, {
101108
101788
  isOpen: isOpen,
101109
101789
  isDark: isDark,