@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.
- package/dist/chat-widget.esm.js +7 -7
- package/dist/chat-widget.js +726 -46
- package/dist/chat-widget.min.js +5 -5
- package/dist/chat-widget.umd.js +7 -7
- package/package.json +1 -1
package/dist/chat-widget.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
9901
|
-
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
-
|
|
99026
|
+
sendWithAttachments();
|
|
98411
99027
|
}
|
|
98412
99028
|
}
|
|
98413
99029
|
};
|
|
98414
99030
|
const handleChange = event => {
|
|
98415
99031
|
setInputValue(event.target.value);
|
|
98416
99032
|
};
|
|
98417
|
-
|
|
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 :
|
|
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,
|