iatoolkit 0.10.0__py3-none-any.whl → 0.10.2__py3-none-any.whl
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.
Potentially problematic release.
This version of iatoolkit might be problematic. Click here for more details.
- iatoolkit/services/branding_service.py +18 -7
- iatoolkit/static/styles/chat_iatoolkit.css +78 -394
- iatoolkit/templates/chat.html +16 -9
- {iatoolkit-0.10.0.dist-info → iatoolkit-0.10.2.dist-info}/METADATA +1 -1
- {iatoolkit-0.10.0.dist-info → iatoolkit-0.10.2.dist-info}/RECORD +7 -7
- {iatoolkit-0.10.0.dist-info → iatoolkit-0.10.2.dist-info}/WHEEL +0 -0
- {iatoolkit-0.10.0.dist-info → iatoolkit-0.10.2.dist-info}/top_level.txt +0 -0
|
@@ -20,9 +20,14 @@ class BrandingService:
|
|
|
20
20
|
"header_background_color": "#FFFFFF", # Fondo blanco por defecto
|
|
21
21
|
"header_text_color": "#6C757D", # Color de texto 'muted' de Bootstrap
|
|
22
22
|
|
|
23
|
-
# Estilos para el nombre de la compañía
|
|
24
|
-
"
|
|
25
|
-
"
|
|
23
|
+
# Estilos para el texto primario (ej. nombre de la compañía)
|
|
24
|
+
"primary_font_weight": "bold",
|
|
25
|
+
"primary_font_size": "1rem",
|
|
26
|
+
|
|
27
|
+
# Estilos para el texto secundario (ej. ID de usuario)
|
|
28
|
+
"secondary_font_weight": "600", # Semibold
|
|
29
|
+
"secondary_font_size": "0.875rem" # Equivale a la clase 'small' de Bootstrap
|
|
30
|
+
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
def get_company_branding(self, company: Company | None) -> dict:
|
|
@@ -48,13 +53,19 @@ class BrandingService:
|
|
|
48
53
|
f"background-color: {final_branding_values['header_background_color']}; "
|
|
49
54
|
f"color: {final_branding_values['header_text_color']};"
|
|
50
55
|
)
|
|
51
|
-
|
|
52
|
-
f"font-weight: {final_branding_values['
|
|
53
|
-
f"font-size: {final_branding_values['
|
|
56
|
+
primary_text_style = (
|
|
57
|
+
f"font-weight: {final_branding_values['primary_font_weight']}; "
|
|
58
|
+
f"font-size: {final_branding_values['primary_font_size']};"
|
|
59
|
+
)
|
|
60
|
+
secondary_text_style = (
|
|
61
|
+
f"font-weight: {final_branding_values['secondary_font_weight']}; "
|
|
62
|
+
f"font-size: {final_branding_values['secondary_font_size']};"
|
|
54
63
|
)
|
|
55
64
|
|
|
56
65
|
return {
|
|
57
66
|
"name": company.name if company else "IAToolkit",
|
|
58
67
|
"header_style": header_style,
|
|
59
|
-
"
|
|
68
|
+
"header_text_color": final_branding_values['header_text_color'],
|
|
69
|
+
"primary_text_style": primary_text_style,
|
|
70
|
+
"secondary_text_style": secondary_text_style
|
|
60
71
|
}
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
overflow-y: auto;
|
|
17
17
|
display: flex;
|
|
18
18
|
flex-direction: column;
|
|
19
|
+
background-color: #fff; /* Fondo blanco para el contenedor del chat */
|
|
20
|
+
box-shadow: 0 0 10px rgba(0,0,0,0.1); /* Sombra sutil */
|
|
19
21
|
}
|
|
20
22
|
.answer-section, .error-section, .document-section {
|
|
21
23
|
max-width: 100%;
|
|
@@ -23,14 +25,6 @@
|
|
|
23
25
|
margin-bottom: 10px;
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
.input-container {
|
|
27
|
-
flex: 1;
|
|
28
|
-
display: flex;
|
|
29
|
-
/* Organiza los elementos internos (la fila de inputs y el textarea) uno sobre otro */
|
|
30
|
-
flex-direction: column;
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
28
|
/* Estilos para el modal de archivos y ordenar icono */
|
|
35
29
|
.list-group-item {
|
|
36
30
|
display: flex;
|
|
@@ -64,52 +58,13 @@
|
|
|
64
58
|
margin-left: auto;
|
|
65
59
|
}
|
|
66
60
|
|
|
67
|
-
/* Titulo del modal */
|
|
68
|
-
.modal-title {
|
|
69
|
-
font-size: 1.5rem;
|
|
70
|
-
font-weight: bold;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
61
|
/* Para el icono de eliminar del modal */
|
|
75
62
|
.remove-file-btn i {
|
|
76
63
|
color: #c82333
|
|
77
64
|
}
|
|
78
65
|
|
|
79
|
-
/* Modern Header Mejorado */
|
|
80
|
-
.modern-header {
|
|
81
|
-
display: flex;
|
|
82
|
-
justify-content: space-between;
|
|
83
|
-
align-items: center;
|
|
84
|
-
padding: 12px 30px; /* Espaciado optimizado */
|
|
85
|
-
background: linear-gradient(90deg, #3388ff, #003399); /* Azul más claro al inicio */
|
|
86
|
-
color: #ffffff; /* Texto blanco */
|
|
87
|
-
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.08); /* Sombra más sutil */
|
|
88
|
-
position: sticky;
|
|
89
|
-
top: 0;
|
|
90
|
-
z-index: 1000;
|
|
91
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.2); /* Línea blanca sutil abajo */
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/* Ajustar el contenedor del logo */
|
|
95
|
-
.modern-header .logo-section {
|
|
96
|
-
display: flex;
|
|
97
|
-
align-items: center; /* Centra verticalmente la imagen dentro del header */
|
|
98
|
-
max-height: 100%; /* Asegura que siga el tamaño del contenedor */
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/* Estilo general para la imagen del logo */
|
|
102
|
-
.modern-header .logo-section img {
|
|
103
|
-
max-height: 60px; /* Ajusta el tamaño máximo del logo */
|
|
104
|
-
max-width: 100%; /* Evita desbordamiento horizontal */
|
|
105
|
-
height: auto; /* Mantiene la proporción de la imagen */
|
|
106
|
-
object-fit: contain; /* Evita deformaciones */
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
66
|
/* Estilo del mensaje ingresado por el usuario */
|
|
111
67
|
#chat-container .message {
|
|
112
|
-
/* Propiedades de layout y forma (se mantienen del original) */
|
|
113
68
|
margin-top: 10px;
|
|
114
69
|
max-width: 75%;
|
|
115
70
|
min-width: fit-content;
|
|
@@ -120,15 +75,13 @@
|
|
|
120
75
|
align-items: center;
|
|
121
76
|
align-self: flex-end;
|
|
122
77
|
text-align: left;
|
|
123
|
-
|
|
124
|
-
/* Propiedades estéticas (adoptadas de .llm-output) */
|
|
125
78
|
padding: 15px;
|
|
126
79
|
font-family: Arial, sans-serif;
|
|
127
80
|
font-size: 15px;
|
|
128
81
|
line-height: 1.5;
|
|
129
82
|
color: #333;
|
|
130
|
-
background-color: #ffffff;
|
|
131
|
-
border: 1px solid #ddd;
|
|
83
|
+
background-color: #ffffff;
|
|
84
|
+
border: 1px solid #ddd;
|
|
132
85
|
}
|
|
133
86
|
|
|
134
87
|
|
|
@@ -142,169 +95,45 @@
|
|
|
142
95
|
}
|
|
143
96
|
|
|
144
97
|
.error-section {
|
|
145
|
-
|
|
146
|
-
align-self: flex-start; /* Alinea a la izquierda, como los mensajes del asistente */
|
|
98
|
+
align-self: flex-start;
|
|
147
99
|
max-width: 75%;
|
|
148
|
-
min-width: fit-content;
|
|
100
|
+
min-width: fit-content;
|
|
149
101
|
width: fit-content;
|
|
150
102
|
margin-top: 10px;
|
|
151
103
|
display: flex;
|
|
152
|
-
align-items: flex-start;
|
|
153
|
-
gap: 12px;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
border:
|
|
159
|
-
padding: 12px 18px; /* Espaciado interno optimizado */
|
|
160
|
-
border-radius: 0 12px 12px 12px; /* Forma de burbuja (esquina superior izquierda recta) */
|
|
104
|
+
align-items: flex-start;
|
|
105
|
+
gap: 12px;
|
|
106
|
+
background-color: #fff0f0;
|
|
107
|
+
color: #5c0f0f;
|
|
108
|
+
border: 1px solid #ffcccc;
|
|
109
|
+
padding: 12px 18px;
|
|
110
|
+
border-radius: 0 12px 12px 12px;
|
|
161
111
|
font-family: Arial, sans-serif;
|
|
162
112
|
font-size: 15px;
|
|
163
113
|
line-height: 1.5;
|
|
164
|
-
word-wrap: break-word;
|
|
165
|
-
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
114
|
+
word-wrap: break-word;
|
|
115
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
166
116
|
}
|
|
167
117
|
|
|
168
118
|
.error-section i {
|
|
169
|
-
color: #d32f2f;
|
|
170
|
-
font-size: 1.2em;
|
|
171
|
-
padding-top: 2px;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
.list-unstyled {
|
|
176
|
-
margin: 0;
|
|
177
|
-
padding: 0;
|
|
178
|
-
list-style: none;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/* Ajustes generales para la sección de validación */
|
|
182
|
-
.document-section {
|
|
183
|
-
display: flex;
|
|
184
|
-
border-radius: 15px;
|
|
185
|
-
margin-top: 10px;
|
|
186
|
-
padding: 10px;
|
|
187
|
-
text-align: left;
|
|
188
|
-
background-color: #ffffff; /* Fondo blanco */
|
|
189
|
-
flex-direction: column; /* Asegura que las filas se apilen verticalmente */
|
|
190
|
-
max-width: 70%;
|
|
191
|
-
border: 1px solid #d6d6d6; /* Borde neutro */
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.row {
|
|
195
|
-
display: flex;
|
|
196
|
-
flex-wrap: nowrap; /* Evitar que los elementos salten de línea */
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
.col-auto {
|
|
200
|
-
display: inline-block; /* Asegura que ocupen solo el ancho necesario */
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.document-section .rejection-reasons {
|
|
204
|
-
flex: 1;
|
|
205
|
-
margin-top: 10px;
|
|
206
|
-
margin-left: 25px;
|
|
207
|
-
display: block;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
.rejection-reasons ul {
|
|
211
|
-
margin-left: 15px; /* Sangría para las listas */
|
|
212
|
-
padding: 0;
|
|
213
|
-
list-style: disc; /* Estilo de punto para las viñetas */
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.document-section ul {
|
|
217
|
-
margin-left: 10px; /* Sangría para listas */
|
|
218
|
-
padding: 0;
|
|
219
|
-
list-style: disc inside; /* Estilo de viñetas alineadas */
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
.input-container {
|
|
224
|
-
width: 100%;
|
|
225
|
-
display: flex;
|
|
226
|
-
justify-content: center;
|
|
119
|
+
color: #d32f2f;
|
|
120
|
+
font-size: 1.2em;
|
|
121
|
+
padding-top: 2px;
|
|
227
122
|
}
|
|
228
123
|
|
|
229
124
|
#question {
|
|
230
125
|
width: 100%;
|
|
231
126
|
font-size: 15px;
|
|
232
|
-
background: #f8f9fa;
|
|
233
|
-
color: #202123;
|
|
127
|
+
background: #f8f9fa;
|
|
128
|
+
color: #202123;
|
|
234
129
|
border: 1px solid #d1d5db;
|
|
235
|
-
transition:
|
|
130
|
+
transition: all 0.3s ease-in-out;
|
|
236
131
|
}
|
|
237
132
|
|
|
238
133
|
#question:focus {
|
|
239
134
|
outline: none;
|
|
240
|
-
border-color: #
|
|
241
|
-
box-shadow: 0 0
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
.filepond--panel {
|
|
246
|
-
padding: 0; /* Elimina cualquier relleno adicional del contenedor */
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/* bordered drop area */
|
|
250
|
-
.filepond--panel-root {
|
|
251
|
-
background-color: transparent;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/* Contenedor de los archivos cargados (FilePond) */
|
|
255
|
-
.filepond-container {
|
|
256
|
-
width: 100%; /* Se estira todo lo que pueda */
|
|
257
|
-
border: 2px dashed #adb5bd; /* Gris, igual al textarea */
|
|
258
|
-
border-radius: 5px; /* Igual que el textarea */
|
|
259
|
-
padding: 10px;
|
|
260
|
-
min-height: 70px; /* Mantiene altura mínima */
|
|
261
|
-
max-height: 200px; /* Evita que crezca demasiado */
|
|
262
|
-
overflow-y: auto; /* Permite scroll si es necesario */
|
|
263
|
-
background-color: #f8f9fa; /* Gris claro, igual al textarea */
|
|
264
|
-
display: flex;
|
|
265
|
-
align-items: center;
|
|
266
|
-
justify-content: center;
|
|
267
|
-
text-align: center;
|
|
268
|
-
color: #6c757d; /* Color de prompt_llm.txt sutil */
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
.filepond--item {
|
|
272
|
-
width: calc(40% - 0.5em);/* Ancho dinámico basado en el contenido */
|
|
273
|
-
border-radius: 5px; /* Bordes curvados */
|
|
274
|
-
text-align: left; /* Alinea el prompt_llm.txt a la izquierda */
|
|
275
|
-
white-space: nowrap; /* Evita dividir el prompt_llm.txt en varias líneas */
|
|
276
|
-
overflow: hidden; /* Oculta cualquier desbordamiento */
|
|
277
|
-
text-overflow: ellipsis; /* Muestra puntos suspensivos si el prompt_llm.txt es muy largo */
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
.filepond--drop-label {
|
|
281
|
-
display: none; /* Opcional: Oculta el mensaje de arrastrar y soltar si no lo necesitas */
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/* the text color of the file status and info labels */
|
|
285
|
-
.filepond--file {
|
|
286
|
-
color: black;
|
|
287
|
-
background-color: #d1e3f1;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
.custom-confirm-button {
|
|
291
|
-
background-color: #0066cc;
|
|
292
|
-
color: white; /* Color del prompt_llm.txt */
|
|
293
|
-
border: none; /* Sin borde */
|
|
294
|
-
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* Sombra */
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
.custom-confirm-button:hover {
|
|
298
|
-
background-color: #0066cc; /* Color al pasar el mouse */
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
.custom-cancel-button {
|
|
302
|
-
background-color: #dc3545; /* Color de fondo (rojo) */
|
|
303
|
-
color: white; /* Color del prompt_llm.txt */
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
.custom-cancel-button:hover {
|
|
307
|
-
background-color: #c82333; /* Color al pasar el mouse */
|
|
135
|
+
border-color: #80bdff;
|
|
136
|
+
box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
|
|
308
137
|
}
|
|
309
138
|
|
|
310
139
|
/* 1. La caja principal que envuelve toda el área de entrada */
|
|
@@ -341,17 +170,20 @@
|
|
|
341
170
|
min-height: 38px;
|
|
342
171
|
}
|
|
343
172
|
|
|
344
|
-
/* 5. Estilo UNIFICADO para
|
|
173
|
+
/* 5. NUEVO Estilo UNIFICADO para los enlaces de iconos de acción */
|
|
174
|
+
.action-icon-style {
|
|
175
|
+
color: #6c757d; /* Color gris estándar por defecto */
|
|
176
|
+
transition: opacity 0.2s ease-in-out;
|
|
177
|
+
}
|
|
178
|
+
.action-icon-style:hover {
|
|
179
|
+
opacity: 0.75; /* Efecto hover sutil */
|
|
180
|
+
}
|
|
345
181
|
.action-icon-style i {
|
|
346
|
-
|
|
347
|
-
font-size: 1.5rem; /* Tamaño uniforme */
|
|
182
|
+
font-size: 1.5rem;
|
|
348
183
|
vertical-align: middle;
|
|
349
|
-
transition: color 0.2s ease-in-out;
|
|
350
|
-
}
|
|
351
|
-
.action-icon-style:hover i {
|
|
352
|
-
color: #343a40; /* El color del icono cambia en hover */
|
|
353
184
|
}
|
|
354
|
-
|
|
185
|
+
|
|
186
|
+
/* Aplica a los iconos de la barra de entrada inferior */
|
|
355
187
|
.chat-input-bar .d-flex a i {
|
|
356
188
|
font-size: 1.5rem;
|
|
357
189
|
vertical-align: middle;
|
|
@@ -362,7 +194,6 @@
|
|
|
362
194
|
color: #343a40;
|
|
363
195
|
}
|
|
364
196
|
|
|
365
|
-
|
|
366
197
|
/* 6. Anulación de color y tamaño para el botón de ENVIAR */
|
|
367
198
|
.send-button-icon i {
|
|
368
199
|
color: #0d6efd !important; /* Azul (importante para anular) */
|
|
@@ -384,181 +215,85 @@
|
|
|
384
215
|
}
|
|
385
216
|
}
|
|
386
217
|
|
|
387
|
-
.edit-icon {
|
|
388
|
-
margin-left: 8px; /* Ajusta según el espacio deseado */
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
.message:hover .edit-icon {
|
|
392
|
-
color: #007bff; /* Un color azul que contrasta bien con el fondo blanco */
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
#chat-container {
|
|
396
|
-
background-color: #fff; /* Fondo blanco para el contenedor del chat */
|
|
397
|
-
box-shadow: 0 0 10px rgba(0,0,0,0.1); /* Sombra sutil */
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
#question {
|
|
401
|
-
transition: box-shadow 0.3s ease-in-out;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
#question:focus {
|
|
405
|
-
border-color: #80bdff;
|
|
406
|
-
box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
|
|
410
218
|
.filepond--credits {
|
|
411
219
|
display: none; /* Ocultar créditos de FilePond */
|
|
412
220
|
}
|
|
413
221
|
|
|
414
|
-
/* Si FilePond sigue mostrando algo, intentar ocultarlo más agresivamente. */
|
|
415
|
-
/* Se accede al contenedor principal de FilePond que se crea automáticamente */
|
|
416
|
-
.filepond--root {
|
|
417
|
-
display: none;
|
|
418
|
-
visibility: hidden;
|
|
419
|
-
height: 0;
|
|
420
|
-
width: 0;
|
|
421
|
-
overflow: hidden;
|
|
422
|
-
position: absolute; /* Sacarlo del flujo del documento */
|
|
423
|
-
left: -9999px; /* Moverlo fuera de la pantalla */
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
/* Estilos para la barra de tareas*/
|
|
427
|
-
.company-section {
|
|
428
|
-
padding: 10px;
|
|
429
|
-
background-color: #f8f9fa;
|
|
430
|
-
border-radius: 10px;
|
|
431
|
-
border: 1px solid #e9ecef;
|
|
432
|
-
margin-right: 10px;
|
|
433
|
-
margin-bottom: 5px;
|
|
434
|
-
text-align: right
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
|
|
438
222
|
/* Estilo para el input de datos específicos cuando tiene contenido */
|
|
439
223
|
.specific-data-input.has-content {
|
|
440
|
-
background-color: #e9f3ed !important;
|
|
441
|
-
border-color: #198754 !important;
|
|
442
|
-
border-width: 2px !important;
|
|
443
|
-
color: #0a5833 !important;
|
|
444
|
-
font-weight: 500 !important;
|
|
445
|
-
box-shadow: 0 1px 4px rgba(25, 135, 84, 0.2) !important;
|
|
224
|
+
background-color: #e9f3ed !important;
|
|
225
|
+
border-color: #198754 !important;
|
|
226
|
+
border-width: 2px !important;
|
|
227
|
+
color: #0a5833 !important;
|
|
228
|
+
font-weight: 500 !important;
|
|
229
|
+
box-shadow: 0 1px 4px rgba(25, 135, 84, 0.2) !important;
|
|
446
230
|
}
|
|
447
231
|
|
|
448
232
|
/* Ajuste para la etiqueta flotante */
|
|
449
233
|
.specific-data-input.has-content + label {
|
|
450
|
-
color: #0a5833 !important;
|
|
234
|
+
color: #0a5833 !important;
|
|
451
235
|
}
|
|
452
236
|
|
|
453
237
|
/* Estilo para el botón de limpiar */
|
|
454
238
|
.clear-specific-data-button {
|
|
455
239
|
position: absolute;
|
|
456
240
|
top: 50%;
|
|
457
|
-
right: 15px;
|
|
458
|
-
transform: translateY(-50%);
|
|
459
|
-
z-index: 5;
|
|
241
|
+
right: 15px;
|
|
242
|
+
transform: translateY(-50%);
|
|
243
|
+
z-index: 5;
|
|
460
244
|
padding: 0.25rem 0.5rem;
|
|
461
245
|
color: #6c757d;
|
|
462
246
|
background-color: transparent;
|
|
463
|
-
border: none;
|
|
247
|
+
border: none;
|
|
464
248
|
}
|
|
465
249
|
|
|
466
250
|
.clear-specific-data-button:hover {
|
|
467
251
|
color: #212529;
|
|
468
252
|
}
|
|
469
253
|
|
|
470
|
-
|
|
471
|
-
/* Estilo personalizado para un input más suave */
|
|
472
|
-
.form-control-soft {
|
|
473
|
-
background-color: #f8f9fa; /* Fondo gris muy claro, como en la opción 2 */
|
|
474
|
-
border-color: #dee2e6; /* Un borde inicial muy sutil */
|
|
475
|
-
transition: all 0.2s ease-in-out; /* Transición suave para los efectos */
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
/* Efecto al hacer clic (focus) */
|
|
479
|
-
.form-control-soft:focus {
|
|
480
|
-
border-color: #198754; /* El borde toma el color verde 'success' de Bootstrap */
|
|
481
|
-
box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); /* Resplandor a juego con el borde verde */
|
|
482
|
-
color: #000;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
.btn-dropdown-soft {
|
|
486
|
-
background-color: #f8f9fa; /* Mismo fondo gris claro que el input */
|
|
487
|
-
border: 1px solid #dee2e6; /* Borde inicial sutil */
|
|
488
|
-
color: #495057; /* Color de texto estándar */
|
|
489
|
-
transition: all 0.2s ease-in-out; /* Transición suave */
|
|
490
|
-
height: 100%; /* Asegura que tenga la misma altura que el input de al lado */
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
/* Efecto cuando el menú está abierto (similar al :focus del input) */
|
|
494
|
-
.btn-dropdown-soft[aria-expanded="true"] {
|
|
495
|
-
background-color: #ffffff;
|
|
496
|
-
border-color: #198754; /* Borde verde 'success' */
|
|
497
|
-
box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); /* Resplandor verde */
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
/* Pequeño ajuste al pasar el ratón para que no cambie de color a menos que esté activo */
|
|
501
|
-
.btn-dropdown-soft:hover {
|
|
502
|
-
background-color: #f8f9fa;
|
|
503
|
-
border-color: #ced4da;
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
/* 2. Estilo para el menú desplegable y sus ítems */
|
|
507
254
|
.dropdown-menu-soft {
|
|
508
255
|
background-color: #f8f9fa;
|
|
509
256
|
border-color: #dee2e6;
|
|
510
257
|
}
|
|
511
258
|
|
|
512
|
-
/* Estilo y efecto para cada opción de la lista */
|
|
513
259
|
.dropdown-menu-soft .dropdown-item {
|
|
514
|
-
transition: all 0.15s ease-in-out;
|
|
260
|
+
transition: all 0.15s ease-in-out;
|
|
515
261
|
}
|
|
516
262
|
|
|
517
263
|
.dropdown-menu-soft .dropdown-item:hover,
|
|
518
264
|
.dropdown-menu-soft .dropdown-item:focus {
|
|
519
|
-
color: #ffffff;
|
|
520
|
-
background-color: #495057;
|
|
521
|
-
padding-left: 1.5rem;
|
|
522
|
-
transition: all 0.15s ease-in-out;
|
|
265
|
+
color: #ffffff;
|
|
266
|
+
background-color: #495057;
|
|
267
|
+
padding-left: 1.5rem;
|
|
268
|
+
transition: all 0.15s ease-in-out;
|
|
523
269
|
}
|
|
524
270
|
|
|
525
|
-
/* Estilo para las cabeceras de las categorías dentro del menú */
|
|
526
271
|
.dropdown-menu-soft .dropdown-header {
|
|
527
|
-
background-color: #495057;
|
|
528
|
-
color: #ffffff;
|
|
529
|
-
font-weight: 600;
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
font-size: 0.85rem; /* Tamaño de fuente ajustado */
|
|
536
|
-
text-transform: none; /* Texto en formato normal para una apariencia más limpia */
|
|
272
|
+
background-color: #495057;
|
|
273
|
+
color: #ffffff;
|
|
274
|
+
font-weight: 600;
|
|
275
|
+
margin: 4px;
|
|
276
|
+
padding: 0.4rem 1rem;
|
|
277
|
+
border-radius: 4px;
|
|
278
|
+
font-size: 0.85rem;
|
|
279
|
+
text-transform: none;
|
|
537
280
|
letter-spacing: normal;
|
|
538
|
-
border-bottom: none;
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
/* Estilo para el texto de placeholder */
|
|
543
|
-
.form-control-soft::placeholder {
|
|
544
|
-
color: #6c757d; /* Color de texto gris estándar */
|
|
545
|
-
opacity: 1;
|
|
281
|
+
border-bottom: none;
|
|
546
282
|
}
|
|
547
283
|
|
|
548
284
|
#clear-selection-button {
|
|
549
285
|
position: absolute;
|
|
550
286
|
top: 50%;
|
|
551
|
-
/* Lo movemos 45px desde la derecha para que no se superponga con la flecha del dropdown */
|
|
552
287
|
right: 45px;
|
|
553
288
|
transform: translateY(-50%);
|
|
554
|
-
z-index: 5;
|
|
289
|
+
z-index: 5;
|
|
555
290
|
padding: 0.25rem 0.5rem;
|
|
556
|
-
color: #6c757d;
|
|
291
|
+
color: #6c757d;
|
|
557
292
|
background-color: transparent;
|
|
558
293
|
}
|
|
559
294
|
|
|
560
295
|
#clear-selection-button:hover {
|
|
561
|
-
color: #212529;
|
|
296
|
+
color: #212529;
|
|
562
297
|
}
|
|
563
298
|
|
|
564
299
|
|
|
@@ -588,27 +323,9 @@
|
|
|
588
323
|
font-weight: bold;
|
|
589
324
|
}
|
|
590
325
|
|
|
591
|
-
|
|
592
|
-
#history-content .table td:nth-child(
|
|
593
|
-
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
#history-content .table td:nth-child(2) {
|
|
597
|
-
width: 20%; /* Columna de la fecha */
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
#history-content .table td:nth-child(3) {
|
|
601
|
-
width: auto; /* Columna de la consulta - ocupa el resto */
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
/* Botones de feedback y historial */
|
|
605
|
-
.buttons-container {
|
|
606
|
-
display: flex;
|
|
607
|
-
justify-content: center;
|
|
608
|
-
align-items: center;
|
|
609
|
-
width: 100%;
|
|
610
|
-
gap: 12px;
|
|
611
|
-
}
|
|
326
|
+
#history-content .table td:nth-child(1) { width: 5%; }
|
|
327
|
+
#history-content .table td:nth-child(2) { width: 20%; }
|
|
328
|
+
#history-content .table td:nth-child(3) { width: auto; }
|
|
612
329
|
|
|
613
330
|
/* Contenedor de calificación con estrellas */
|
|
614
331
|
.rating-container {
|
|
@@ -634,68 +351,35 @@
|
|
|
634
351
|
}
|
|
635
352
|
|
|
636
353
|
/* --- ESTILOS PARA EL WIDGET DE ESTRELLAS DE FEEDBACK --- */
|
|
637
|
-
|
|
638
|
-
/* Contenedor para alinear las estrellas y darles espacio */
|
|
639
354
|
.rating-stars {
|
|
640
355
|
display: flex;
|
|
641
|
-
justify-content: center;
|
|
642
|
-
gap: 5px;
|
|
643
|
-
margin-bottom: 15px;
|
|
644
|
-
padding-top: 5px;
|
|
356
|
+
justify-content: center;
|
|
357
|
+
gap: 5px;
|
|
358
|
+
margin-bottom: 15px;
|
|
359
|
+
padding-top: 5px;
|
|
645
360
|
}
|
|
646
|
-
|
|
647
|
-
/* Estilo base para cada estrella */
|
|
648
361
|
.star {
|
|
649
|
-
font-size: 2rem;
|
|
650
|
-
color: #adb5bd;
|
|
651
|
-
cursor: pointer;
|
|
652
|
-
transition: color 0.2s, transform 0.2s;
|
|
362
|
+
font-size: 2rem;
|
|
363
|
+
color: #adb5bd;
|
|
364
|
+
cursor: pointer;
|
|
365
|
+
transition: color 0.2s, transform 0.2s;
|
|
653
366
|
}
|
|
654
|
-
|
|
655
|
-
/* Efecto visual al pasar el mouse por encima */
|
|
656
367
|
.star:hover {
|
|
657
|
-
transform: scale(1.15);
|
|
368
|
+
transform: scale(1.15);
|
|
658
369
|
}
|
|
659
|
-
|
|
660
|
-
/*
|
|
661
|
-
* La magia principal ocurre aquí.
|
|
662
|
-
* Usamos el pseudo-elemento ::before para controlar qué ícono de Bootstrap se muestra.
|
|
663
|
-
*/
|
|
664
|
-
|
|
665
|
-
/* Por defecto, todas las estrellas muestran el ícono de estrella VACÍA (`bi-star`) */
|
|
666
370
|
.star::before {
|
|
667
|
-
font-family: 'bootstrap-icons';
|
|
668
|
-
content: "\F586";
|
|
371
|
+
font-family: 'bootstrap-icons';
|
|
372
|
+
content: "\F586";
|
|
669
373
|
font-style: normal;
|
|
670
374
|
font-weight: normal;
|
|
671
375
|
line-height: 1;
|
|
672
376
|
-webkit-font-smoothing: antialiased;
|
|
673
377
|
}
|
|
674
|
-
|
|
675
|
-
/* Cuando una estrella tiene la clase .active (seleccionada) o .hover-active (bajo el cursor)... */
|
|
676
378
|
.star.active::before,
|
|
677
379
|
.star.hover-active::before {
|
|
678
|
-
content: "\F587";
|
|
380
|
+
content: "\F587";
|
|
679
381
|
}
|
|
680
|
-
|
|
681
|
-
/* Color para las estrellas seleccionadas o bajo el cursor */
|
|
682
382
|
.star.active,
|
|
683
383
|
.star.hover-active {
|
|
684
|
-
color: #ffc107;
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
/*
|
|
688
|
-
* para que la altura de un boton coincida con la altura de un componente .form-floating
|
|
689
|
-
*/
|
|
690
|
-
.btn-form-floating-height {
|
|
691
|
-
height: calc(3.5rem + 2px) !important;
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
/* Estilo específico para el botón de Enviar */
|
|
696
|
-
.send-button-icon i {
|
|
697
|
-
color: #0d6efd; /* Azul de Bootstrap */
|
|
698
|
-
}
|
|
699
|
-
.send-button-icon:hover i {
|
|
700
|
-
color: #0b5ed7; /* Azul más oscuro en hover */
|
|
384
|
+
color: #ffc107;
|
|
701
385
|
}
|
iatoolkit/templates/chat.html
CHANGED
|
@@ -8,15 +8,14 @@
|
|
|
8
8
|
style="{{ branding.header_style }}">
|
|
9
9
|
|
|
10
10
|
<!-- Izquierda: Nombre de la Empresa -->
|
|
11
|
-
<span style="{{ branding.
|
|
11
|
+
<span style="{{ branding.primary_text_style }}">
|
|
12
12
|
{{ branding.name }}
|
|
13
13
|
</span>
|
|
14
14
|
|
|
15
|
-
<!-- Derecha: Grupo de iconos de acción -->
|
|
16
15
|
<!-- Derecha: Grupo de información y acciones del usuario -->
|
|
17
16
|
<div class="d-flex align-items-center">
|
|
18
17
|
<!-- 1. ID de Usuario -->
|
|
19
|
-
<span
|
|
18
|
+
<span style="{{ branding.secondary_text_style }}">
|
|
20
19
|
{{ external_user_id or user.email }}
|
|
21
20
|
</span>
|
|
22
21
|
|
|
@@ -25,23 +24,24 @@
|
|
|
25
24
|
|
|
26
25
|
<!-- 3. Iconos de Acción -->
|
|
27
26
|
<a href="javascript:void(0);" id="history-button"
|
|
28
|
-
class="action-icon-style" title="Historial con mis consultas" style="color:
|
|
27
|
+
class="action-icon-style" title="Historial con mis consultas" style="color: {{ branding.header_text_color }};">
|
|
29
28
|
<i class="bi bi-clock-history"></i>
|
|
30
29
|
</a>
|
|
31
30
|
<a href="javascript:void(0);" id="send-feedback-button"
|
|
32
|
-
class="ms-3 action-icon-style" title="Tu feedback es muy importante" style="color:
|
|
31
|
+
class="ms-3 action-icon-style" title="Tu feedback es muy importante" style="color: {{ branding.header_text_color }};">
|
|
33
32
|
<i class="bi bi-emoji-smile"></i>
|
|
34
33
|
</a>
|
|
35
34
|
|
|
36
|
-
<!-- 4. Powered by (
|
|
37
|
-
<span class="
|
|
38
|
-
|
|
35
|
+
<!-- 4. Powered by (oculto en un tooltip) -->
|
|
36
|
+
<span class="ms-4" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Powered by IAToolkit">
|
|
37
|
+
<i class="bi bi-info-circle" style="color: {{ branding.header_text_color }}; opacity: 0.7; font-size: 0.9rem;"></i>
|
|
39
38
|
</span>
|
|
40
39
|
|
|
40
|
+
|
|
41
41
|
<!-- 5. Icono de cerrar sesión (al final) -->
|
|
42
42
|
{% if user.email %}
|
|
43
43
|
<a href="{{ url_for('logout', company_short_name=company_short_name) }}"
|
|
44
|
-
class="ms-3 action-icon-style" title="Cerrar sesión" style="color:
|
|
44
|
+
class="ms-3 action-icon-style" title="Cerrar sesión" style="color: {{ branding.header_text_color }} !important;">
|
|
45
45
|
<i class="bi bi-box-arrow-right"></i>
|
|
46
46
|
</a>
|
|
47
47
|
{% endif %}
|
|
@@ -186,5 +186,12 @@
|
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
188
|
});
|
|
189
|
+
document.addEventListener('DOMContentLoaded', function () {
|
|
190
|
+
// Inicializar todos los tooltips de la página
|
|
191
|
+
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
|
192
|
+
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
|
|
193
|
+
return new bootstrap.Tooltip(tooltipTriggerEl)
|
|
194
|
+
})
|
|
195
|
+
});
|
|
189
196
|
</script>
|
|
190
197
|
{% endblock %}
|
|
@@ -36,7 +36,7 @@ iatoolkit/repositories/tasks_repo.py,sha256=icVO_r2oPagGnnBhwVFzznnvEEU2EAx-2dlW
|
|
|
36
36
|
iatoolkit/repositories/vs_repo.py,sha256=UkpmQQiocgM5IwRBmmWhw3HHzHP6zK1nN3J3TcQgjhc,5300
|
|
37
37
|
iatoolkit/services/__init__.py,sha256=5JqK9sZ6jBuK83zDQokUhxQ0wuJJJ9DXB8pYCLkX7X4,102
|
|
38
38
|
iatoolkit/services/benchmark_service.py,sha256=CdbFYyS3FHFhNzWQEa9ZNjUlmON10DT1nKNbZQ1EUi8,5880
|
|
39
|
-
iatoolkit/services/branding_service.py,sha256=
|
|
39
|
+
iatoolkit/services/branding_service.py,sha256=I6MgPe2T1JaeyKqysXSNQINGBrrpxuWoWd3ZZVEfvKs,2709
|
|
40
40
|
iatoolkit/services/dispatcher_service.py,sha256=ykR1ye6McyCCuaBgwH6r3-PqcLAr4v4ApkPazMSBzbs,14040
|
|
41
41
|
iatoolkit/services/document_service.py,sha256=nMXrNtbHQuc9pSaten0LvKY0kT8_WngBDmZJUP3jNPw,5936
|
|
42
42
|
iatoolkit/services/excel_service.py,sha256=CJGhu7cQl9J6y_ZWSJ-M63Xm-RXR9Zs66oOR2NJErZQ,3868
|
|
@@ -66,7 +66,7 @@ iatoolkit/static/js/chat_feedback.js,sha256=_izl49hFEUZYREcJoaPukpTs0YjDgJYUu-Qf
|
|
|
66
66
|
iatoolkit/static/js/chat_filepond.js,sha256=mzXafm7a506EpM37KATTK3zvAswO1E0KSUY1vKbwuRc,3163
|
|
67
67
|
iatoolkit/static/js/chat_history.js,sha256=_bmwmMl9DL37FWJgoSS74j3LSqckD93C6fktB9-PxZk,3901
|
|
68
68
|
iatoolkit/static/js/chat_main.js,sha256=zVDERp3_WZBTeP3N-gCf0IVTWbKToUB6L_lUaEi56A8,15149
|
|
69
|
-
iatoolkit/static/styles/chat_iatoolkit.css,sha256=
|
|
69
|
+
iatoolkit/static/styles/chat_iatoolkit.css,sha256=hZBe2KRfcszlyR6UO6hDbfMqhpECKn_maXMjcR5ld_M,8400
|
|
70
70
|
iatoolkit/static/styles/chat_info.css,sha256=17DbgoNYE21VYWfb5L9-QLCpD2R1idK4imKRLwXtJLY,1058
|
|
71
71
|
iatoolkit/static/styles/chat_modal.css,sha256=67qwltu-QS-sU0d_fSeTIiXwcNjfAnQQtmsgStx-ezk,3047
|
|
72
72
|
iatoolkit/static/styles/llm_output.css,sha256=AlxgRSOleeCk2dLAqFWVaQ-jwZiJjcpC5rHuUv3T6VU,2312
|
|
@@ -76,7 +76,7 @@ iatoolkit/system_prompts/sql_rules.prompt,sha256=y4nURVnb9AyFwt-lrbMNBHHtZlhk6kC
|
|
|
76
76
|
iatoolkit/templates/about.html,sha256=ciC08grUVz5qLzdzDDqDX31xirg5PrJIRYabWpV9oA8,294
|
|
77
77
|
iatoolkit/templates/base.html,sha256=LXXB8oPrcBFkf2pLfOSyAaSh66kHbs4SEujpFL3h9Nw,2163
|
|
78
78
|
iatoolkit/templates/change_password.html,sha256=DFfQSFcZ2YJZNFis2IXfzEKStxTf4i9f4eQ_6GiyNs8,2342
|
|
79
|
-
iatoolkit/templates/chat.html,sha256=
|
|
79
|
+
iatoolkit/templates/chat.html,sha256=Zuc7i_omW4OW0htl4t8sdYKK3NboNTsnIpcHV4wfoeU,9156
|
|
80
80
|
iatoolkit/templates/chat_modals.html,sha256=9OtJHRMeBup8zojPnUqSl7Fd5StPdvOZMs2MiJPqVFY,5704
|
|
81
81
|
iatoolkit/templates/error.html,sha256=BNF-7z8AYL5vF4ZMUFMrOBt8c85kCFrm9qSHn9EiHWg,540
|
|
82
82
|
iatoolkit/templates/forgot_password.html,sha256=1lUbKg9CKnQdnySplceY_pibwYne1-mOlM38fqI1kW8,1563
|
|
@@ -104,7 +104,7 @@ iatoolkit/views/tasks_review_view.py,sha256=keLsLCyOTTlcoIapnB_lbuSvLwrPVZVpBiFC
|
|
|
104
104
|
iatoolkit/views/tasks_view.py,sha256=a3anTXrJTTvbQuc6PSpOzidLKQFL4hWa7PI2Cppcz8w,4110
|
|
105
105
|
iatoolkit/views/user_feedback_view.py,sha256=G37zmP8P4LvZrSymNJ5iFXhLZg1A3BEwRfTpH1Iam5w,2652
|
|
106
106
|
iatoolkit/views/verify_user_view.py,sha256=a3q4wHJ8mKAEmgbNTOcnX4rMikROjOR3mHvCr30qGGA,2351
|
|
107
|
-
iatoolkit-0.10.
|
|
108
|
-
iatoolkit-0.10.
|
|
109
|
-
iatoolkit-0.10.
|
|
110
|
-
iatoolkit-0.10.
|
|
107
|
+
iatoolkit-0.10.2.dist-info/METADATA,sha256=sHrK0vERhSpig941JIOiEb6uXRs-lVRr2RxwpMbFZoY,9301
|
|
108
|
+
iatoolkit-0.10.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
109
|
+
iatoolkit-0.10.2.dist-info/top_level.txt,sha256=V_w4QvDx0b1RXiy8zTCrD1Bp7AZkFe3_O0-9fMiwogg,10
|
|
110
|
+
iatoolkit-0.10.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|