@eshal-bot/chat-widget 0.1.51 → 0.1.52
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 +4 -4
- package/dist/chat-widget.js +1047 -23
- package/dist/chat-widget.min.js +5 -5
- package/dist/chat-widget.umd.js +4 -4
- package/package.json +1 -1
- package/dist/chat-widget.esm.js.map +0 -1
- package/dist/chat-widget.js.map +0 -1
- package/dist/chat-widget.umd.js.map +0 -1
package/dist/chat-widget.js
CHANGED
|
@@ -7869,7 +7869,7 @@
|
|
|
7869
7869
|
m$1.hydrateRoot;
|
|
7870
7870
|
}
|
|
7871
7871
|
|
|
7872
|
-
var css_248z$1 = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.chat-widget-root{--cw-primary:#2563eb;--cw-primary-hover:#1d4ed8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.\\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}#chat-widget-root .chat-widget-root *{box-sizing:border-box;margin:0;padding:0}#chat-widget-root .chat-messages::-webkit-scrollbar{width:6px}#chat-widget-root .chat-messages::-webkit-scrollbar-track{background:transparent}#chat-widget-root .chat-messages::-webkit-scrollbar-thumb{background:rgba(156,163,175,.5);border-radius:10px}#chat-widget-root .chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.7)}#chat-widget-root .dark .chat-messages::-webkit-scrollbar-thumb{background:rgba(75,85,99,.5)}#chat-widget-root .dark .chat-messages::-webkit-scrollbar-thumb:hover{background:rgba(75,85,99,.7)}#chat-widget-root .pointer-events-none{pointer-events:none}#chat-widget-root .visible{visibility:visible}#chat-widget-root .static{position:static}#chat-widget-root .fixed{position:fixed}#chat-widget-root .absolute{position:absolute}#chat-widget-root .relative{position:relative}#chat-widget-root .sticky{position:sticky}#chat-widget-root .inset-0{inset:0}#chat-widget-root .-top-8{top:-2rem}#chat-widget-root .bottom-5{bottom:1.25rem}#chat-widget-root .bottom-full{bottom:100%}#chat-widget-root .left-0{left:0}#chat-widget-root .left-1\\/2{left:50%}#chat-widget-root .left-5{left:1.25rem}#chat-widget-root .right-0{right:0}#chat-widget-root .right-5{right:1.25rem}#chat-widget-root .top-1\\/2{top:50%}#chat-widget-root .top-5{top:1.25rem}#chat-widget-root .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-\\[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 .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-\\[85\\%\\]{max-width:85%}#chat-widget-root .max-w-\\[92vw\\]{max-width:92vw}#chat-widget-root .max-w-full{max-width:100%}#chat-widget-root .max-w-none{max-width:none}#chat-widget-root .max-w-sm{max-width:24rem}#chat-widget-root .max-w-xs{max-width:20rem}#chat-widget-root .flex-1{flex:1 1 0%}#chat-widget-root .flex-shrink-0{flex-shrink:0}#chat-widget-root .border-collapse{border-collapse:collapse}#chat-widget-root .-translate-x-1\\/2{--tw-translate-x:-50%}#chat-widget-root .-translate-x-1\\/2,#chat-widget-root .-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .-translate-y-1\\/2{--tw-translate-y:-50%}#chat-widget-root .rotate-0{--tw-rotate:0deg}#chat-widget-root .rotate-0,#chat-widget-root .scale-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-0{--tw-scale-x:0;--tw-scale-y:0}#chat-widget-root .scale-100{--tw-scale-x:1;--tw-scale-y:1}#chat-widget-root .scale-100,#chat-widget-root .scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}#chat-widget-root .scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}#chat-widget-root .scale-125,#chat-widget-root .scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-95{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}#chat-widget-root .animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}#chat-widget-root .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}#chat-widget-root .animate-spin{animation:spin 1s linear infinite}#chat-widget-root .cursor-not-allowed{cursor:not-allowed}#chat-widget-root .cursor-pointer{cursor:pointer}#chat-widget-root .resize-none{resize:none}#chat-widget-root .resize{resize:both}#chat-widget-root .list-decimal{list-style-type:decimal}#chat-widget-root .list-disc{list-style-type:disc}#chat-widget-root .list-none{list-style-type:none}#chat-widget-root .flex-row{flex-direction:row}#chat-widget-root .flex-row-reverse{flex-direction:row-reverse}#chat-widget-root .flex-col{flex-direction:column}#chat-widget-root .flex-wrap{flex-wrap:wrap}#chat-widget-root .items-start{align-items:flex-start}#chat-widget-root .items-end{align-items:flex-end}#chat-widget-root .items-center{align-items:center}#chat-widget-root .justify-center{justify-content:center}#chat-widget-root .justify-between{justify-content:space-between}#chat-widget-root .gap-0{gap:0}#chat-widget-root .gap-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-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root .overflow-hidden{overflow:hidden}#chat-widget-root .overflow-visible{overflow:visible}#chat-widget-root .overflow-x-auto{overflow-x:auto}#chat-widget-root .overflow-y-auto{overflow-y:auto}#chat-widget-root .whitespace-normal{white-space:normal}#chat-widget-root .whitespace-nowrap{white-space:nowrap}#chat-widget-root .whitespace-pre-wrap{white-space:pre-wrap}#chat-widget-root .break-words{overflow-wrap:break-word}#chat-widget-root .rounded{border-radius:.25rem}#chat-widget-root .rounded-2xl{border-radius:1rem}#chat-widget-root .rounded-3xl{border-radius:1.5rem}#chat-widget-root .rounded-full{border-radius:9999px}#chat-widget-root .rounded-lg{border-radius:.5rem}#chat-widget-root .rounded-md{border-radius:.375rem}#chat-widget-root .rounded-xl{border-radius:.75rem}#chat-widget-root .rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}#chat-widget-root .rounded-tl-sm{border-top-left-radius:.125rem}#chat-widget-root .rounded-tr-sm{border-top-right-radius:.125rem}#chat-widget-root .border{border-width:1px}#chat-widget-root .border-0{border-width:0}#chat-widget-root .border-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-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-middle{vertical-align:middle}#chat-widget-root .align-text-bottom{vertical-align:text-bottom}#chat-widget-root .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}#chat-widget-root .text-2xl{font-size:1.5rem;line-height:2rem}#chat-widget-root .text-\\[10px\\]{font-size:10px}#chat-widget-root .text-\\[11px\\]{font-size:11px}#chat-widget-root .text-\\[15px\\]{font-size:15px}#chat-widget-root .text-base{font-size:1rem;line-height:1.5rem}#chat-widget-root .text-lg{font-size:1.125rem;line-height:1.75rem}#chat-widget-root .text-sm{font-size:.875rem;line-height:1.25rem}#chat-widget-root .text-xl{font-size:1.25rem;line-height:1.75rem}#chat-widget-root .text-xs{font-size:.75rem;line-height:1rem}#chat-widget-root .font-bold{font-weight:700}#chat-widget-root .font-medium{font-weight:500}#chat-widget-root .font-semibold{font-weight:600}#chat-widget-root .uppercase{text-transform:uppercase}#chat-widget-root .lowercase{text-transform:lowercase}#chat-widget-root .italic{font-style:italic}#chat-widget-root .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-snug{line-height:1.375}#chat-widget-root .leading-tight{line-height:1.25}#chat-widget-root .tracking-wide{letter-spacing:.025em}#chat-widget-root .text-\\[\\#4A5568\\]{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}#chat-widget-root .text-current{color:currentColor}#chat-widget-root .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500\\/80{color:hsla(220,9%,46%,.8)}#chat-widget-root .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}#chat-widget-root .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}#chat-widget-root .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}#chat-widget-root .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}#chat-widget-root .text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}#chat-widget-root .no-underline{text-decoration-line:none}#chat-widget-root .placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .opacity-0{opacity:0}#chat-widget-root .opacity-50{opacity:.5}#chat-widget-root .opacity-60{opacity:.6}#chat-widget-root .opacity-80{opacity:.8}#chat-widget-root .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}#chat-widget-root .shadow,#chat-widget-root .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}#chat-widget-root .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}#chat-widget-root .shadow-lg,#chat-widget-root .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}#chat-widget-root .shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}#chat-widget-root .shadow-none,#chat-widget-root .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}#chat-widget-root .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .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-900\\/50:hover{background-color:rgba(30,58,138,.5)}#chat-widget-root .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-transparent:hover{background-color:transparent}#chat-widget-root .hover\\:text-gray-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\\:underline:hover{text-decoration-line:underline}#chat-widget-root .hover\\:opacity-80:hover{opacity:.8}#chat-widget-root .hover\\:opacity-90:hover{opacity:.9}#chat-widget-root .hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}#chat-widget-root .hover\\:shadow-md:hover,#chat-widget-root .hover\\:shadow-xl:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}#chat-widget-root .hover\\:grayscale-0:hover{--tw-grayscale:grayscale(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .focus\\:\\!border-red-500:focus{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity,1))!important}#chat-widget-root .focus\\:border-\\[\\#5A6069\\]:focus{--tw-border-opacity:1;border-color:rgb(90 96 105/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:border-\\[\\#B0B0B0\\]:focus{--tw-border-opacity:1;border-color:rgb(176 176 176/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus\\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:ring-white\\/40:focus-visible{--tw-ring-color:hsla(0,0%,100%,.4)}#chat-widget-root .active\\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .active\\:scale-95:active,#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}#chat-widget-root .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-5{bottom:1.25rem}#chat-widget-root .bottom-full{bottom:100%}#chat-widget-root .left-0{left:0}#chat-widget-root .left-1\\/2{left:50%}#chat-widget-root .left-5{left:1.25rem}#chat-widget-root .right-0{right:0}#chat-widget-root .right-5{right:1.25rem}#chat-widget-root .top-1\\/2{top:50%}#chat-widget-root .top-5{top:1.25rem}#chat-widget-root .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-\\[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 .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-\\[85\\%\\]{max-width:85%}#chat-widget-root .max-w-\\[92vw\\]{max-width:92vw}#chat-widget-root .max-w-full{max-width:100%}#chat-widget-root .max-w-none{max-width:none}#chat-widget-root .max-w-sm{max-width:24rem}#chat-widget-root .max-w-xs{max-width:20rem}#chat-widget-root .flex-1{flex:1 1 0%}#chat-widget-root .flex-shrink-0{flex-shrink:0}#chat-widget-root .border-collapse{border-collapse:collapse}#chat-widget-root .-translate-x-1\\/2{--tw-translate-x:-50%}#chat-widget-root .-translate-x-1\\/2,#chat-widget-root .-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .-translate-y-1\\/2{--tw-translate-y:-50%}#chat-widget-root .rotate-0{--tw-rotate:0deg}#chat-widget-root .rotate-0,#chat-widget-root .scale-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-0{--tw-scale-x:0;--tw-scale-y:0}#chat-widget-root .scale-100{--tw-scale-x:1;--tw-scale-y:1}#chat-widget-root .scale-100,#chat-widget-root .scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}#chat-widget-root .scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}#chat-widget-root .scale-125,#chat-widget-root .scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .scale-95{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}#chat-widget-root .animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}#chat-widget-root .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}#chat-widget-root .animate-spin{animation:spin 1s linear infinite}#chat-widget-root .cursor-not-allowed{cursor:not-allowed}#chat-widget-root .cursor-pointer{cursor:pointer}#chat-widget-root .resize-none{resize:none}#chat-widget-root .resize{resize:both}#chat-widget-root .list-decimal{list-style-type:decimal}#chat-widget-root .list-disc{list-style-type:disc}#chat-widget-root .list-none{list-style-type:none}#chat-widget-root .flex-row{flex-direction:row}#chat-widget-root .flex-row-reverse{flex-direction:row-reverse}#chat-widget-root .flex-col{flex-direction:column}#chat-widget-root .flex-wrap{flex-wrap:wrap}#chat-widget-root .items-start{align-items:flex-start}#chat-widget-root .items-end{align-items:flex-end}#chat-widget-root .items-center{align-items:center}#chat-widget-root .justify-center{justify-content:center}#chat-widget-root .justify-between{justify-content:space-between}#chat-widget-root .gap-0{gap:0}#chat-widget-root .gap-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-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root :is(.space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}#chat-widget-root .overflow-hidden{overflow:hidden}#chat-widget-root .overflow-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-normal{white-space:normal}#chat-widget-root .whitespace-nowrap{white-space:nowrap}#chat-widget-root .whitespace-pre-wrap{white-space:pre-wrap}#chat-widget-root .break-words{overflow-wrap:break-word}#chat-widget-root .rounded{border-radius:.25rem}#chat-widget-root .rounded-2xl{border-radius:1rem}#chat-widget-root .rounded-3xl{border-radius:1.5rem}#chat-widget-root .rounded-full{border-radius:9999px}#chat-widget-root .rounded-lg{border-radius:.5rem}#chat-widget-root .rounded-md{border-radius:.375rem}#chat-widget-root .rounded-xl{border-radius:.75rem}#chat-widget-root .rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}#chat-widget-root .rounded-tl-sm{border-top-left-radius:.125rem}#chat-widget-root .rounded-tr-sm{border-top-right-radius:.125rem}#chat-widget-root .border{border-width:1px}#chat-widget-root .border-0{border-width:0}#chat-widget-root .border-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-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-middle{vertical-align:middle}#chat-widget-root .align-text-bottom{vertical-align:text-bottom}#chat-widget-root .font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}#chat-widget-root .text-2xl{font-size:1.5rem;line-height:2rem}#chat-widget-root .text-\\[10px\\]{font-size:10px}#chat-widget-root .text-\\[11px\\]{font-size:11px}#chat-widget-root .text-\\[15px\\]{font-size:15px}#chat-widget-root .text-base{font-size:1rem;line-height:1.5rem}#chat-widget-root .text-lg{font-size:1.125rem;line-height:1.75rem}#chat-widget-root .text-sm{font-size:.875rem;line-height:1.25rem}#chat-widget-root .text-xl{font-size:1.25rem;line-height:1.75rem}#chat-widget-root .text-xs{font-size:.75rem;line-height:1rem}#chat-widget-root .font-bold{font-weight:700}#chat-widget-root .font-medium{font-weight:500}#chat-widget-root .font-semibold{font-weight:600}#chat-widget-root .uppercase{text-transform:uppercase}#chat-widget-root .lowercase{text-transform:lowercase}#chat-widget-root .italic{font-style:italic}#chat-widget-root .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-snug{line-height:1.375}#chat-widget-root .leading-tight{line-height:1.25}#chat-widget-root .tracking-wide{letter-spacing:.025em}#chat-widget-root .text-\\[\\#4A5568\\]{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}#chat-widget-root .text-current{color:currentColor}#chat-widget-root .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-500\\/80{color:hsla(220,9%,46%,.8)}#chat-widget-root .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}#chat-widget-root .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}#chat-widget-root .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}#chat-widget-root .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}#chat-widget-root .text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}#chat-widget-root .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}#chat-widget-root .text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}#chat-widget-root .no-underline{text-decoration-line:none}#chat-widget-root .placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}#chat-widget-root .opacity-0{opacity:0}#chat-widget-root .opacity-50{opacity:.5}#chat-widget-root .opacity-60{opacity:.6}#chat-widget-root .opacity-80{opacity:.8}#chat-widget-root .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}#chat-widget-root .shadow,#chat-widget-root .shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}#chat-widget-root .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}#chat-widget-root .shadow-lg,#chat-widget-root .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}#chat-widget-root .shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}#chat-widget-root .shadow-none,#chat-widget-root .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}#chat-widget-root .shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .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-900\\/50:hover{background-color:rgba(30,58,138,.5)}#chat-widget-root .hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}#chat-widget-root .hover\\:bg-transparent:hover{background-color:transparent}#chat-widget-root .hover\\:text-gray-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\\:underline:hover{text-decoration-line:underline}#chat-widget-root .hover\\:opacity-80:hover{opacity:.8}#chat-widget-root .hover\\:opacity-90:hover{opacity:.9}#chat-widget-root .hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}#chat-widget-root .hover\\:shadow-md:hover,#chat-widget-root .hover\\:shadow-xl:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#chat-widget-root .hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}#chat-widget-root .hover\\:grayscale-0:hover{--tw-grayscale:grayscale(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}#chat-widget-root .focus\\:\\!border-red-500:focus{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity,1))!important}#chat-widget-root .focus\\:border-\\[\\#5A6069\\]:focus{--tw-border-opacity:1;border-color:rgb(90 96 105/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:border-\\[\\#B0B0B0\\]:focus{--tw-border-opacity:1;border-color:rgb(176 176 176/var(--tw-border-opacity,1))}#chat-widget-root .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus\\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}#chat-widget-root .focus-visible\\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}#chat-widget-root .focus-visible\\:ring-white\\/40:focus-visible{--tw-ring-color:hsla(0,0%,100%,.4)}#chat-widget-root .active\\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}#chat-widget-root .active\\:scale-95:active,#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}#chat-widget-root .active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}#chat-widget-root .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
|
|
|
@@ -54177,6 +54177,758 @@
|
|
|
54177
54177
|
}, [fontFamily]);
|
|
54178
54178
|
}
|
|
54179
54179
|
|
|
54180
|
+
function A2uiBlock(_ref) {
|
|
54181
|
+
let {
|
|
54182
|
+
spec,
|
|
54183
|
+
isDark = false,
|
|
54184
|
+
onButtonClick
|
|
54185
|
+
} = _ref;
|
|
54186
|
+
if (!spec || typeof spec !== 'object') return null;
|
|
54187
|
+
const t = String(spec.type || '').trim().toLowerCase();
|
|
54188
|
+
|
|
54189
|
+
// Charts (incl. graceful fallback for chart-shaped data with unknown type)
|
|
54190
|
+
const CHART_TYPES = new Set(['bar', 'line', 'area', 'pie', 'donut', 'scatter', 'bubble', 'radar', 'radial-bar', 'radial', 'radialbar', 'treemap', 'funnel', 'sankey', 'composed', 'waterfall', 'gauge', 'histogram', 'kpi']);
|
|
54191
|
+
if (t === 'kpi') return /*#__PURE__*/jsxRuntimeExports.jsx(Kpi, {
|
|
54192
|
+
spec: spec,
|
|
54193
|
+
isDark: isDark
|
|
54194
|
+
});
|
|
54195
|
+
if (CHART_TYPES.has(t) || Array.isArray(spec.data) && spec.data.length > 0) {
|
|
54196
|
+
return /*#__PURE__*/jsxRuntimeExports.jsx(Chart, {
|
|
54197
|
+
spec: spec,
|
|
54198
|
+
type: t,
|
|
54199
|
+
isDark: isDark
|
|
54200
|
+
});
|
|
54201
|
+
}
|
|
54202
|
+
if (t === 'table') return /*#__PURE__*/jsxRuntimeExports.jsx(Table, {
|
|
54203
|
+
spec: spec,
|
|
54204
|
+
isDark: isDark
|
|
54205
|
+
});
|
|
54206
|
+
if (t === 'alert') return /*#__PURE__*/jsxRuntimeExports.jsx(Alert, {
|
|
54207
|
+
spec: spec,
|
|
54208
|
+
isDark: isDark
|
|
54209
|
+
});
|
|
54210
|
+
if (t === 'card') return /*#__PURE__*/jsxRuntimeExports.jsx(Card, {
|
|
54211
|
+
spec: spec,
|
|
54212
|
+
isDark: isDark
|
|
54213
|
+
});
|
|
54214
|
+
if (t === 'button-group') return /*#__PURE__*/jsxRuntimeExports.jsx(ButtonGroup, {
|
|
54215
|
+
spec: spec,
|
|
54216
|
+
isDark: isDark,
|
|
54217
|
+
onButtonClick: onButtonClick
|
|
54218
|
+
});
|
|
54219
|
+
if (t === 'form') return /*#__PURE__*/jsxRuntimeExports.jsx(FormDisplay, {
|
|
54220
|
+
spec: spec,
|
|
54221
|
+
isDark: isDark
|
|
54222
|
+
});
|
|
54223
|
+
if (t === 'confirmation') return /*#__PURE__*/jsxRuntimeExports.jsx(Confirmation, {
|
|
54224
|
+
spec: spec,
|
|
54225
|
+
isDark: isDark,
|
|
54226
|
+
onButtonClick: onButtonClick
|
|
54227
|
+
});
|
|
54228
|
+
|
|
54229
|
+
// Unrecognised type — render the data (if any) as a labeled list. Never
|
|
54230
|
+
// fall through to raw JSON; that's the bug we're fixing.
|
|
54231
|
+
if (Array.isArray(spec.data) && spec.data.length > 0) {
|
|
54232
|
+
return /*#__PURE__*/jsxRuntimeExports.jsx(Chart, {
|
|
54233
|
+
spec: spec,
|
|
54234
|
+
type: "bar",
|
|
54235
|
+
isDark: isDark
|
|
54236
|
+
});
|
|
54237
|
+
}
|
|
54238
|
+
return null;
|
|
54239
|
+
}
|
|
54240
|
+
|
|
54241
|
+
// ── Shared helpers ────────────────────────────────────────────────────────
|
|
54242
|
+
|
|
54243
|
+
const PALETTE = ['#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6', '#ec4899', '#14b8a6', '#f97316', '#6366f1', '#84cc16'];
|
|
54244
|
+
const card = isDark => ({
|
|
54245
|
+
border: isDark ? '1px solid #374151' : '1px solid #e5e7eb',
|
|
54246
|
+
background: isDark ? '#1f2937' : '#ffffff',
|
|
54247
|
+
borderRadius: 8,
|
|
54248
|
+
padding: 12,
|
|
54249
|
+
margin: '8px 0',
|
|
54250
|
+
fontSize: 13,
|
|
54251
|
+
color: isDark ? '#f3f4f6' : '#111827'
|
|
54252
|
+
});
|
|
54253
|
+
function inferKeys(data, xKey, yKey) {
|
|
54254
|
+
// Resolve x/y keys defensively — the agent sometimes emits them, sometimes
|
|
54255
|
+
// we have to guess. Picks the first string-valued field for x and the
|
|
54256
|
+
// first numeric-valued field for y.
|
|
54257
|
+
if (!Array.isArray(data) || data.length === 0) return {
|
|
54258
|
+
x: 'name',
|
|
54259
|
+
y: 'value'
|
|
54260
|
+
};
|
|
54261
|
+
const sample = data[0] || {};
|
|
54262
|
+
if (xKey && Object.prototype.hasOwnProperty.call(sample, xKey)) {
|
|
54263
|
+
if (yKey && Object.prototype.hasOwnProperty.call(sample, yKey)) {
|
|
54264
|
+
return {
|
|
54265
|
+
x: xKey,
|
|
54266
|
+
y: yKey
|
|
54267
|
+
};
|
|
54268
|
+
}
|
|
54269
|
+
}
|
|
54270
|
+
let x = xKey || null;
|
|
54271
|
+
let y = yKey || null;
|
|
54272
|
+
for (const k of Object.keys(sample)) {
|
|
54273
|
+
const v = sample[k];
|
|
54274
|
+
if (x == null && (typeof v === 'string' || v == null)) x = k;
|
|
54275
|
+
if (y == null && typeof v === 'number' && Number.isFinite(v)) y = k;
|
|
54276
|
+
}
|
|
54277
|
+
return {
|
|
54278
|
+
x: x || 'name',
|
|
54279
|
+
y: y || 'value'
|
|
54280
|
+
};
|
|
54281
|
+
}
|
|
54282
|
+
function numericData(data, xKey, yKey) {
|
|
54283
|
+
return (data || []).map(row => {
|
|
54284
|
+
var _row$xKey;
|
|
54285
|
+
return {
|
|
54286
|
+
label: String((_row$xKey = row === null || row === void 0 ? void 0 : row[xKey]) !== null && _row$xKey !== void 0 ? _row$xKey : ''),
|
|
54287
|
+
value: Number(row === null || row === void 0 ? void 0 : row[yKey])
|
|
54288
|
+
};
|
|
54289
|
+
}).filter(d => Number.isFinite(d.value));
|
|
54290
|
+
}
|
|
54291
|
+
|
|
54292
|
+
// ── Chart (SVG: line / bar / pie / donut + everything-else fallback) ─────
|
|
54293
|
+
|
|
54294
|
+
function Chart(_ref2) {
|
|
54295
|
+
let {
|
|
54296
|
+
spec,
|
|
54297
|
+
type,
|
|
54298
|
+
isDark
|
|
54299
|
+
} = _ref2;
|
|
54300
|
+
const {
|
|
54301
|
+
x,
|
|
54302
|
+
y
|
|
54303
|
+
} = inferKeys(spec.data, spec.x, spec.y);
|
|
54304
|
+
const rows = numericData(spec.data, x, y);
|
|
54305
|
+
if (rows.length === 0) {
|
|
54306
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54307
|
+
style: card(isDark),
|
|
54308
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54309
|
+
style: {
|
|
54310
|
+
fontWeight: 600,
|
|
54311
|
+
marginBottom: 8
|
|
54312
|
+
},
|
|
54313
|
+
children: spec.title
|
|
54314
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54315
|
+
style: {
|
|
54316
|
+
color: isDark ? '#9ca3af' : '#6b7280',
|
|
54317
|
+
fontSize: 12
|
|
54318
|
+
},
|
|
54319
|
+
children: "No chartable data"
|
|
54320
|
+
})]
|
|
54321
|
+
});
|
|
54322
|
+
}
|
|
54323
|
+
const t = String(type || '').trim().toLowerCase();
|
|
54324
|
+
let body;
|
|
54325
|
+
if (t === 'pie' || t === 'donut') body = /*#__PURE__*/jsxRuntimeExports.jsx(PieSvg, {
|
|
54326
|
+
rows: rows,
|
|
54327
|
+
donut: t === 'donut',
|
|
54328
|
+
isDark: isDark
|
|
54329
|
+
});else if (t === 'line' || t === 'area') body = /*#__PURE__*/jsxRuntimeExports.jsx(LineSvg, {
|
|
54330
|
+
rows: rows,
|
|
54331
|
+
area: t === 'area',
|
|
54332
|
+
isDark: isDark
|
|
54333
|
+
});else body = /*#__PURE__*/jsxRuntimeExports.jsx(BarSvg, {
|
|
54334
|
+
rows: rows,
|
|
54335
|
+
isDark: isDark
|
|
54336
|
+
}); // bar + every fallback
|
|
54337
|
+
|
|
54338
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54339
|
+
style: card(isDark),
|
|
54340
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54341
|
+
style: {
|
|
54342
|
+
fontWeight: 600,
|
|
54343
|
+
marginBottom: 8
|
|
54344
|
+
},
|
|
54345
|
+
children: spec.title
|
|
54346
|
+
}), body]
|
|
54347
|
+
});
|
|
54348
|
+
}
|
|
54349
|
+
function BarSvg(_ref3) {
|
|
54350
|
+
let {
|
|
54351
|
+
rows,
|
|
54352
|
+
isDark
|
|
54353
|
+
} = _ref3;
|
|
54354
|
+
const w = 320;
|
|
54355
|
+
const h = 180;
|
|
54356
|
+
const padLeft = 8;
|
|
54357
|
+
const padRight = 8;
|
|
54358
|
+
const padTop = 8;
|
|
54359
|
+
const padBottom = 28;
|
|
54360
|
+
const innerW = w - padLeft - padRight;
|
|
54361
|
+
const innerH = h - padTop - padBottom;
|
|
54362
|
+
const maxV = Math.max(...rows.map(r => r.value), 0.0001);
|
|
54363
|
+
const bw = innerW / rows.length;
|
|
54364
|
+
const labelStroke = isDark ? '#9ca3af' : '#4b5563';
|
|
54365
|
+
const gridStroke = isDark ? '#374151' : '#e5e7eb';
|
|
54366
|
+
const fontColor = isDark ? '#d1d5db' : '#374151';
|
|
54367
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("svg", {
|
|
54368
|
+
viewBox: "0 0 ".concat(w, " ").concat(h),
|
|
54369
|
+
width: "100%",
|
|
54370
|
+
style: {
|
|
54371
|
+
display: 'block'
|
|
54372
|
+
},
|
|
54373
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("line", {
|
|
54374
|
+
x1: padLeft,
|
|
54375
|
+
y1: padTop + innerH,
|
|
54376
|
+
x2: padLeft + innerW,
|
|
54377
|
+
y2: padTop + innerH,
|
|
54378
|
+
stroke: gridStroke,
|
|
54379
|
+
strokeWidth: "1"
|
|
54380
|
+
}), rows.map((r, i) => {
|
|
54381
|
+
const barH = r.value / maxV * innerH;
|
|
54382
|
+
const x = padLeft + i * bw + bw * 0.15;
|
|
54383
|
+
const yPos = padTop + (innerH - barH);
|
|
54384
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("g", {
|
|
54385
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("rect", {
|
|
54386
|
+
x: x,
|
|
54387
|
+
y: yPos,
|
|
54388
|
+
width: bw * 0.7,
|
|
54389
|
+
height: barH,
|
|
54390
|
+
fill: PALETTE[i % PALETTE.length],
|
|
54391
|
+
rx: "2"
|
|
54392
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("text", {
|
|
54393
|
+
x: x + bw * 0.7 / 2,
|
|
54394
|
+
y: padTop + innerH + 14,
|
|
54395
|
+
fontSize: "9",
|
|
54396
|
+
fill: fontColor,
|
|
54397
|
+
textAnchor: "middle",
|
|
54398
|
+
children: truncate(r.label, 10)
|
|
54399
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("text", {
|
|
54400
|
+
x: x + bw * 0.7 / 2,
|
|
54401
|
+
y: yPos - 3,
|
|
54402
|
+
fontSize: "9",
|
|
54403
|
+
fill: labelStroke,
|
|
54404
|
+
textAnchor: "middle",
|
|
54405
|
+
children: formatNum(r.value)
|
|
54406
|
+
})]
|
|
54407
|
+
}, i);
|
|
54408
|
+
})]
|
|
54409
|
+
});
|
|
54410
|
+
}
|
|
54411
|
+
function LineSvg(_ref4) {
|
|
54412
|
+
let {
|
|
54413
|
+
rows,
|
|
54414
|
+
area,
|
|
54415
|
+
isDark
|
|
54416
|
+
} = _ref4;
|
|
54417
|
+
const w = 320;
|
|
54418
|
+
const h = 180;
|
|
54419
|
+
const padLeft = 28;
|
|
54420
|
+
const padRight = 12;
|
|
54421
|
+
const padTop = 12;
|
|
54422
|
+
const padBottom = 28;
|
|
54423
|
+
const innerW = w - padLeft - padRight;
|
|
54424
|
+
const innerH = h - padTop - padBottom;
|
|
54425
|
+
const vals = rows.map(r => r.value);
|
|
54426
|
+
const maxV = Math.max(...vals);
|
|
54427
|
+
const minV = Math.min(...vals, 0);
|
|
54428
|
+
const range = maxV - minV || 1;
|
|
54429
|
+
const gridStroke = isDark ? '#374151' : '#e5e7eb';
|
|
54430
|
+
const labelStroke = isDark ? '#9ca3af' : '#4b5563';
|
|
54431
|
+
const fontColor = isDark ? '#d1d5db' : '#374151';
|
|
54432
|
+
const lineColor = PALETTE[0];
|
|
54433
|
+
const xAt = i => padLeft + (rows.length > 1 ? i / (rows.length - 1) * innerW : innerW / 2);
|
|
54434
|
+
const yAt = v => padTop + innerH - (v - minV) / range * innerH;
|
|
54435
|
+
const points = rows.map((r, i) => "".concat(xAt(i), ",").concat(yAt(r.value))).join(' ');
|
|
54436
|
+
const areaPath = rows.length > 0 ? "M ".concat(xAt(0), ",").concat(padTop + innerH, " L ").concat(rows.map((r, i) => "".concat(xAt(i), ",").concat(yAt(r.value))).join(' L '), " L ").concat(xAt(rows.length - 1), ",").concat(padTop + innerH, " Z") : '';
|
|
54437
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("svg", {
|
|
54438
|
+
viewBox: "0 0 ".concat(w, " ").concat(h),
|
|
54439
|
+
width: "100%",
|
|
54440
|
+
style: {
|
|
54441
|
+
display: 'block'
|
|
54442
|
+
},
|
|
54443
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("line", {
|
|
54444
|
+
x1: padLeft,
|
|
54445
|
+
y1: padTop,
|
|
54446
|
+
x2: padLeft,
|
|
54447
|
+
y2: padTop + innerH,
|
|
54448
|
+
stroke: gridStroke,
|
|
54449
|
+
strokeWidth: "1"
|
|
54450
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("line", {
|
|
54451
|
+
x1: padLeft,
|
|
54452
|
+
y1: padTop + innerH,
|
|
54453
|
+
x2: padLeft + innerW,
|
|
54454
|
+
y2: padTop + innerH,
|
|
54455
|
+
stroke: gridStroke,
|
|
54456
|
+
strokeWidth: "1"
|
|
54457
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("text", {
|
|
54458
|
+
x: padLeft - 4,
|
|
54459
|
+
y: padTop + 4,
|
|
54460
|
+
fontSize: "9",
|
|
54461
|
+
fill: labelStroke,
|
|
54462
|
+
textAnchor: "end",
|
|
54463
|
+
children: formatNum(maxV)
|
|
54464
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("text", {
|
|
54465
|
+
x: padLeft - 4,
|
|
54466
|
+
y: padTop + innerH,
|
|
54467
|
+
fontSize: "9",
|
|
54468
|
+
fill: labelStroke,
|
|
54469
|
+
textAnchor: "end",
|
|
54470
|
+
children: formatNum(minV)
|
|
54471
|
+
}), area && /*#__PURE__*/jsxRuntimeExports.jsx("path", {
|
|
54472
|
+
d: areaPath,
|
|
54473
|
+
fill: lineColor,
|
|
54474
|
+
fillOpacity: "0.15"
|
|
54475
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("polyline", {
|
|
54476
|
+
points: points,
|
|
54477
|
+
fill: "none",
|
|
54478
|
+
stroke: lineColor,
|
|
54479
|
+
strokeWidth: "2",
|
|
54480
|
+
strokeLinejoin: "round",
|
|
54481
|
+
strokeLinecap: "round"
|
|
54482
|
+
}), rows.map((r, i) => /*#__PURE__*/jsxRuntimeExports.jsxs("g", {
|
|
54483
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("circle", {
|
|
54484
|
+
cx: xAt(i),
|
|
54485
|
+
cy: yAt(r.value),
|
|
54486
|
+
r: "3",
|
|
54487
|
+
fill: lineColor
|
|
54488
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("text", {
|
|
54489
|
+
x: xAt(i),
|
|
54490
|
+
y: padTop + innerH + 14,
|
|
54491
|
+
fontSize: "9",
|
|
54492
|
+
fill: fontColor,
|
|
54493
|
+
textAnchor: "middle",
|
|
54494
|
+
children: truncate(r.label, 10)
|
|
54495
|
+
})]
|
|
54496
|
+
}, i))]
|
|
54497
|
+
});
|
|
54498
|
+
}
|
|
54499
|
+
function PieSvg(_ref5) {
|
|
54500
|
+
let {
|
|
54501
|
+
rows,
|
|
54502
|
+
donut,
|
|
54503
|
+
isDark
|
|
54504
|
+
} = _ref5;
|
|
54505
|
+
const size = 200;
|
|
54506
|
+
const cx = size / 2;
|
|
54507
|
+
const cy = size / 2;
|
|
54508
|
+
const rOuter = size / 2 - 4;
|
|
54509
|
+
const rInner = donut ? rOuter * 0.55 : 0;
|
|
54510
|
+
const total = rows.reduce((s, r) => s + Math.max(0, r.value), 0);
|
|
54511
|
+
if (total <= 0) {
|
|
54512
|
+
return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54513
|
+
style: {
|
|
54514
|
+
color: isDark ? '#9ca3af' : '#6b7280',
|
|
54515
|
+
fontSize: 12
|
|
54516
|
+
},
|
|
54517
|
+
children: "Empty pie chart"
|
|
54518
|
+
});
|
|
54519
|
+
}
|
|
54520
|
+
let acc = 0;
|
|
54521
|
+
const slices = rows.map((r, i) => {
|
|
54522
|
+
const startA = acc / total * Math.PI * 2 - Math.PI / 2;
|
|
54523
|
+
acc += Math.max(0, r.value);
|
|
54524
|
+
const endA = acc / total * Math.PI * 2 - Math.PI / 2;
|
|
54525
|
+
const large = endA - startA > Math.PI ? 1 : 0;
|
|
54526
|
+
const x1 = cx + rOuter * Math.cos(startA);
|
|
54527
|
+
const y1 = cy + rOuter * Math.sin(startA);
|
|
54528
|
+
const x2 = cx + rOuter * Math.cos(endA);
|
|
54529
|
+
const y2 = cy + rOuter * Math.sin(endA);
|
|
54530
|
+
if (donut) {
|
|
54531
|
+
const ix1 = cx + rInner * Math.cos(endA);
|
|
54532
|
+
const iy1 = cy + rInner * Math.sin(endA);
|
|
54533
|
+
const ix2 = cx + rInner * Math.cos(startA);
|
|
54534
|
+
const iy2 = cy + rInner * Math.sin(startA);
|
|
54535
|
+
return {
|
|
54536
|
+
d: "M ".concat(x1, ",").concat(y1, " A ").concat(rOuter, ",").concat(rOuter, " 0 ").concat(large, " 1 ").concat(x2, ",").concat(y2, " L ").concat(ix1, ",").concat(iy1, " A ").concat(rInner, ",").concat(rInner, " 0 ").concat(large, " 0 ").concat(ix2, ",").concat(iy2, " Z"),
|
|
54537
|
+
color: PALETTE[i % PALETTE.length],
|
|
54538
|
+
label: r.label,
|
|
54539
|
+
value: r.value
|
|
54540
|
+
};
|
|
54541
|
+
}
|
|
54542
|
+
return {
|
|
54543
|
+
d: "M ".concat(cx, ",").concat(cy, " L ").concat(x1, ",").concat(y1, " A ").concat(rOuter, ",").concat(rOuter, " 0 ").concat(large, " 1 ").concat(x2, ",").concat(y2, " Z"),
|
|
54544
|
+
color: PALETTE[i % PALETTE.length],
|
|
54545
|
+
label: r.label,
|
|
54546
|
+
value: r.value
|
|
54547
|
+
};
|
|
54548
|
+
});
|
|
54549
|
+
const labelColor = isDark ? '#d1d5db' : '#374151';
|
|
54550
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54551
|
+
style: {
|
|
54552
|
+
display: 'flex',
|
|
54553
|
+
flexWrap: 'wrap',
|
|
54554
|
+
gap: 12,
|
|
54555
|
+
alignItems: 'center'
|
|
54556
|
+
},
|
|
54557
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("svg", {
|
|
54558
|
+
viewBox: "0 0 ".concat(size, " ").concat(size),
|
|
54559
|
+
width: "160",
|
|
54560
|
+
style: {
|
|
54561
|
+
flexShrink: 0
|
|
54562
|
+
},
|
|
54563
|
+
children: slices.map((s, i) => /*#__PURE__*/jsxRuntimeExports.jsx("path", {
|
|
54564
|
+
d: s.d,
|
|
54565
|
+
fill: s.color,
|
|
54566
|
+
stroke: isDark ? '#1f2937' : '#fff',
|
|
54567
|
+
strokeWidth: "1"
|
|
54568
|
+
}, i))
|
|
54569
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54570
|
+
style: {
|
|
54571
|
+
minWidth: 100,
|
|
54572
|
+
flex: '1 1 auto'
|
|
54573
|
+
},
|
|
54574
|
+
children: slices.map((s, i) => /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54575
|
+
style: {
|
|
54576
|
+
display: 'flex',
|
|
54577
|
+
alignItems: 'center',
|
|
54578
|
+
gap: 6,
|
|
54579
|
+
marginBottom: 4,
|
|
54580
|
+
fontSize: 11
|
|
54581
|
+
},
|
|
54582
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("span", {
|
|
54583
|
+
style: {
|
|
54584
|
+
display: 'inline-block',
|
|
54585
|
+
width: 10,
|
|
54586
|
+
height: 10,
|
|
54587
|
+
background: s.color,
|
|
54588
|
+
borderRadius: 2
|
|
54589
|
+
}
|
|
54590
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsxs("span", {
|
|
54591
|
+
style: {
|
|
54592
|
+
color: labelColor
|
|
54593
|
+
},
|
|
54594
|
+
children: [truncate(s.label, 18), " ", /*#__PURE__*/jsxRuntimeExports.jsx("span", {
|
|
54595
|
+
style: {
|
|
54596
|
+
opacity: 0.7
|
|
54597
|
+
},
|
|
54598
|
+
children: formatNum(s.value)
|
|
54599
|
+
})]
|
|
54600
|
+
})]
|
|
54601
|
+
}, i))
|
|
54602
|
+
})]
|
|
54603
|
+
});
|
|
54604
|
+
}
|
|
54605
|
+
|
|
54606
|
+
// ── KPI / Table / Alert / Card / Buttons / Form / Confirmation ───────────
|
|
54607
|
+
|
|
54608
|
+
function Kpi(_ref6) {
|
|
54609
|
+
var _ref7, _ref8, _spec$value;
|
|
54610
|
+
let {
|
|
54611
|
+
spec,
|
|
54612
|
+
isDark
|
|
54613
|
+
} = _ref6;
|
|
54614
|
+
const value = (_ref7 = (_ref8 = (_spec$value = spec.value) !== null && _spec$value !== void 0 ? _spec$value : spec.amount) !== null && _ref8 !== void 0 ? _ref8 : spec.metric) !== null && _ref7 !== void 0 ? _ref7 : spec.kpi;
|
|
54615
|
+
const label = spec.label || spec.title || '';
|
|
54616
|
+
const delta = spec.delta != null ? Number(spec.delta) : null;
|
|
54617
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54618
|
+
style: card(isDark),
|
|
54619
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54620
|
+
style: {
|
|
54621
|
+
fontSize: 11,
|
|
54622
|
+
color: isDark ? '#9ca3af' : '#6b7280',
|
|
54623
|
+
textTransform: 'uppercase',
|
|
54624
|
+
letterSpacing: '0.05em'
|
|
54625
|
+
},
|
|
54626
|
+
children: label
|
|
54627
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54628
|
+
style: {
|
|
54629
|
+
fontSize: 24,
|
|
54630
|
+
fontWeight: 700,
|
|
54631
|
+
marginTop: 2
|
|
54632
|
+
},
|
|
54633
|
+
children: value != null ? String(value) : '—'
|
|
54634
|
+
}), delta != null && Number.isFinite(delta) && /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54635
|
+
style: {
|
|
54636
|
+
fontSize: 12,
|
|
54637
|
+
color: delta >= 0 ? '#10b981' : '#ef4444',
|
|
54638
|
+
marginTop: 2
|
|
54639
|
+
},
|
|
54640
|
+
children: [delta >= 0 ? '▲ ' : '▼ ', formatNum(Math.abs(delta))]
|
|
54641
|
+
})]
|
|
54642
|
+
});
|
|
54643
|
+
}
|
|
54644
|
+
function Table(_ref9) {
|
|
54645
|
+
let {
|
|
54646
|
+
spec,
|
|
54647
|
+
isDark
|
|
54648
|
+
} = _ref9;
|
|
54649
|
+
const cols = Array.isArray(spec.columns) && spec.columns.length > 0 ? spec.columns : Array.isArray(spec.data) && spec.data[0] ? Object.keys(spec.data[0]) : [];
|
|
54650
|
+
const rows = Array.isArray(spec.data) ? spec.data : Array.isArray(spec.rows) ? spec.rows : [];
|
|
54651
|
+
if (cols.length === 0 || rows.length === 0) {
|
|
54652
|
+
return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54653
|
+
style: card(isDark),
|
|
54654
|
+
children: /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54655
|
+
style: {
|
|
54656
|
+
color: isDark ? '#9ca3af' : '#6b7280',
|
|
54657
|
+
fontSize: 12
|
|
54658
|
+
},
|
|
54659
|
+
children: "Empty table"
|
|
54660
|
+
})
|
|
54661
|
+
});
|
|
54662
|
+
}
|
|
54663
|
+
const border = isDark ? '1px solid #374151' : '1px solid #e5e7eb';
|
|
54664
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54665
|
+
style: card(isDark),
|
|
54666
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54667
|
+
style: {
|
|
54668
|
+
fontWeight: 600,
|
|
54669
|
+
marginBottom: 8
|
|
54670
|
+
},
|
|
54671
|
+
children: spec.title
|
|
54672
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54673
|
+
style: {
|
|
54674
|
+
overflowX: 'auto'
|
|
54675
|
+
},
|
|
54676
|
+
children: /*#__PURE__*/jsxRuntimeExports.jsxs("table", {
|
|
54677
|
+
style: {
|
|
54678
|
+
borderCollapse: 'collapse',
|
|
54679
|
+
width: '100%',
|
|
54680
|
+
fontSize: 12
|
|
54681
|
+
},
|
|
54682
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx("thead", {
|
|
54683
|
+
children: /*#__PURE__*/jsxRuntimeExports.jsx("tr", {
|
|
54684
|
+
children: cols.map(c => /*#__PURE__*/jsxRuntimeExports.jsx("th", {
|
|
54685
|
+
style: {
|
|
54686
|
+
border,
|
|
54687
|
+
padding: '6px 8px',
|
|
54688
|
+
background: isDark ? '#111827' : '#f9fafb',
|
|
54689
|
+
textAlign: 'left',
|
|
54690
|
+
fontWeight: 600
|
|
54691
|
+
},
|
|
54692
|
+
children: c
|
|
54693
|
+
}, c))
|
|
54694
|
+
})
|
|
54695
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("tbody", {
|
|
54696
|
+
children: rows.map((row, i) => /*#__PURE__*/jsxRuntimeExports.jsx("tr", {
|
|
54697
|
+
children: cols.map(c => /*#__PURE__*/jsxRuntimeExports.jsx("td", {
|
|
54698
|
+
style: {
|
|
54699
|
+
border,
|
|
54700
|
+
padding: '6px 8px'
|
|
54701
|
+
},
|
|
54702
|
+
children: row && typeof row === 'object' ? formatCell(row[c]) : ''
|
|
54703
|
+
}, c))
|
|
54704
|
+
}, i))
|
|
54705
|
+
})]
|
|
54706
|
+
})
|
|
54707
|
+
})]
|
|
54708
|
+
});
|
|
54709
|
+
}
|
|
54710
|
+
function Alert(_ref0) {
|
|
54711
|
+
let {
|
|
54712
|
+
spec,
|
|
54713
|
+
isDark
|
|
54714
|
+
} = _ref0;
|
|
54715
|
+
const lvl = String(spec.level || 'info').toLowerCase();
|
|
54716
|
+
const palette = {
|
|
54717
|
+
info: {
|
|
54718
|
+
bg: isDark ? '#1e3a5f' : '#eff6ff',
|
|
54719
|
+
border: '#3b82f6',
|
|
54720
|
+
text: isDark ? '#dbeafe' : '#1e40af'
|
|
54721
|
+
},
|
|
54722
|
+
warn: {
|
|
54723
|
+
bg: isDark ? '#3d2e0a' : '#fef3c7',
|
|
54724
|
+
border: '#f59e0b',
|
|
54725
|
+
text: isDark ? '#fde68a' : '#92400e'
|
|
54726
|
+
},
|
|
54727
|
+
warning: {
|
|
54728
|
+
bg: isDark ? '#3d2e0a' : '#fef3c7',
|
|
54729
|
+
border: '#f59e0b',
|
|
54730
|
+
text: isDark ? '#fde68a' : '#92400e'
|
|
54731
|
+
},
|
|
54732
|
+
error: {
|
|
54733
|
+
bg: isDark ? '#3a1216' : '#fee2e2',
|
|
54734
|
+
border: '#ef4444',
|
|
54735
|
+
text: isDark ? '#fecaca' : '#991b1b'
|
|
54736
|
+
},
|
|
54737
|
+
success: {
|
|
54738
|
+
bg: isDark ? '#0e2e1d' : '#d1fae5',
|
|
54739
|
+
border: '#10b981',
|
|
54740
|
+
text: isDark ? '#a7f3d0' : '#065f46'
|
|
54741
|
+
}
|
|
54742
|
+
};
|
|
54743
|
+
const p = palette[lvl] || palette.info;
|
|
54744
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54745
|
+
style: _objectSpread2(_objectSpread2({}, card(isDark)), {}, {
|
|
54746
|
+
background: p.bg,
|
|
54747
|
+
borderLeft: "4px solid ".concat(p.border),
|
|
54748
|
+
color: p.text
|
|
54749
|
+
}),
|
|
54750
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54751
|
+
style: {
|
|
54752
|
+
fontWeight: 600,
|
|
54753
|
+
marginBottom: 4
|
|
54754
|
+
},
|
|
54755
|
+
children: spec.title
|
|
54756
|
+
}), spec.body && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54757
|
+
style: {
|
|
54758
|
+
fontSize: 12
|
|
54759
|
+
},
|
|
54760
|
+
children: String(spec.body)
|
|
54761
|
+
})]
|
|
54762
|
+
});
|
|
54763
|
+
}
|
|
54764
|
+
function Card(_ref1) {
|
|
54765
|
+
let {
|
|
54766
|
+
spec,
|
|
54767
|
+
isDark
|
|
54768
|
+
} = _ref1;
|
|
54769
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54770
|
+
style: card(isDark),
|
|
54771
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54772
|
+
style: {
|
|
54773
|
+
fontWeight: 600,
|
|
54774
|
+
marginBottom: 6
|
|
54775
|
+
},
|
|
54776
|
+
children: spec.title
|
|
54777
|
+
}), spec.body && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54778
|
+
style: {
|
|
54779
|
+
fontSize: 12
|
|
54780
|
+
},
|
|
54781
|
+
children: String(spec.body)
|
|
54782
|
+
})]
|
|
54783
|
+
});
|
|
54784
|
+
}
|
|
54785
|
+
function ButtonGroup(_ref10) {
|
|
54786
|
+
let {
|
|
54787
|
+
spec,
|
|
54788
|
+
isDark,
|
|
54789
|
+
onButtonClick
|
|
54790
|
+
} = _ref10;
|
|
54791
|
+
const buttons = Array.isArray(spec.buttons) ? spec.buttons : [];
|
|
54792
|
+
if (buttons.length === 0) return null;
|
|
54793
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54794
|
+
style: {
|
|
54795
|
+
margin: '8px 0'
|
|
54796
|
+
},
|
|
54797
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54798
|
+
style: {
|
|
54799
|
+
fontSize: 11,
|
|
54800
|
+
color: isDark ? '#9ca3af' : '#6b7280',
|
|
54801
|
+
textTransform: 'uppercase',
|
|
54802
|
+
letterSpacing: '0.05em',
|
|
54803
|
+
marginBottom: 6
|
|
54804
|
+
},
|
|
54805
|
+
children: spec.title
|
|
54806
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54807
|
+
style: {
|
|
54808
|
+
display: 'flex',
|
|
54809
|
+
flexWrap: 'wrap',
|
|
54810
|
+
gap: 6
|
|
54811
|
+
},
|
|
54812
|
+
children: buttons.map((b, i) => {
|
|
54813
|
+
var _ref13, _b$label2;
|
|
54814
|
+
return /*#__PURE__*/jsxRuntimeExports.jsx("button", {
|
|
54815
|
+
type: "button",
|
|
54816
|
+
onClick: onButtonClick ? () => {
|
|
54817
|
+
var _ref11, _b$value, _ref12, _b$label;
|
|
54818
|
+
return onButtonClick(String((_ref11 = (_b$value = b.value) !== null && _b$value !== void 0 ? _b$value : b.label) !== null && _ref11 !== void 0 ? _ref11 : ''), String((_ref12 = (_b$label = b.label) !== null && _b$label !== void 0 ? _b$label : b.value) !== null && _ref12 !== void 0 ? _ref12 : ''));
|
|
54819
|
+
} : undefined,
|
|
54820
|
+
disabled: !onButtonClick,
|
|
54821
|
+
style: {
|
|
54822
|
+
border: '1px solid ' + (isDark ? '#374151' : '#d1d5db'),
|
|
54823
|
+
background: isDark ? '#1f2937' : '#ffffff',
|
|
54824
|
+
color: isDark ? '#f3f4f6' : '#111827',
|
|
54825
|
+
padding: '6px 12px',
|
|
54826
|
+
borderRadius: 6,
|
|
54827
|
+
fontSize: 12,
|
|
54828
|
+
cursor: onButtonClick ? 'pointer' : 'default',
|
|
54829
|
+
opacity: onButtonClick ? 1 : 0.6
|
|
54830
|
+
},
|
|
54831
|
+
children: String((_ref13 = (_b$label2 = b.label) !== null && _b$label2 !== void 0 ? _b$label2 : b.value) !== null && _ref13 !== void 0 ? _ref13 : '')
|
|
54832
|
+
}, i);
|
|
54833
|
+
})
|
|
54834
|
+
})]
|
|
54835
|
+
});
|
|
54836
|
+
}
|
|
54837
|
+
function FormDisplay(_ref14) {
|
|
54838
|
+
let {
|
|
54839
|
+
spec,
|
|
54840
|
+
isDark
|
|
54841
|
+
} = _ref14;
|
|
54842
|
+
// Forms are read-only in the widget — the chat surface doesn't have a
|
|
54843
|
+
// form-submit channel, so we just render the fields for the user to read.
|
|
54844
|
+
const fields = Array.isArray(spec.fields) ? spec.fields : [];
|
|
54845
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54846
|
+
style: card(isDark),
|
|
54847
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54848
|
+
style: {
|
|
54849
|
+
fontWeight: 600,
|
|
54850
|
+
marginBottom: 8
|
|
54851
|
+
},
|
|
54852
|
+
children: spec.title
|
|
54853
|
+
}), fields.map((f, i) => {
|
|
54854
|
+
var _ref15, _f$value;
|
|
54855
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54856
|
+
style: {
|
|
54857
|
+
marginBottom: 4,
|
|
54858
|
+
fontSize: 12
|
|
54859
|
+
},
|
|
54860
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsxs("span", {
|
|
54861
|
+
style: {
|
|
54862
|
+
color: isDark ? '#9ca3af' : '#6b7280'
|
|
54863
|
+
},
|
|
54864
|
+
children: [f.label || f.name, ": "]
|
|
54865
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx("span", {
|
|
54866
|
+
children: String((_ref15 = (_f$value = f.value) !== null && _f$value !== void 0 ? _f$value : f.placeholder) !== null && _ref15 !== void 0 ? _ref15 : '')
|
|
54867
|
+
})]
|
|
54868
|
+
}, i);
|
|
54869
|
+
})]
|
|
54870
|
+
});
|
|
54871
|
+
}
|
|
54872
|
+
function Confirmation(_ref16) {
|
|
54873
|
+
let {
|
|
54874
|
+
spec,
|
|
54875
|
+
isDark,
|
|
54876
|
+
onButtonClick
|
|
54877
|
+
} = _ref16;
|
|
54878
|
+
const yes = spec.yes || {
|
|
54879
|
+
label: 'Yes',
|
|
54880
|
+
value: 'yes'
|
|
54881
|
+
};
|
|
54882
|
+
const no = spec.no || {
|
|
54883
|
+
label: 'No',
|
|
54884
|
+
value: 'no'
|
|
54885
|
+
};
|
|
54886
|
+
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
54887
|
+
style: card(isDark),
|
|
54888
|
+
children: [spec.title && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54889
|
+
style: {
|
|
54890
|
+
fontWeight: 600,
|
|
54891
|
+
marginBottom: 6
|
|
54892
|
+
},
|
|
54893
|
+
children: spec.title
|
|
54894
|
+
}), spec.body && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
54895
|
+
style: {
|
|
54896
|
+
fontSize: 12,
|
|
54897
|
+
marginBottom: 8
|
|
54898
|
+
},
|
|
54899
|
+
children: String(spec.body)
|
|
54900
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx(ButtonGroup, {
|
|
54901
|
+
spec: {
|
|
54902
|
+
buttons: [yes, no]
|
|
54903
|
+
},
|
|
54904
|
+
isDark: isDark,
|
|
54905
|
+
onButtonClick: onButtonClick
|
|
54906
|
+
})]
|
|
54907
|
+
});
|
|
54908
|
+
}
|
|
54909
|
+
|
|
54910
|
+
// ── Formatting helpers ────────────────────────────────────────────────────
|
|
54911
|
+
|
|
54912
|
+
function truncate(s, max) {
|
|
54913
|
+
if (typeof s !== 'string') return String(s !== null && s !== void 0 ? s : '');
|
|
54914
|
+
return s.length > max ? s.slice(0, max - 1) + '…' : s;
|
|
54915
|
+
}
|
|
54916
|
+
function formatNum(n) {
|
|
54917
|
+
if (!Number.isFinite(n)) return '';
|
|
54918
|
+
const abs = Math.abs(n);
|
|
54919
|
+
if (abs >= 1000000000) return (n / 1000000000).toFixed(1) + 'B';
|
|
54920
|
+
if (abs >= 1000000) return (n / 1000000).toFixed(1) + 'M';
|
|
54921
|
+
if (abs >= 1000) return (n / 1000).toFixed(1) + 'k';
|
|
54922
|
+
if (Number.isInteger(n)) return String(n);
|
|
54923
|
+
return n.toFixed(2);
|
|
54924
|
+
}
|
|
54925
|
+
function formatCell(v) {
|
|
54926
|
+
if (v == null) return '';
|
|
54927
|
+
if (typeof v === 'number') return Number.isInteger(v) ? String(v) : v.toFixed(2);
|
|
54928
|
+
if (typeof v === 'object') return JSON.stringify(v);
|
|
54929
|
+
return String(v);
|
|
54930
|
+
}
|
|
54931
|
+
|
|
54180
54932
|
const _excluded$1 = ["node", "children"],
|
|
54181
54933
|
_excluded2 = ["node", "children"],
|
|
54182
54934
|
_excluded3 = ["node", "children"],
|
|
@@ -54190,6 +54942,19 @@
|
|
|
54190
54942
|
_excluded1 = ["node", "children"],
|
|
54191
54943
|
_excluded10 = ["node", "children"],
|
|
54192
54944
|
_excluded11 = ["className", "children"];
|
|
54945
|
+
const A2UI_FENCE_LANGS = new Set(["eshal-ui", "eshal-chart", "chart"]);
|
|
54946
|
+
|
|
54947
|
+
// Pull a clean text payload out of ReactMarkdown's `children` prop — it's
|
|
54948
|
+
// usually a string for fenced code blocks but can be an array of nodes when
|
|
54949
|
+
// remark plugins pre-tokenise. Defensive coercion: anything non-string is
|
|
54950
|
+
// dropped so JSON.parse never sees React elements.
|
|
54951
|
+
function extractFenceText(children) {
|
|
54952
|
+
if (typeof children === "string") return children;
|
|
54953
|
+
if (Array.isArray(children)) {
|
|
54954
|
+
return children.map(c => typeof c === "string" ? c : "").join("");
|
|
54955
|
+
}
|
|
54956
|
+
return "";
|
|
54957
|
+
}
|
|
54193
54958
|
const StreamingMarkdown = _ref => {
|
|
54194
54959
|
let {
|
|
54195
54960
|
content,
|
|
@@ -54557,11 +55322,34 @@
|
|
|
54557
55322
|
children
|
|
54558
55323
|
} = _ref12,
|
|
54559
55324
|
props = _objectWithoutProperties$1(_ref12, _excluded11);
|
|
54560
|
-
const match = /language-(\w+)/.exec(className || "");
|
|
55325
|
+
const match = /language-([\w-]+)/.exec(className || "");
|
|
55326
|
+
const lang = match ? match[1] : null;
|
|
55327
|
+
|
|
55328
|
+
// A2UI fence — render the JSON payload as a real visual block
|
|
55329
|
+
// (bar / line / pie chart / table / alert / KPI / card / button-
|
|
55330
|
+
// group). Falls through to the normal code-block rendering if
|
|
55331
|
+
// the JSON doesn't parse or the type is unrecognised — never
|
|
55332
|
+
// crashes the chat surface on a malformed fence. This is the
|
|
55333
|
+
// 12-06-2026 fix for the "graph responses show as raw JSON in
|
|
55334
|
+
// the embedded widget" bug.
|
|
55335
|
+
if (lang && A2UI_FENCE_LANGS.has(lang)) {
|
|
55336
|
+
const raw = extractFenceText(children).trim();
|
|
55337
|
+
try {
|
|
55338
|
+
const parsed = JSON.parse(raw);
|
|
55339
|
+
if (parsed && typeof parsed === "object") {
|
|
55340
|
+
return /*#__PURE__*/jsxRuntimeExports.jsx(A2uiBlock, {
|
|
55341
|
+
spec: parsed,
|
|
55342
|
+
isDark: isDark
|
|
55343
|
+
});
|
|
55344
|
+
}
|
|
55345
|
+
} catch (e) {
|
|
55346
|
+
// fall through to default code-block rendering
|
|
55347
|
+
}
|
|
55348
|
+
}
|
|
54561
55349
|
if (match) {
|
|
54562
55350
|
return /*#__PURE__*/jsxRuntimeExports.jsx(SyntaxHighlighter, _objectSpread2(_objectSpread2({
|
|
54563
55351
|
style: oneDark,
|
|
54564
|
-
language:
|
|
55352
|
+
language: lang,
|
|
54565
55353
|
PreTag: "div",
|
|
54566
55354
|
wrapLines: true
|
|
54567
55355
|
}, props), {}, {
|
|
@@ -60071,10 +60859,14 @@
|
|
|
60071
60859
|
}, [isCsatEnabled, showResolveForm, isConversationResolved, resolveRating, resolveFeedbackText]);
|
|
60072
60860
|
const latestPromptSuggestions = reactExports.useMemo(() => {
|
|
60073
60861
|
if (!messages || !Array.isArray(messages)) return [];
|
|
60862
|
+
// Reflect the LATEST assistant message's prompts ONLY — do NOT walk back
|
|
60863
|
+
// to an earlier turn. Walking back showed the PREVIOUS turn's chips
|
|
60864
|
+
// whenever the current answer's prompts were empty/late (the one-turn lag).
|
|
60074
60865
|
for (let i = messages.length - 1; i >= 0; i -= 1) {
|
|
60075
|
-
|
|
60076
|
-
if ((
|
|
60077
|
-
|
|
60866
|
+
var _messages$i;
|
|
60867
|
+
if (((_messages$i = messages[i]) === null || _messages$i === void 0 ? void 0 : _messages$i.role) === "assistant") {
|
|
60868
|
+
const p = messages[i].prompts;
|
|
60869
|
+
return Array.isArray(p) ? p : [];
|
|
60078
60870
|
}
|
|
60079
60871
|
}
|
|
60080
60872
|
return [];
|
|
@@ -60090,6 +60882,18 @@
|
|
|
60090
60882
|
stablePromptSuggestionsRef.current = [];
|
|
60091
60883
|
}
|
|
60092
60884
|
}, [latestPromptSuggestions, messages]);
|
|
60885
|
+
|
|
60886
|
+
// The moment a NEW user turn starts, drop the carried-over suggestions so a
|
|
60887
|
+
// late/empty current turn never leaves the PREVIOUS turn's chips showing
|
|
60888
|
+
// (the reported one-turn lag). They reappear when this turn yields prompts.
|
|
60889
|
+
// (`userMessageCount` is declared above.)
|
|
60890
|
+
const prevUserMessageCountRef = reactExports.useRef(userMessageCount);
|
|
60891
|
+
reactExports.useEffect(() => {
|
|
60892
|
+
if (userMessageCount !== prevUserMessageCountRef.current) {
|
|
60893
|
+
prevUserMessageCountRef.current = userMessageCount;
|
|
60894
|
+
stablePromptSuggestionsRef.current = [];
|
|
60895
|
+
}
|
|
60896
|
+
}, [userMessageCount]);
|
|
60093
60897
|
const stablePromptSuggestions = latestPromptSuggestions.length > 0 ? latestPromptSuggestions : stablePromptSuggestionsRef.current;
|
|
60094
60898
|
reactExports.useEffect(() => {
|
|
60095
60899
|
if (!csatEnabled) return;
|
|
@@ -61898,6 +62702,16 @@
|
|
|
61898
62702
|
})
|
|
61899
62703
|
}];
|
|
61900
62704
|
|
|
62705
|
+
// Reorder the keyless cascade: freeipapi.com is currently the only one
|
|
62706
|
+
// reliably reachable from a browser — ip-api.com's free tier is HTTP-only
|
|
62707
|
+
// (→ HTTP 403 over HTTPS), ipwho.is → 403, ipapi.co → 429. Trying freeipapi
|
|
62708
|
+
// first avoids three doomed round-trips on every lookup. The rest stay as
|
|
62709
|
+
// fallback in case they recover or behave differently from another network.
|
|
62710
|
+
// NOTE: all IP providers locate the ISP gateway, not the device — for an
|
|
62711
|
+
// accurate end-user position use getBrowserLocation() (GPS + reverseGeocode).
|
|
62712
|
+
const FREE_ORDER = ["freeipapi.com", "ipwho.is", "ipapi.co", "ip-api.com"];
|
|
62713
|
+
freeProviders.sort((a, b) => FREE_ORDER.indexOf(a.name) - FREE_ORDER.indexOf(b.name));
|
|
62714
|
+
|
|
61901
62715
|
// Key-based providers go first (more reliable, higher limits)
|
|
61902
62716
|
return [...keyedProviders, ...freeProviders];
|
|
61903
62717
|
}
|
|
@@ -61995,22 +62809,130 @@
|
|
|
61995
62809
|
}));
|
|
61996
62810
|
}
|
|
61997
62811
|
|
|
62812
|
+
// Default options for navigator.geolocation.getCurrentPosition.
|
|
62813
|
+
// enableHighAccuracy → prefer real GPS over coarse network positioning;
|
|
62814
|
+
// timeout 8s → don't hang forever waiting for a fix;
|
|
62815
|
+
// maximumAge 5 min → accept a recently-cached fix so a silent refresh
|
|
62816
|
+
// (permission already granted) resolves instantly.
|
|
62817
|
+
const DEFAULT_GEO_OPTIONS = {
|
|
62818
|
+
enableHighAccuracy: true,
|
|
62819
|
+
timeout: 8000,
|
|
62820
|
+
maximumAge: 5 * 60 * 1000
|
|
62821
|
+
};
|
|
62822
|
+
|
|
61998
62823
|
/**
|
|
61999
|
-
* Get browser-native geolocation (GPS / network-based
|
|
62824
|
+
* Get browser-native geolocation (GPS / network-based).
|
|
62825
|
+
* Triggers the native permission prompt on first use for an origin (unless the
|
|
62826
|
+
* user already granted/denied). Resolves null — never rejects — on error,
|
|
62827
|
+
* denial, unsupported, or insecure (plain-HTTP) context, so callers can simply
|
|
62828
|
+
* fall back to IP geo.
|
|
62829
|
+
*
|
|
62830
|
+
* @param {PositionOptions} [options] - merged over DEFAULT_GEO_OPTIONS
|
|
62831
|
+
* @returns {Promise<{latitude:number, longitude:number, accuracy:number}|null>}
|
|
62000
62832
|
*/
|
|
62001
|
-
function getBrowserGeolocation$1(options = {
|
|
62002
|
-
timeout: 8000
|
|
62003
|
-
}) {
|
|
62833
|
+
function getBrowserGeolocation$1(options = {}) {
|
|
62004
62834
|
return new Promise(resolve => {
|
|
62005
|
-
if (!navigator
|
|
62835
|
+
if (typeof navigator === "undefined" || !navigator.geolocation) return resolve(null);
|
|
62836
|
+
// getCurrentPosition only resolves in a secure context (HTTPS or
|
|
62837
|
+
// localhost). Bail early on plain HTTP rather than attempt a doomed prompt.
|
|
62838
|
+
if (typeof window !== "undefined" && window.isSecureContext === false) return resolve(null);
|
|
62006
62839
|
navigator.geolocation.getCurrentPosition(pos => resolve({
|
|
62007
62840
|
latitude: pos.coords.latitude,
|
|
62008
62841
|
longitude: pos.coords.longitude,
|
|
62009
62842
|
accuracy: pos.coords.accuracy
|
|
62010
|
-
}), () => resolve(null),
|
|
62843
|
+
}), () => resolve(null), {
|
|
62844
|
+
...DEFAULT_GEO_OPTIONS,
|
|
62845
|
+
...options
|
|
62846
|
+
});
|
|
62011
62847
|
});
|
|
62012
62848
|
}
|
|
62013
62849
|
|
|
62850
|
+
/**
|
|
62851
|
+
* Query the current geolocation permission WITHOUT triggering a prompt.
|
|
62852
|
+
* Lets the host decide whether to ask: "granted" → fetch silently, "denied" →
|
|
62853
|
+
* skip (IP fallback), "prompt" → show your own pre-ask before getCurrentPosition.
|
|
62854
|
+
* Returns "unsupported" where the Permissions API is unavailable (e.g. older
|
|
62855
|
+
* Safari) so callers can treat it as "not known to be granted".
|
|
62856
|
+
* @returns {Promise<"granted"|"denied"|"prompt"|"unsupported">}
|
|
62857
|
+
*/
|
|
62858
|
+
async function getGeolocationPermission$1() {
|
|
62859
|
+
try {
|
|
62860
|
+
if (typeof navigator === "undefined" || !navigator.permissions || !navigator.permissions.query) {
|
|
62861
|
+
return "unsupported";
|
|
62862
|
+
}
|
|
62863
|
+
const status = await navigator.permissions.query({
|
|
62864
|
+
name: "geolocation"
|
|
62865
|
+
});
|
|
62866
|
+
return status.state; // "granted" | "denied" | "prompt"
|
|
62867
|
+
} catch {
|
|
62868
|
+
return "unsupported";
|
|
62869
|
+
}
|
|
62870
|
+
}
|
|
62871
|
+
|
|
62872
|
+
/**
|
|
62873
|
+
* Reverse-geocode latitude/longitude → city / region / country.
|
|
62874
|
+
* Uses BigDataCloud's keyless, CORS-enabled *client* endpoint (no API key,
|
|
62875
|
+
* accurate to the city/state level). Resolves null on network failure or an
|
|
62876
|
+
* unusable response so the caller can keep any prior (IP-based) values.
|
|
62877
|
+
*
|
|
62878
|
+
* @param {number} latitude
|
|
62879
|
+
* @param {number} longitude
|
|
62880
|
+
* @param {Object} [options]
|
|
62881
|
+
* @param {number} [options.timeoutMs]
|
|
62882
|
+
* @param {string} [options.localityLanguage="en"]
|
|
62883
|
+
* @returns {Promise<{city,region,regionCode,country,countryCode,latitude,longitude}|null>}
|
|
62884
|
+
*/
|
|
62885
|
+
async function reverseGeocode$1(latitude, longitude, options = {}) {
|
|
62886
|
+
if (typeof latitude !== "number" || typeof longitude !== "number") return null;
|
|
62887
|
+
const timeoutMs = options.timeoutMs || _globalConfig.timeoutMs || 5000;
|
|
62888
|
+
const lang = options.localityLanguage || "en";
|
|
62889
|
+
const url = "https://api.bigdatacloud.net/data/reverse-geocode-client" + `?latitude=${latitude}&longitude=${longitude}&localityLanguage=${lang}`;
|
|
62890
|
+
try {
|
|
62891
|
+
const d = await fetchWithTimeout(url, timeoutMs);
|
|
62892
|
+
const city = d.city || d.locality || "";
|
|
62893
|
+
// Treat an empty body (e.g. mid-ocean coords) as a miss, not a result.
|
|
62894
|
+
if (!city && !d.countryName) return null;
|
|
62895
|
+
return {
|
|
62896
|
+
city,
|
|
62897
|
+
region: d.principalSubdivision || "",
|
|
62898
|
+
regionCode: (d.principalSubdivisionCode || "").split("-").pop() || "",
|
|
62899
|
+
country: d.countryName || "",
|
|
62900
|
+
countryCode: d.countryCode || "",
|
|
62901
|
+
latitude,
|
|
62902
|
+
longitude
|
|
62903
|
+
};
|
|
62904
|
+
} catch {
|
|
62905
|
+
return null;
|
|
62906
|
+
}
|
|
62907
|
+
}
|
|
62908
|
+
|
|
62909
|
+
/**
|
|
62910
|
+
* High-level "exact location" helper. Gets the device GPS fix (prompting if
|
|
62911
|
+
* needed) and reverse-geocodes it. Returns a geo-shaped object tagged
|
|
62912
|
+
* source:"gps" when the place resolved; the bare coords (no source tag) when
|
|
62913
|
+
* only the fix succeeded but reverse-geocoding failed; or null when there is no
|
|
62914
|
+
* fix at all (denied / unsupported / insecure). This is the accurate-location
|
|
62915
|
+
* primitive — prefer it over IP geo for the real end-user position.
|
|
62916
|
+
*
|
|
62917
|
+
* @param {PositionOptions} [options]
|
|
62918
|
+
* @returns {Promise<Object|null>}
|
|
62919
|
+
*/
|
|
62920
|
+
async function getBrowserLocation$1(options = {}) {
|
|
62921
|
+
const coords = await getBrowserGeolocation$1(options);
|
|
62922
|
+
if (!coords) return null;
|
|
62923
|
+
const place = await reverseGeocode$1(coords.latitude, coords.longitude, options);
|
|
62924
|
+
const hasPlace = !!(place && (place.city || place.country));
|
|
62925
|
+
return {
|
|
62926
|
+
...(hasPlace ? place : {}),
|
|
62927
|
+
latitude: coords.latitude,
|
|
62928
|
+
longitude: coords.longitude,
|
|
62929
|
+
accuracy: coords.accuracy,
|
|
62930
|
+
...(hasPlace ? {
|
|
62931
|
+
source: "gps"
|
|
62932
|
+
} : {})
|
|
62933
|
+
};
|
|
62934
|
+
}
|
|
62935
|
+
|
|
62014
62936
|
/** Build a Google Maps URL from coordinates */
|
|
62015
62937
|
function toMapsUrl$1(lat, lon) {
|
|
62016
62938
|
return `https://www.google.com/maps?q=${lat},${lon}`;
|
|
@@ -62020,6 +62942,9 @@
|
|
|
62020
62942
|
resolveLocation: resolveLocation$1,
|
|
62021
62943
|
listProviders: listProviders$1,
|
|
62022
62944
|
getBrowserGeolocation: getBrowserGeolocation$1,
|
|
62945
|
+
getGeolocationPermission: getGeolocationPermission$1,
|
|
62946
|
+
reverseGeocode: reverseGeocode$1,
|
|
62947
|
+
getBrowserLocation: getBrowserLocation$1,
|
|
62023
62948
|
toMapsUrl: toMapsUrl$1
|
|
62024
62949
|
};
|
|
62025
62950
|
|
|
@@ -62203,6 +63128,9 @@
|
|
|
62203
63128
|
resolveLocation,
|
|
62204
63129
|
listProviders,
|
|
62205
63130
|
getBrowserGeolocation,
|
|
63131
|
+
getGeolocationPermission,
|
|
63132
|
+
reverseGeocode,
|
|
63133
|
+
getBrowserLocation,
|
|
62206
63134
|
toMapsUrl
|
|
62207
63135
|
} = location;
|
|
62208
63136
|
const {
|
|
@@ -62235,7 +63163,13 @@
|
|
|
62235
63163
|
* @param {Object} [options]
|
|
62236
63164
|
* @param {Function} [options.onReady] - Callback when profile is ready
|
|
62237
63165
|
* @param {Function} [options.onError] - Callback on error
|
|
62238
|
-
* @param {boolean}
|
|
63166
|
+
* @param {boolean|"auto"} [options.geoFromBrowser=true] - Capture precise GPS
|
|
63167
|
+
* and reverse-geocode it into `geo`. DEFAULT true = request on init()
|
|
63168
|
+
* (shows the native permission prompt unless already granted/denied);
|
|
63169
|
+
* false = never (IP only); "auto" = use GPS only when permission was
|
|
63170
|
+
* ALREADY granted (silent, never prompts).
|
|
63171
|
+
* @param {Object} [options.geoApiKeys] - API keys for keyed geo providers
|
|
63172
|
+
* @param {PositionOptions} [options.geoOptions] - Override getCurrentPosition opts
|
|
62239
63173
|
* @param {boolean} [options.cache=true] - Use cached profile if < maxAgeMs old
|
|
62240
63174
|
* @param {number} [options.maxAgeMs=300000] - Max cache age (default 5 min)
|
|
62241
63175
|
* @param {boolean} [options.autoInit=false] - Auto-init on construction
|
|
@@ -62245,7 +63179,13 @@
|
|
|
62245
63179
|
this._options = {
|
|
62246
63180
|
onReady: options.onReady || null,
|
|
62247
63181
|
onError: options.onError || null,
|
|
62248
|
-
|
|
63182
|
+
// Default ON: capture precise GPS on init() behind the browser's native
|
|
63183
|
+
// permission prompt. Use `=== undefined` (not `|| `) so an explicit
|
|
63184
|
+
// `false` opt-out is honored; pass "auto" to use an already-granted
|
|
63185
|
+
// permission silently without ever prompting.
|
|
63186
|
+
geoFromBrowser: options.geoFromBrowser === undefined ? true : options.geoFromBrowser,
|
|
63187
|
+
geoApiKeys: options.geoApiKeys || null,
|
|
63188
|
+
geoOptions: options.geoOptions || null,
|
|
62249
63189
|
cache: options.cache !== false,
|
|
62250
63190
|
maxAgeMs: options.maxAgeMs || 5 * 60 * 1000,
|
|
62251
63191
|
autoInit: options.autoInit || false,
|
|
@@ -62295,15 +63235,46 @@
|
|
|
62295
63235
|
confidence
|
|
62296
63236
|
} = generateFingerprint();
|
|
62297
63237
|
|
|
62298
|
-
// 3. IP
|
|
62299
|
-
|
|
62300
|
-
|
|
62301
|
-
const
|
|
62302
|
-
|
|
62303
|
-
|
|
62304
|
-
|
|
62305
|
-
|
|
62306
|
-
|
|
63238
|
+
// 3. IP→geo chain and (optional) precise browser GPS run concurrently.
|
|
63239
|
+
// GPS is the slow path (permission prompt + satellite fix) so we never
|
|
63240
|
+
// block the IP lookup on it.
|
|
63241
|
+
const ipApiKeys = this._options.geoApiKeys ? {
|
|
63242
|
+
apiKeys: this._options.geoApiKeys
|
|
63243
|
+
} : {};
|
|
63244
|
+
const [ipBundle, gpsLoc] = await Promise.all([(async () => {
|
|
63245
|
+
const ipResult = await detectIP();
|
|
63246
|
+
const ipAddr = ipResult?.ip || "unknown";
|
|
63247
|
+
const ipGeo = ipAddr !== "unknown" ? await resolveLocation(ipAddr, ipApiKeys) : null;
|
|
63248
|
+
return {
|
|
63249
|
+
ip: ipAddr,
|
|
63250
|
+
ipVersion: ipResult ? getIPVersion(ipAddr) : "unknown",
|
|
63251
|
+
geo: ipGeo
|
|
63252
|
+
};
|
|
63253
|
+
})(), this._collectBrowserLocation()]);
|
|
63254
|
+
const {
|
|
63255
|
+
ip,
|
|
63256
|
+
ipVersion
|
|
63257
|
+
} = ipBundle;
|
|
63258
|
+
|
|
63259
|
+
// 4. Geo: start from the (coarse) IP location, then — when we have a
|
|
63260
|
+
// precise GPS fix — OVERRIDE city/region/country with the
|
|
63261
|
+
// reverse-geocoded values. IP geo only locates the ISP gateway, so a
|
|
63262
|
+
// real device fix always wins. Denied/unavailable → IP value stays.
|
|
63263
|
+
let geo = ipBundle.geo;
|
|
63264
|
+
let browserGeo = null;
|
|
63265
|
+
if (gpsLoc) {
|
|
63266
|
+
browserGeo = {
|
|
63267
|
+
latitude: gpsLoc.latitude,
|
|
63268
|
+
longitude: gpsLoc.longitude,
|
|
63269
|
+
accuracy: gpsLoc.accuracy
|
|
63270
|
+
};
|
|
63271
|
+
if (gpsLoc.source === "gps") {
|
|
63272
|
+
// gpsLoc carries city/region/regionCode/country/countryCode/lat/lng/source
|
|
63273
|
+
geo = {
|
|
63274
|
+
...(geo || {}),
|
|
63275
|
+
...gpsLoc
|
|
63276
|
+
};
|
|
63277
|
+
}
|
|
62307
63278
|
}
|
|
62308
63279
|
|
|
62309
63280
|
// 5. Browser context
|
|
@@ -62345,6 +63316,56 @@
|
|
|
62345
63316
|
}
|
|
62346
63317
|
}
|
|
62347
63318
|
|
|
63319
|
+
/**
|
|
63320
|
+
* Decide whether to capture browser GPS during init(), honoring geoFromBrowser:
|
|
63321
|
+
* false → null (skip)
|
|
63322
|
+
* "auto" → only when permission is ALREADY granted (silent, never prompts)
|
|
63323
|
+
* true → attempt (getCurrentPosition shows the prompt unless denied)
|
|
63324
|
+
* @private
|
|
63325
|
+
* @returns {Promise<Object|null>}
|
|
63326
|
+
*/
|
|
63327
|
+
async _collectBrowserLocation() {
|
|
63328
|
+
const mode = this._options.geoFromBrowser;
|
|
63329
|
+
if (!mode) return null;
|
|
63330
|
+
if (mode === "auto") {
|
|
63331
|
+
const perm = await getGeolocationPermission();
|
|
63332
|
+
if (perm !== "granted") return null; // never prompt during a silent init
|
|
63333
|
+
}
|
|
63334
|
+
return getBrowserLocation(this._options.geoOptions || {});
|
|
63335
|
+
}
|
|
63336
|
+
|
|
63337
|
+
/**
|
|
63338
|
+
* Capture precise browser location AFTER your UI has obtained user consent
|
|
63339
|
+
* (e.g. an in-widget "Share your location?" pre-ask). Triggers the native
|
|
63340
|
+
* permission prompt, reverse-geocodes the fix, merges it into the current
|
|
63341
|
+
* profile's `geo` (source:"gps"), re-persists, and fires onReady. No-ops
|
|
63342
|
+
* gracefully when denied/unavailable (keeps the IP fallback) or before init().
|
|
63343
|
+
* @param {PositionOptions} [options]
|
|
63344
|
+
* @returns {Promise<UserProfile|null>}
|
|
63345
|
+
*/
|
|
63346
|
+
async captureBrowserLocation(options = {}) {
|
|
63347
|
+
const loc = await getBrowserLocation({
|
|
63348
|
+
...(this._options.geoOptions || {}),
|
|
63349
|
+
...options
|
|
63350
|
+
});
|
|
63351
|
+
if (!loc || !this.profile) return this.profile; // denied/unavailable or not init'd yet
|
|
63352
|
+
this.profile.browserGeo = {
|
|
63353
|
+
latitude: loc.latitude,
|
|
63354
|
+
longitude: loc.longitude,
|
|
63355
|
+
accuracy: loc.accuracy
|
|
63356
|
+
};
|
|
63357
|
+
this.profile.mapsUrl = toMapsUrl(loc.latitude, loc.longitude);
|
|
63358
|
+
if (loc.source === "gps") {
|
|
63359
|
+
this.profile.geo = {
|
|
63360
|
+
...(this.profile.geo || {}),
|
|
63361
|
+
...loc
|
|
63362
|
+
};
|
|
63363
|
+
}
|
|
63364
|
+
saveSessionMeta(this.profile);
|
|
63365
|
+
if (this._options.onReady) this._options.onReady(this.profile);
|
|
63366
|
+
return this.profile;
|
|
63367
|
+
}
|
|
63368
|
+
|
|
62348
63369
|
/**
|
|
62349
63370
|
* Get the current profile (must call init() first)
|
|
62350
63371
|
* @returns {UserProfile|null}
|
|
@@ -62439,6 +63460,9 @@
|
|
|
62439
63460
|
src.exports.resolveLocation = resolveLocation;
|
|
62440
63461
|
src.exports.listProviders = listProviders;
|
|
62441
63462
|
src.exports.getBrowserGeolocation = getBrowserGeolocation;
|
|
63463
|
+
src.exports.getGeolocationPermission = getGeolocationPermission;
|
|
63464
|
+
src.exports.reverseGeocode = reverseGeocode;
|
|
63465
|
+
src.exports.getBrowserLocation = getBrowserLocation;
|
|
62442
63466
|
src.exports.getOrCreateUserID = getOrCreateUserID;
|
|
62443
63467
|
src.exports.getOrCreateSessionID = getOrCreateSessionID;
|
|
62444
63468
|
src.exports.clearSession = clearSession;
|