virture-chat-live 1.0.20
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/README.md +97 -0
- package/dist/index.d.ts +30 -0
- package/dist/style.css +1 -0
- package/dist/virture-chat-live.es.js +5703 -0
- package/dist/virture-chat-live.umd.js +2 -0
- package/dist/vite.svg +1 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# virture-chat-live
|
|
2
|
+
|
|
3
|
+
Widget de chat en vivo para Vue 3, con conexion via Socket.IO.
|
|
4
|
+
|
|
5
|
+
## Instalacion
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install virture-chat-live
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Uso basico
|
|
12
|
+
|
|
13
|
+
```vue
|
|
14
|
+
<script setup>
|
|
15
|
+
import { ChatWidget } from "virture-chat-live";
|
|
16
|
+
import "virture-chat-live/style.css";
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<ChatWidget
|
|
21
|
+
:socket-url="widgetConfig.socketUrl"
|
|
22
|
+
:id-agent="widgetConfig.idAgent"
|
|
23
|
+
:api-key="widgetConfig.apiKey"
|
|
24
|
+
:name-space="widgetConfig.nameSpace"
|
|
25
|
+
:instance-name="widgetConfig.instanceName"
|
|
26
|
+
:gaTrackingId="''"
|
|
27
|
+
/>
|
|
28
|
+
</template>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Props
|
|
32
|
+
|
|
33
|
+
| Prop | Tipo | Default | Descripcion |
|
|
34
|
+
| ------------------------ | -------------------- | ------------------ | ---------------------------------------- |
|
|
35
|
+
| `socket-url` | `string` | — | URL del servidor Socket.IO |
|
|
36
|
+
| `id-agent` | `string` | — | ID del agente |
|
|
37
|
+
| `api-key` | `string` | — | API key de autenticacion |
|
|
38
|
+
| `name-space` | `string` | `"/chat"` | Namespace de Socket.IO |
|
|
39
|
+
| `welcome-message` | `string` | `"Hola que tal"` | Mensaje de bienvenida |
|
|
40
|
+
| `welcome-message-button` | `string` | `"Chatear Ahora!"` | Texto del boton de bienvenida |
|
|
41
|
+
| `icon-button` | `string` | — | URL de icono personalizado para el boton |
|
|
42
|
+
| `sound-name` | `string` | `"sound1"` | Nombre del sonido de notificacion |
|
|
43
|
+
| `instance-name` | `string` | — | Nombre de la instancia |
|
|
44
|
+
| `ga-tracking-id` | `string` | — | ID de Google Analytics |
|
|
45
|
+
| `theme` | `Partial<ChatTheme>` | — | Objeto para personalizar colores |
|
|
46
|
+
| `position` | `WidgetPosition` | — | Posicion del widget |
|
|
47
|
+
|
|
48
|
+
## Personalizar tema
|
|
49
|
+
|
|
50
|
+
```vue
|
|
51
|
+
<ChatWidget
|
|
52
|
+
socket-url="https://tu-servidor.com"
|
|
53
|
+
id-agent="tu-agent-id"
|
|
54
|
+
api-key="tu-api-key"
|
|
55
|
+
:theme="{
|
|
56
|
+
backgroundColor: '#1a1a2e',
|
|
57
|
+
textColor: '#ffffff',
|
|
58
|
+
accentColor: '#e94560',
|
|
59
|
+
userMessageBackground: '#e94560',
|
|
60
|
+
userMessageTextColor: '#ffffff',
|
|
61
|
+
botMessageBackground: '#16213e',
|
|
62
|
+
botMessageTextColor: '#ffffff',
|
|
63
|
+
}"
|
|
64
|
+
/>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Posicion personalizada
|
|
68
|
+
|
|
69
|
+
```vue
|
|
70
|
+
<ChatWidget
|
|
71
|
+
socket-url="https://tu-servidor.com"
|
|
72
|
+
id-agent="tu-agent-id"
|
|
73
|
+
api-key="tu-api-key"
|
|
74
|
+
:position="{
|
|
75
|
+
mode: 'fixed',
|
|
76
|
+
bottom: '20px',
|
|
77
|
+
right: '20px',
|
|
78
|
+
zIndex: 9999,
|
|
79
|
+
}"
|
|
80
|
+
/>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Modos disponibles: `fixed`, `absolute`, `relative`.
|
|
84
|
+
|
|
85
|
+
## Tipos exportados
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
import type { ChatTheme, WidgetPosition, WidgetProps } from "virture-chat-live";
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Desarrollo
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npm run dev # servidor de desarrollo
|
|
95
|
+
npm run build:lib # build para npm
|
|
96
|
+
npm publish # publicar en npm
|
|
97
|
+
```
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { default as default_2 } from './App.vue';
|
|
2
|
+
import { WidgetProps } from './types/props';
|
|
3
|
+
|
|
4
|
+
export declare interface ChatTheme {
|
|
5
|
+
backgroundColor: string;
|
|
6
|
+
textColor: string;
|
|
7
|
+
accentColor: string;
|
|
8
|
+
userMessageBackground: string;
|
|
9
|
+
userMessageTextColor: string;
|
|
10
|
+
botMessageBackground: string;
|
|
11
|
+
botMessageTextColor: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { default_2 as ChatWidget }
|
|
15
|
+
export default default_2;
|
|
16
|
+
|
|
17
|
+
declare type PositionMode = "fixed" | "absolute" | "relative";
|
|
18
|
+
|
|
19
|
+
export declare interface WidgetPosition {
|
|
20
|
+
mode?: PositionMode;
|
|
21
|
+
top?: string;
|
|
22
|
+
right?: string;
|
|
23
|
+
bottom?: string;
|
|
24
|
+
left?: string;
|
|
25
|
+
zIndex?: number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { WidgetProps }
|
|
29
|
+
|
|
30
|
+
export { }
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.permission-btn[data-v-6e471f45]:hover{background-color:var(--accent-color)!important;opacity:.9;color:#fff}.feedback-slide-enter-active[data-v-6e471f45]{transition:opacity .3s ease-out,transform .3s ease-out}.feedback-slide-leave-active[data-v-6e471f45]{transition:opacity .3s ease-in,transform .3s ease-in}.feedback-slide-enter-from[data-v-6e471f45],.feedback-slide-leave-to[data-v-6e471f45]{opacity:0;transform:translate(-50%,-10px)}.message-bubble[data-v-54e82a8f] a{color:#15be86;text-decoration:underline;word-break:break-all}.message-bubble[data-v-54e82a8f] strong{font-weight:700}.message-bubble[data-v-54e82a8f] img.chat-image{max-width:100%;max-height:300px;height:auto;border-radius:8px;display:block;opacity:0;transition:opacity .3s ease-in-out;cursor:pointer}.message-bubble[data-v-54e82a8f] img.chat-image.loading{min-height:100px;background-color:#f0f0f0;opacity:1}.message-bubble[data-v-54e82a8f] img.chat-image.loaded{opacity:1}.message-bubble[data-v-54e82a8f] .image-container{margin:8px 0;max-width:100%;border-radius:8px;overflow:hidden}.message-bubble[data-v-54e82a8f] .image-container>a{display:block;text-decoration:none;border-radius:8px}.message-bubble[data-v-54e82a8f] .image-container>a:hover img.chat-image{transform:scale(1.02);filter:brightness(65%)}.message-bubble[data-v-54e82a8f] br{content:"";display:block;margin-bottom:.5em}.custom-scrollbar[data-v-1c6fc98c]::-webkit-scrollbar{width:6px}.custom-scrollbar[data-v-1c6fc98c]::-webkit-scrollbar-track{background:transparent}.custom-scrollbar[data-v-1c6fc98c]::-webkit-scrollbar-thumb{background:#0000001a;border-radius:10px}.custom-scrollbar[data-v-1c6fc98c]::-webkit-scrollbar-thumb:hover{background:#0003}@keyframes bounce-40adff16{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}textarea[data-v-f08f8d56]:focus{outline:none}textarea[data-v-f08f8d56]::-moz-placeholder{opacity:.5}textarea[data-v-f08f8d56]::placeholder{opacity:.5}.slide-fade-enter-active[data-v-70edec82]{animation:widget-slide-in-70edec82 .5s cubic-bezier(.34,1.56,.64,1)}.slide-fade-leave-active[data-v-70edec82]{animation:widget-slide-out-70edec82 .3s cubic-bezier(.4,0,1,1)}@keyframes widget-slide-in-70edec82{0%{opacity:0;transform:scale(.8) translateY(20px)}50%{transform:scale(1.02) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes widget-slide-out-70edec82{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.9) translateY(10px)}}.fade-slide-enter-active[data-v-70edec82]{animation:fade-slide-in-70edec82 .3s ease-out}.fade-slide-leave-active[data-v-70edec82]{animation:fade-slide-out-70edec82 .2s ease-in}@keyframes fade-slide-in-70edec82{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-slide-out-70edec82{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5px)}}.greet-modal-bounce-enter-active[data-v-92fc01fb]{animation:modal-bounce-in-92fc01fb .6s cubic-bezier(.68,-.55,.265,1.55)}.greet-modal-bounce-leave-active[data-v-92fc01fb]{animation:modal-bounce-out-92fc01fb .3s cubic-bezier(.4,0,1,1)}@keyframes modal-bounce-in-92fc01fb{0%{opacity:0;transform:scale(.3) translateY(20px) rotate(-5deg)}50%{transform:scale(1.05) translateY(-5px) rotate(2deg)}70%{transform:scale(.95) translateY(2px) rotate(-1deg)}to{opacity:1;transform:scale(1) translateY(0) rotate(0)}}@keyframes modal-bounce-out-92fc01fb{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.8) translateY(10px)}}@keyframes pulse-subtle-92fc01fb{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.animate-pulse-subtle[data-v-92fc01fb]{animation:pulse-subtle-92fc01fb 2s ease-in-out infinite}@keyframes ping-slow-92fc01fb{0%{transform:scale(1);opacity:.4}75%,to{transform:scale(2);opacity:0}}.animate-ping-slow[data-v-92fc01fb]{animation:ping-slow-92fc01fb 2s cubic-bezier(0,0,.2,1) infinite}@keyframes float-subtle-92fc01fb{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-float-subtle[data-v-92fc01fb]{animation:float-subtle-92fc01fb 1.8s ease-in-out infinite}*,:before,:after{--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: rgb(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: rgb(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: }.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.chat-container .pointer-events-none{pointer-events:none}.chat-container .visible{visibility:visible}.chat-container .fixed{position:fixed}.chat-container .absolute{position:absolute}.chat-container .relative{position:relative}.chat-container .inset-0{inset:0}.chat-container .-bottom-2{bottom:-.5rem}.chat-container .-right-2{right:-.5rem}.chat-container .-top-2{top:-.5rem}.chat-container .bottom-0{bottom:0}.chat-container .bottom-20{bottom:5rem}.chat-container .bottom-\[5\.3125rem\]{bottom:5.3125rem}.chat-container .bottom-full{bottom:100%}.chat-container .left-1\/2{left:50%}.chat-container .left-\[0\.3125rem\]{left:.3125rem}.chat-container .left-\[80\%\]{left:80%}.chat-container .right-0{right:0}.chat-container .top-full{top:100%}.chat-container .z-10{z-index:10}.chat-container .z-50{z-index:50}.chat-container .z-\[1000\]{z-index:1000}.chat-container .z-\[1001\]{z-index:1001}.chat-container .z-\[1002\]{z-index:1002}.chat-container .z-\[9999\]{z-index:9999}.chat-container .m-0{margin:0}.chat-container .mx-0\.5{margin-left:.125rem;margin-right:.125rem}.chat-container .my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.chat-container .my-6{margin-top:1.5rem;margin-bottom:1.5rem}.chat-container .-mr-1{margin-right:-.25rem}.chat-container .-mt-1{margin-top:-.25rem}.chat-container .mb-2{margin-bottom:.5rem}.chat-container .ml-3{margin-left:.75rem}.chat-container .ml-auto{margin-left:auto}.chat-container .mr-auto{margin-right:auto}.chat-container .mt-0\.5{margin-top:.125rem}.chat-container .mt-1{margin-top:.25rem}.chat-container .mt-2{margin-top:.5rem}.chat-container .block{display:block}.chat-container .inline-block{display:inline-block}.chat-container .flex{display:flex}.chat-container .grid{display:grid}.chat-container .hidden{display:none}.chat-container .aspect-square{aspect-ratio:1 / 1}.chat-container .h-10{height:2.5rem}.chat-container .h-11{height:2.75rem}.chat-container .h-12{height:3rem}.chat-container .h-14{height:3.5rem}.chat-container .h-2{height:.5rem}.chat-container .h-2\.5{height:.625rem}.chat-container .h-3{height:.75rem}.chat-container .h-3\.5{height:.875rem}.chat-container .h-4{height:1rem}.chat-container .h-48{height:12rem}.chat-container .h-5{height:1.25rem}.chat-container .h-7{height:1.75rem}.chat-container .h-8{height:2rem}.chat-container .h-\[1\.875rem\]{height:1.875rem}.chat-container .h-\[100dvh\]{height:100dvh}.chat-container .h-\[3\.75rem\]{height:3.75rem}.chat-container .h-auto{height:auto}.chat-container .h-full{height:100%}.chat-container .max-h-32{max-height:8rem}.chat-container .max-h-96{max-height:24rem}.chat-container .min-h-\[10\%\]{min-height:10%}.chat-container .min-h-\[44px\]{min-height:44px}.chat-container .min-h-\[72px\]{min-height:72px}.chat-container .w-10{width:2.5rem}.chat-container .w-12{width:3rem}.chat-container .w-14{width:3.5rem}.chat-container .w-2{width:.5rem}.chat-container .w-2\.5{width:.625rem}.chat-container .w-3{width:.75rem}.chat-container .w-3\.5{width:.875rem}.chat-container .w-4{width:1rem}.chat-container .w-5{width:1.25rem}.chat-container .w-7{width:1.75rem}.chat-container .w-\[1\.875rem\]{width:1.875rem}.chat-container .w-\[100dvw\]{width:100dvw}.chat-container .w-\[3\.75rem\]{width:3.75rem}.chat-container .w-\[65vw\]{width:65vw}.chat-container .w-full{width:100%}.chat-container .min-w-0{min-width:0px}.chat-container .min-w-\[2\.5rem\]{min-width:2.5rem}.chat-container .min-w-\[28px\]{min-width:28px}.chat-container .min-w-\[32px\]{min-width:32px}.chat-container .min-w-\[44px\]{min-width:44px}.chat-container .max-w-\[12rem\]{max-width:12rem}.chat-container .max-w-\[18\.75rem\]{max-width:18.75rem}.chat-container .max-w-\[75\%\]{max-width:75%}.chat-container .flex-1{flex:1 1 0%}.chat-container .flex-shrink-0,.chat-container .shrink-0{flex-shrink:0}.chat-container .grow{flex-grow:1}.chat-container .-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.chat-container .animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.chat-container .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.chat-container .animate-spin{animation:spin 1s linear infinite}.chat-container .cursor-pointer{cursor:pointer}.chat-container .resize-none{resize:none}.chat-container .resize{resize:both}.chat-container .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.chat-container .flex-row-reverse{flex-direction:row-reverse}.chat-container .flex-col{flex-direction:column}.chat-container .items-start{align-items:flex-start}.chat-container .items-end{align-items:flex-end}.chat-container .items-center{align-items:center}.chat-container .justify-end{justify-content:flex-end}.chat-container .justify-center{justify-content:center}.chat-container .justify-between{justify-content:space-between}.chat-container .gap-0\.5{gap:.125rem}.chat-container .gap-1{gap:.25rem}.chat-container .gap-1\.5{gap:.375rem}.chat-container .gap-2{gap:.5rem}.chat-container .gap-3{gap:.75rem}.chat-container .overflow-hidden{overflow:hidden}.chat-container .overflow-y-auto{overflow-y:auto}.chat-container .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-container .whitespace-nowrap{white-space:nowrap}.chat-container .break-words{overflow-wrap:break-word}.chat-container .rounded-2xl{border-radius:1rem}.chat-container .rounded-\[16px_16px_16px_4px\]{border-radius:16px 16px 16px 4px}.chat-container .rounded-full{border-radius:9999px}.chat-container .rounded-lg{border-radius:.5rem}.chat-container .rounded-none{border-radius:0}.chat-container .rounded-xl{border-radius:.75rem}.chat-container .rounded-bl-sm{border-bottom-left-radius:.125rem}.chat-container .border{border-width:1px}.chat-container .border-4{border-width:4px}.chat-container .border-\[3px\]{border-width:3px}.chat-container .border-b{border-bottom-width:1px}.chat-container .border-none{border-style:none}.chat-container .border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.chat-container .border-transparent{border-color:transparent}.chat-container .border-b-slate-800{--tw-border-opacity: 1;border-bottom-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.chat-container .border-t-blue-500{--tw-border-opacity: 1;border-top-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.chat-container .border-t-slate-800{--tw-border-opacity: 1;border-top-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.chat-container .bg-black\/40{background-color:#0006}.chat-container .bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.chat-container .bg-gray-300\/50{background-color:#d1d5db80}.chat-container .bg-gray-800\/30{background-color:#1f29374d}.chat-container .bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.chat-container .bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.chat-container .bg-transparent{background-color:transparent}.chat-container .bg-white\/20{background-color:#fff3}.chat-container .object-contain{-o-object-fit:contain;object-fit:contain}.chat-container .object-cover{-o-object-fit:cover;object-fit:cover}.chat-container .p-0{padding:0}.chat-container .p-1\.5{padding:.375rem}.chat-container .p-2{padding:.5rem}.chat-container .p-3{padding:.75rem}.chat-container .p-5{padding:1.25rem}.chat-container .px-1{padding-left:.25rem;padding-right:.25rem}.chat-container .px-2{padding-left:.5rem;padding-right:.5rem}.chat-container .px-3{padding-left:.75rem;padding-right:.75rem}.chat-container .px-4{padding-left:1rem;padding-right:1rem}.chat-container .px-5{padding-left:1.25rem;padding-right:1.25rem}.chat-container .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.chat-container .py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.chat-container .py-2{padding-top:.5rem;padding-bottom:.5rem}.chat-container .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.chat-container .py-3{padding-top:.75rem;padding-bottom:.75rem}.chat-container .pt-1\.5{padding-top:.375rem}.chat-container .text-left{text-align:left}.chat-container .text-center{text-align:center}.chat-container .text-right{text-align:right}.chat-container .font-sans{font-family:Inter,Segoe UI,Open Sans,-apple-system,BlinkMacSystemFont,sans-serif}.chat-container .text-\[10px\]{font-size:10px}.chat-container .text-\[11px\]{font-size:11px}.chat-container .text-base{font-size:1rem;line-height:1.5rem}.chat-container .text-lg{font-size:1.125rem;line-height:1.75rem}.chat-container .text-sm{font-size:.875rem;line-height:1.25rem}.chat-container .text-xl{font-size:1.25rem;line-height:1.75rem}.chat-container .text-xs{font-size:.75rem;line-height:1rem}.chat-container .font-bold{font-weight:700}.chat-container .font-medium{font-weight:500}.chat-container .font-semibold{font-weight:600}.chat-container .leading-relaxed{line-height:1.625}.chat-container .text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.chat-container .text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.chat-container .text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.chat-container .text-purple-300{--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.chat-container .text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.chat-container .text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.chat-container .underline{text-decoration-line:underline}.chat-container .opacity-0{opacity:0}.chat-container .opacity-100{opacity:1}.chat-container .opacity-50{opacity:.5}.chat-container .opacity-70{opacity:.7}.chat-container .opacity-90{opacity:.9}.chat-container .shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px 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-container .shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-container .shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 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-container .shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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-container .outline-none{outline:2px solid transparent;outline-offset:2px}.chat-container .outline{outline-style:solid}.chat-container .ring{--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(3px + 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-container .ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.chat-container .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-container .ring-black\/10{--tw-ring-color: rgb(0 0 0 / .1) }.chat-container .ring-black\/5{--tw-ring-color: rgb(0 0 0 / .05) }.chat-container .ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1)) }.chat-container .ring-offset-2{--tw-ring-offset-width: 2px }.chat-container .drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));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-container .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.chat-container .backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-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);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-container .backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-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);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-container .transition{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);transition-duration:.15s}.chat-container .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.chat-container .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.chat-container .duration-100{transition-duration:.1s}.chat-container .duration-150{transition-duration:.15s}.chat-container .duration-200{transition-duration:.2s}.chat-container .duration-300{transition-duration:.3s}.chat-container .ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.chat-container .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.chat-container .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.chat-container .hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .hover\:rotate-90:hover{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .hover\:scale-\[1\.05\]:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .hover\:bg-black\/5:hover{background-color:#0000000d}.chat-container .hover\:bg-gray-800\/50:hover{background-color:#1f293780}.chat-container .hover\:bg-slate-600:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.chat-container .hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-container .hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-container .hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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-container .focus\:ring-2: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(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-container .active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container .disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.chat-container .disabled\:opacity-40:disabled{opacity:.4}.chat-container .disabled\:hover\:scale-100:hover:disabled{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container :is(.group:hover .group-hover\:scale-110){--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container :is(.group:hover .group-hover\:scale-\[1\.02\]){--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.chat-container :is(.group:hover .group-hover\:brightness-75){--tw-brightness: brightness(.75);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)}@media(min-width:640px){.chat-container .sm\:max-w-\[85\%\]{max-width:85%}}@media(min-width:1024px){.chat-container .lg\:relative{position:relative}.chat-container .lg\:bottom-20{bottom:5rem}.chat-container .lg\:left-0{left:0}.chat-container .lg\:m-0{margin:0}.chat-container .lg\:h-\[70dvh\]{height:70dvh}.chat-container .lg\:w-\[22vw\]{width:22vw}.chat-container .lg\:w-\[35vw\]{width:35vw}.chat-container .lg\:rounded-md{border-radius:.375rem}.chat-container .lg\:shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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)}}@media(min-width:1280px){.chat-container .xl\:h-\[68dvh\]{height:68dvh}.chat-container .xl\:w-\[23vw\]{width:23vw}}.chat-container[data-v-ad017214]{box-sizing:border-box}@media(max-width:800px){.chat-container.chat-fixed[data-v-ad017214]{left:10px}}@media(max-width:768px){.chat-container.chat-fixed.chat-open[data-v-ad017214]{position:fixed!important;inset:0!important;z-index:1000}.chat-container.chat-fixed[data-v-ad017214]:not(.chat-open){position:fixed!important;inset:auto auto 20px 20px!important}.chat-container.chat-fixed.chat-open button[class*=rounded-full][data-v-ad017214]{display:none}.chat-container.chat-fixed.chat-open>div[data-v-ad017214]:last-child{position:fixed;inset:0;height:100dvh;width:100dvw}}.typing-dot[data-v-ad017214]{animation:typing-bounce-ad017214 1s ease-in-out infinite}@keyframes typing-bounce-ad017214{0%,60%,to{opacity:.3;transform:translateY(0) scale(1)}30%{opacity:1;transform:translateY(-6px) scale(1.2)}}.typing-bounce-enter-active[data-v-ad017214]{animation:typing-pop-in-ad017214 .4s cubic-bezier(.68,-.55,.265,1.55)}.typing-bounce-leave-active[data-v-ad017214]{animation:typing-pop-out-ad017214 .2s cubic-bezier(.4,0,1,1)}@keyframes typing-pop-in-ad017214{0%{opacity:0;transform:scale(.5) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes typing-pop-out-ad017214{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.8) translateY(5px)}}.chat-button-appear-enter-active[data-v-ad017214]{transition:opacity .3s ease-out}.chat-button-appear-leave-active[data-v-ad017214]{transition:opacity .2s ease-in}.chat-button-appear-enter-from[data-v-ad017214],.chat-button-appear-leave-to[data-v-ad017214]{opacity:0}.chat-button:hover .chat-button-ripple[data-v-ad017214]{animation:ripple-effect-ad017214 1.5s ease-out infinite}@keyframes ripple-effect-ad017214{0%{box-shadow:0 0 0 0 currentColor;opacity:.6}50%{box-shadow:0 0 0 15px currentColor;opacity:.3}to{box-shadow:0 0 0 30px currentColor;opacity:0}}.chat-button:hover .w-7[data-v-ad017214]{transform:rotate(15deg)}
|