iatoolkit 0.63.1__py3-none-any.whl → 0.67.0__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/__init__.py +2 -0
- iatoolkit/base_company.py +1 -20
- iatoolkit/common/routes.py +11 -2
- iatoolkit/common/session_manager.py +2 -0
- iatoolkit/common/util.py +17 -0
- iatoolkit/company_registry.py +1 -2
- iatoolkit/iatoolkit.py +41 -5
- iatoolkit/locales/en.yaml +167 -0
- iatoolkit/locales/es.yaml +163 -0
- iatoolkit/repositories/database_manager.py +3 -3
- iatoolkit/repositories/document_repo.py +1 -1
- iatoolkit/repositories/models.py +2 -3
- iatoolkit/repositories/profile_repo.py +0 -4
- iatoolkit/services/auth_service.py +14 -9
- iatoolkit/services/branding_service.py +32 -22
- iatoolkit/services/configuration_service.py +140 -0
- iatoolkit/services/dispatcher_service.py +20 -18
- iatoolkit/services/document_service.py +5 -2
- iatoolkit/services/excel_service.py +15 -11
- iatoolkit/services/file_processor_service.py +4 -12
- iatoolkit/services/history_service.py +8 -7
- iatoolkit/services/i18n_service.py +104 -0
- iatoolkit/services/jwt_service.py +7 -9
- iatoolkit/services/language_service.py +79 -0
- iatoolkit/services/load_documents_service.py +4 -4
- iatoolkit/services/mail_service.py +9 -4
- iatoolkit/services/onboarding_service.py +10 -4
- iatoolkit/services/profile_service.py +58 -38
- iatoolkit/services/prompt_manager_service.py +20 -16
- iatoolkit/services/query_service.py +15 -14
- iatoolkit/services/sql_service.py +6 -2
- iatoolkit/services/user_feedback_service.py +16 -14
- iatoolkit/static/js/chat_feedback_button.js +57 -87
- iatoolkit/static/js/chat_help_content.js +124 -0
- iatoolkit/static/js/chat_history_button.js +48 -65
- iatoolkit/static/js/chat_main.js +27 -24
- iatoolkit/static/js/chat_reload_button.js +28 -45
- iatoolkit/static/styles/chat_iatoolkit.css +223 -315
- iatoolkit/static/styles/chat_modal.css +63 -97
- iatoolkit/static/styles/chat_public.css +107 -0
- iatoolkit/static/styles/landing_page.css +0 -1
- iatoolkit/templates/_company_header.html +6 -2
- iatoolkit/templates/_login_widget.html +42 -0
- iatoolkit/templates/base.html +34 -19
- iatoolkit/templates/change_password.html +22 -20
- iatoolkit/templates/chat.html +58 -27
- iatoolkit/templates/chat_modals.html +113 -74
- iatoolkit/templates/error.html +12 -13
- iatoolkit/templates/forgot_password.html +11 -7
- iatoolkit/templates/index.html +8 -3
- iatoolkit/templates/login_simulation.html +16 -5
- iatoolkit/templates/onboarding_shell.html +0 -1
- iatoolkit/templates/signup.html +14 -14
- iatoolkit/views/base_login_view.py +12 -1
- iatoolkit/views/change_password_view.py +49 -33
- iatoolkit/views/forgot_password_view.py +20 -19
- iatoolkit/views/help_content_api_view.py +54 -0
- iatoolkit/views/history_api_view.py +13 -9
- iatoolkit/views/home_view.py +30 -38
- iatoolkit/views/init_context_api_view.py +16 -11
- iatoolkit/views/llmquery_api_view.py +38 -26
- iatoolkit/views/login_simulation_view.py +14 -2
- iatoolkit/views/login_view.py +47 -35
- iatoolkit/views/logout_api_view.py +26 -22
- iatoolkit/views/profile_api_view.py +46 -0
- iatoolkit/views/prompt_api_view.py +6 -6
- iatoolkit/views/signup_view.py +26 -24
- iatoolkit/views/user_feedback_api_view.py +19 -18
- iatoolkit/views/verify_user_view.py +30 -29
- {iatoolkit-0.63.1.dist-info → iatoolkit-0.67.0.dist-info}/METADATA +40 -22
- iatoolkit-0.67.0.dist-info/RECORD +120 -0
- iatoolkit-0.67.0.dist-info/licenses/LICENSE +21 -0
- iatoolkit/static/styles/chat_info.css +0 -53
- iatoolkit/templates/header.html +0 -31
- iatoolkit/templates/test.html +0 -9
- iatoolkit-0.63.1.dist-info/RECORD +0 -112
- {iatoolkit-0.63.1.dist-info → iatoolkit-0.67.0.dist-info}/WHEEL +0 -0
- {iatoolkit-0.63.1.dist-info → iatoolkit-0.67.0.dist-info}/top_level.txt +0 -0
|
@@ -4,187 +4,131 @@
|
|
|
4
4
|
--bs-tooltip-opacity: 0.95; /* Ligeramente más opaco para mejor legibilidad */
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
h1, h2, h3, h4, h5, h6 {
|
|
8
|
+
font-family: var(--font-family-sans);
|
|
9
|
+
font-weight: var(--weight-semibold);
|
|
10
|
+
line-height: var(--lh-title);
|
|
11
|
+
margin: 0 0 0.6em;
|
|
12
|
+
/* Se define un color base usando la nueva variable de branding */
|
|
13
|
+
color: var(--brand-text-heading-color);
|
|
11
14
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
ul {
|
|
17
|
+
padding-left: 1.5rem; /* ~24px de indentación para la lista */
|
|
18
|
+
margin-bottom: 1rem; /* Espacio después de que termina la lista */
|
|
16
19
|
}
|
|
17
20
|
|
|
21
|
+
li {
|
|
22
|
+
margin-bottom: 0.5rem;
|
|
23
|
+
padding-left: 0.25rem; /* Pequeño espacio extra entre la viñeta y el texto */
|
|
24
|
+
}
|
|
18
25
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
padding: 1rem; /* Equivalente a p-3 de Bootstrap */
|
|
22
|
-
border: 1px solid #dee2e6; /* Borde estándar y sutil */
|
|
23
|
-
border-radius: 0.375rem; /* Borde redondeado estándar de Bootstrap */
|
|
24
|
-
box-shadow: 0 2px 8px rgba(0,0,0,0.06); /* Sombra suave y unificada */
|
|
26
|
+
.text-muted {
|
|
27
|
+
color: #64748b;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
|
-
/*
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
background-color: var(--brand-header-bg);
|
|
38
|
-
color: var(--brand-header-text);
|
|
39
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); /* Sombra ligeramente más suave */
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/* Estilo específico para el nombre de la marca (Letra más grande) */
|
|
43
|
-
.custom-company-header .brand-name {
|
|
44
|
-
font-size: 1.8rem; /* Tamaño de fuente aumentado */
|
|
45
|
-
font-weight: 600;
|
|
46
|
-
color: inherit;
|
|
47
|
-
text-decoration: none;
|
|
48
|
-
transition: opacity 0.2s ease-in-out;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/* Efecto hover para el enlace del nombre de la marca */
|
|
52
|
-
.custom-company-header .brand-name:hover {
|
|
53
|
-
opacity: 0.85;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/* Estilo para el texto "Powered by" --- */
|
|
57
|
-
.custom-company-header .powered-by {
|
|
58
|
-
font-size: 0.9rem;
|
|
59
|
-
font-weight: 400;
|
|
60
|
-
opacity: 0.75; /* Menos prominente que el nombre de la marca */
|
|
61
|
-
color: inherit;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/* --- Estilo para el enlace de IAToolkit --- */
|
|
65
|
-
.custom-company-header .iatoolkit-link {
|
|
66
|
-
color: inherit; /* Hereda el color del texto padre */
|
|
67
|
-
text-decoration: none; /* ¡Elimina el subrayado! */
|
|
68
|
-
font-weight: 600; /* Un poco más de peso para diferenciarlo */
|
|
69
|
-
transition: opacity 0.2s ease-in-out;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.branded-form-container {
|
|
73
|
-
background-color: #ffffff;
|
|
74
|
-
border: 1px solid #dee2e6;
|
|
75
|
-
border-top: 4px solid #adb5bd;
|
|
76
|
-
border-radius: 0.375rem;
|
|
77
|
-
padding: 2rem;
|
|
78
|
-
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.branded-headline {
|
|
82
|
-
color: var(--brand-primary-color);
|
|
83
|
-
font-size: 2.5rem;
|
|
84
|
-
font-weight: 700;
|
|
85
|
-
line-height: 1.2;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.text-branded-primary {
|
|
89
|
-
color: var(--brand-primary-color) !important;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
.branded-form-label {
|
|
94
|
-
font-size: 0.85rem;
|
|
95
|
-
font-weight: 600;
|
|
96
|
-
color: #495057; /* Un gris oscuro profesional */
|
|
97
|
-
text-transform: uppercase;
|
|
98
|
-
letter-spacing: 0.05em; /* Un poco de espacio extra entre letras */
|
|
99
|
-
margin-bottom: 0.3rem;
|
|
100
|
-
display: block;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
/* Efecto de foco brandeado para todos los form-control */
|
|
105
|
-
.form-control:focus {
|
|
106
|
-
border-color: var(--brand-primary-color);
|
|
107
|
-
box-shadow: 0 0 0 0.25rem rgba(var(--brand-primary-color-rgb), 0.25); /* Usa la variable RGB para el shadow */
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.branded-form-title {
|
|
111
|
-
color: var(--brand-primary-color);
|
|
112
|
-
font-size: 1.75rem; /* Un tamaño más prominente */
|
|
113
|
-
font-weight: 700; /* Equivalente a fw-bold de Bootstrap */
|
|
114
|
-
text-align: center;
|
|
115
|
-
margin-bottom: 1.5rem; /* Espacio consistente debajo del título */
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
/* Estilo para la sección del encabezado */
|
|
120
|
-
.company-section {
|
|
121
|
-
border-radius: 0.375rem; /* Mismo radio que .chat-block para consistencia */
|
|
122
|
-
background-color: var(--brand-header-bg);
|
|
123
|
-
color: var(--brand-header-text);
|
|
30
|
+
/* Estilos para botones con branding */
|
|
31
|
+
.btn-branded-primary {
|
|
32
|
+
background-color: var(--brand-primary-color);
|
|
33
|
+
border-color: var(--brand-primary-color);
|
|
34
|
+
color: var(--brand-text-on-primary);
|
|
35
|
+
}
|
|
36
|
+
.btn-branded-primary:hover {
|
|
37
|
+
background-color: var(--brand-text-on-primary);
|
|
38
|
+
color: var(--brand-primary-color);
|
|
39
|
+
border-color: var(--brand-primary-color);
|
|
124
40
|
}
|
|
125
41
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
42
|
+
.btn-branded-secondary {
|
|
43
|
+
background-color: var(--brand-secondary-color);
|
|
44
|
+
border-color: var(--brand-secondary-color);
|
|
45
|
+
color: var(--brand-text-on-secondary);
|
|
46
|
+
}
|
|
47
|
+
.btn-branded-secondary:hover {
|
|
48
|
+
background-color: var(--brand-text-on-secondary);
|
|
49
|
+
color: var(--brand-secondary-color);
|
|
50
|
+
border-color: var(--brand-secondary-color);
|
|
131
51
|
}
|
|
132
52
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
53
|
+
.chat-layout-container {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-direction: column;
|
|
56
|
+
height: 100dvh;
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
padding-top: 1rem;
|
|
59
|
+
padding-bottom: 0.2rem;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
/* sección del encabezado en el chat principal */
|
|
64
|
+
.company-section {
|
|
65
|
+
border-radius: 0.375rem; /* Mismo radio que .chat-block para consistencia */
|
|
66
|
+
background-color: var(--brand-header-bg);
|
|
67
|
+
color: var(--brand-header-text);
|
|
136
68
|
}
|
|
137
69
|
|
|
138
70
|
/* Estilos para el contenedor del chat y mensajes para que exista scroll */
|
|
139
71
|
#chat-container {
|
|
140
|
-
|
|
72
|
+
flex-grow: 1;
|
|
141
73
|
overflow-y: auto;
|
|
142
74
|
display: flex;
|
|
143
75
|
flex-direction: column;
|
|
144
76
|
background-color: #fff; /* Fondo blanco para el contenedor del chat */
|
|
145
77
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
78
|
+
|
|
79
|
+
/* CSS para el chat principal */
|
|
80
|
+
/* esta clase defines los atributos de cada bloque */
|
|
81
|
+
.chat-block {
|
|
82
|
+
padding: 1rem;
|
|
83
|
+
border: 1px solid #dee2e6;
|
|
84
|
+
border-radius: 0.375rem; /* Borde redondeado estándar de Bootstrap */
|
|
85
|
+
box-shadow: 0 2px 8px rgba(0,0,0,0.06); /* Sombra suave y unificada */
|
|
150
86
|
}
|
|
151
87
|
|
|
152
|
-
/*
|
|
153
|
-
.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
88
|
+
/* El textarea "invisible" en el centro */
|
|
89
|
+
.chat-textarea {
|
|
90
|
+
flex-grow: 1;
|
|
91
|
+
background: transparent !important;
|
|
92
|
+
border: none !important;
|
|
93
|
+
box-shadow: none !important;
|
|
94
|
+
resize: none;
|
|
95
|
+
max-height: 150px;
|
|
96
|
+
min-height: 38px;
|
|
157
97
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
98
|
+
|
|
99
|
+
/* La barra "cápsula" que envuelve el texto y los iconos */
|
|
100
|
+
.chat-input-bar {
|
|
101
|
+
background-color: #ffffff;
|
|
102
|
+
border: 1px solid #dee2e6;
|
|
103
|
+
border-radius: 1rem;
|
|
104
|
+
padding: 0.1rem 0.5rem;
|
|
105
|
+
transition: all 0.2s ease-in-out;
|
|
161
106
|
}
|
|
162
|
-
|
|
163
|
-
|
|
107
|
+
|
|
108
|
+
/* Efecto de foco para toda la barra */
|
|
109
|
+
.chat-input-bar:focus-within {
|
|
110
|
+
border-color: #86b7fe;
|
|
111
|
+
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
|
|
164
112
|
}
|
|
165
|
-
/*
|
|
166
|
-
.
|
|
167
|
-
|
|
168
|
-
align-items: center;
|
|
169
|
-
justify-content: space-between;
|
|
170
|
-
width: 100%;
|
|
113
|
+
/* La caja principal que envuelve toda el área de entrada */
|
|
114
|
+
.input-area {
|
|
115
|
+
background-color: var(--brand-prompt-assistant-bg, #f8f9fa);
|
|
171
116
|
}
|
|
172
117
|
|
|
173
|
-
.modal-header .modal-title {
|
|
174
|
-
margin: 0;
|
|
175
|
-
padding: 0;
|
|
176
|
-
flex: 1;
|
|
177
|
-
}
|
|
178
118
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
119
|
+
#question {
|
|
120
|
+
width: 100%;
|
|
121
|
+
font-size: 15px;
|
|
122
|
+
background: #f8f9fa;
|
|
123
|
+
color: #202123;
|
|
124
|
+
border: 1px solid #d1d5db;
|
|
125
|
+
transition: all 0.3s ease-in-out;
|
|
183
126
|
}
|
|
184
127
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
color: #
|
|
128
|
+
#question:focus {
|
|
129
|
+
outline: none;
|
|
130
|
+
border-color: #80bdff;
|
|
131
|
+
box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
|
|
188
132
|
}
|
|
189
133
|
|
|
190
134
|
/* Estilo del mensaje ingresado por el usuario */
|
|
@@ -204,18 +148,24 @@
|
|
|
204
148
|
font-size: 15px;
|
|
205
149
|
line-height: 1.6;
|
|
206
150
|
background-color: #f7f7f8;
|
|
207
|
-
border: none;
|
|
208
151
|
}
|
|
209
152
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
153
|
+
.answer-section, .error-section {
|
|
154
|
+
max-width: 100%;
|
|
155
|
+
word-wrap: break-word;
|
|
156
|
+
margin-bottom: 10px;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
.answer-section {
|
|
161
|
+
align-self: flex-start;
|
|
162
|
+
max-width: 75%;
|
|
163
|
+
padding: 10px 15px;
|
|
164
|
+
font-family: "Inter", Arial, sans-serif;
|
|
165
|
+
font-size: 15px;
|
|
166
|
+
line-height: 1.6;
|
|
167
|
+
word-wrap: break-word;
|
|
168
|
+
}
|
|
219
169
|
|
|
220
170
|
.error-section {
|
|
221
171
|
align-self: flex-start;
|
|
@@ -244,62 +194,76 @@
|
|
|
244
194
|
flex-shrink: 0; /* Evita que el icono se encoja */
|
|
245
195
|
}
|
|
246
196
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
197
|
+
/* Estilo para mensajes sutiles del sistema (ej. abortado) */
|
|
198
|
+
.system-message {
|
|
199
|
+
color: var(--brand-secondary-color, #6c757d); /* Usa el color secundario o un gris por defecto */
|
|
200
|
+
font-style: italic;
|
|
201
|
+
font-size: 0.9rem;
|
|
202
|
+
display: flex;
|
|
203
|
+
align-items: center;
|
|
204
|
+
justify-content: start;
|
|
205
|
+
margin: 10px 0;
|
|
206
|
+
padding: 10px;
|
|
207
|
+
opacity: 0.8;
|
|
254
208
|
}
|
|
255
209
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
210
|
+
/* Spinner */
|
|
211
|
+
.spinning {
|
|
212
|
+
animation: spin 1s linear infinite;
|
|
213
|
+
font-size: 15px; /* Tamaño del ícono */
|
|
214
|
+
display: inline-block;
|
|
215
|
+
}
|
|
216
|
+
#spinner .spinner-border {
|
|
217
|
+
color: var(--brand-primary-color);
|
|
260
218
|
}
|
|
261
219
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
220
|
+
@keyframes spin {
|
|
221
|
+
0% { transform: rotate(0deg); }
|
|
222
|
+
100% { transform: rotate(360deg); }
|
|
265
223
|
}
|
|
266
224
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
225
|
+
|
|
226
|
+
/* Estilos para el modal de archivos y ordenar icono */
|
|
227
|
+
.list-group-item {
|
|
228
|
+
display: flex;
|
|
229
|
+
justify-content: space-between;
|
|
230
|
+
align-items: center;
|
|
231
|
+
|
|
232
|
+
border: none;
|
|
233
|
+
/* separador sutil solo en la parte inferior */
|
|
234
|
+
border-bottom: 1px solid #e9ecef; /* Un gris muy claro estándar */
|
|
235
|
+
padding: 0.5rem 0.75rem;
|
|
236
|
+
|
|
237
|
+
/* animación suave para el cambio de fondo */
|
|
238
|
+
transition: background-color 0.2s ease-in-out;
|
|
274
239
|
}
|
|
275
240
|
|
|
276
|
-
/*
|
|
277
|
-
.
|
|
278
|
-
|
|
279
|
-
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
|
|
241
|
+
/* Al pasar el ratón, cambiamos el fondo para dar feedback */
|
|
242
|
+
.list-group-item:hover {
|
|
243
|
+
background-color: #f8f9fa; /* Un gris de fondo muy sutil */
|
|
280
244
|
}
|
|
281
245
|
|
|
282
|
-
/*
|
|
283
|
-
|
|
284
|
-
|
|
246
|
+
/* Eliminamos el borde del último elemento para un acabado limpio */
|
|
247
|
+
.list-group-item:last-child {
|
|
248
|
+
border-bottom: none;
|
|
285
249
|
}
|
|
286
250
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
align-items: center;
|
|
294
|
-
justify-content: start;
|
|
295
|
-
margin: 10px 0;
|
|
296
|
-
padding: 10px;
|
|
297
|
-
opacity: 0.8;
|
|
251
|
+
.file-name-modal {
|
|
252
|
+
flex: 1;
|
|
253
|
+
margin-right: 10px;
|
|
254
|
+
}
|
|
255
|
+
.remove-file-btn {
|
|
256
|
+
flex-shrink: 0;
|
|
298
257
|
}
|
|
299
258
|
|
|
300
259
|
|
|
260
|
+
/* Aplica el color secundario de la marca al icono de ver archivos */
|
|
261
|
+
#view-files-button i {
|
|
262
|
+
color: var(--brand-secondary-color, #6c757d);
|
|
263
|
+
}
|
|
264
|
+
|
|
301
265
|
#prompt-assistant-collapse .card {
|
|
302
|
-
border-radius:
|
|
266
|
+
border-radius: 1rem; /* Mismo radio que el chat-input-bar */
|
|
303
267
|
border: 1px solid var(--brand-prompt-assistant-border, #dee2e6); /* Mismo borde que el chat-input-bar */
|
|
304
268
|
box-shadow: none; /* Eliminamos la sombra por defecto del card */
|
|
305
269
|
}
|
|
@@ -308,18 +272,8 @@
|
|
|
308
272
|
margin-bottom: 12px !important; /* Anula el mb-2 (8px) para añadir un poco más de espacio */
|
|
309
273
|
}
|
|
310
274
|
|
|
311
|
-
/* 4. El textarea "invisible" en el centro */
|
|
312
|
-
.chat-textarea {
|
|
313
|
-
flex-grow: 1;
|
|
314
|
-
background: transparent !important;
|
|
315
|
-
border: none !important;
|
|
316
|
-
box-shadow: none !important;
|
|
317
|
-
resize: none;
|
|
318
|
-
max-height: 150px;
|
|
319
|
-
min-height: 38px;
|
|
320
|
-
}
|
|
321
275
|
|
|
322
|
-
/*
|
|
276
|
+
/* Estilo UNIFICADO para los enlaces de iconos de acción */
|
|
323
277
|
.action-icon-style {
|
|
324
278
|
color: #6c757d; /* Color gris estándar por defecto */
|
|
325
279
|
transition: opacity 0.2s ease-in-out;
|
|
@@ -349,7 +303,7 @@
|
|
|
349
303
|
color: #343a40;
|
|
350
304
|
}
|
|
351
305
|
|
|
352
|
-
/*
|
|
306
|
+
/* Anulación específica para el botón de ENVIAR usando su ID (Máxima Prioridad) */
|
|
353
307
|
#send-button i {
|
|
354
308
|
font-size: 1.7rem; /* Ligeramente más grande */
|
|
355
309
|
}
|
|
@@ -363,12 +317,6 @@
|
|
|
363
317
|
pointer-events: none; /* Lo hace no-clicable */
|
|
364
318
|
}
|
|
365
319
|
|
|
366
|
-
@media (max-width: 768px) {
|
|
367
|
-
#chat-container {
|
|
368
|
-
height: 68vh;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
|
|
372
320
|
.filepond--credits {
|
|
373
321
|
display: none; /* Ocultar créditos de FilePond */
|
|
374
322
|
}
|
|
@@ -435,14 +383,30 @@
|
|
|
435
383
|
border-bottom: none;
|
|
436
384
|
}
|
|
437
385
|
|
|
438
|
-
/*
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
border-
|
|
386
|
+
/* estilos para el selector de prompts */
|
|
387
|
+
.prompt-select-button {
|
|
388
|
+
color: #202123;
|
|
389
|
+
border: 2px solid var(--brand-primary-color);
|
|
390
|
+
border-radius: 0.25rem; /* Estilos de botón estándar */
|
|
391
|
+
padding: 0.5rem 1rem;
|
|
392
|
+
cursor: pointer;
|
|
393
|
+
text-align: center;
|
|
394
|
+
font-weight: 500;
|
|
395
|
+
|
|
396
|
+
/* Transición suave para el cambio en hover */
|
|
397
|
+
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
|
|
443
398
|
}
|
|
444
399
|
|
|
400
|
+
.prompt-select-button:hover {
|
|
401
|
+
background-color: var(--brand-primary-color);
|
|
402
|
+
color: var(--brand-text-on-primary);
|
|
403
|
+
|
|
404
|
+
/* Marca el borde con un glow limpio */
|
|
405
|
+
border-color: var(--brand-primary-color);
|
|
406
|
+
box-shadow: 0 0 0 3px rgba( var(--brand-primary-rgb), 0.25 );
|
|
407
|
+
}
|
|
445
408
|
|
|
409
|
+
/* estilo de la x que limpia el prompt seleccionado */
|
|
446
410
|
#clear-selection-button {
|
|
447
411
|
position: absolute;
|
|
448
412
|
top: 50%;
|
|
@@ -455,95 +419,9 @@
|
|
|
455
419
|
}
|
|
456
420
|
|
|
457
421
|
#clear-selection-button:hover {
|
|
458
|
-
color: #
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
/* Estilos para el modal de feedback */
|
|
463
|
-
.icon-spaced {
|
|
464
|
-
margin-right: 10px;
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
.modal-title{
|
|
468
|
-
font-size: 20px;
|
|
469
|
-
font-weight: bold;
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
.text-muted{
|
|
473
|
-
font-size:16px;
|
|
474
|
-
text-align: justify;
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
.feedback-text{
|
|
478
|
-
font-size: 16px;
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
/* Estilos para el modal de historial */
|
|
482
|
-
|
|
483
|
-
.thead-dark th{
|
|
484
|
-
font-size: 16px;
|
|
485
|
-
font-weight: bold;
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
#history-content .table td:nth-child(1) { width: 5%; }
|
|
489
|
-
#history-content .table td:nth-child(2) { width: 20%; }
|
|
490
|
-
#history-content .table td:nth-child(3) { width: auto; }
|
|
491
|
-
|
|
492
|
-
/* Contenedor de calificación con estrellas */
|
|
493
|
-
.rating-container {
|
|
494
|
-
text-align: center;
|
|
495
|
-
margin: 10px 0 0 0;
|
|
496
|
-
display: flex;
|
|
497
|
-
flex-direction: column;
|
|
498
|
-
justify-content: center;
|
|
499
|
-
align-items: center;
|
|
500
|
-
gap: 5px;
|
|
501
|
-
width: 100%;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
.rating-stars-container{
|
|
505
|
-
text-align: center;
|
|
506
|
-
margin: 2px 0 0 0;
|
|
507
|
-
display: flex;
|
|
508
|
-
flex-direction: row;
|
|
509
|
-
justify-content: center;
|
|
510
|
-
align-items: center;
|
|
511
|
-
gap: 10px;
|
|
512
|
-
width: 100%;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
/* --- ESTILOS PARA EL WIDGET DE ESTRELLAS DE FEEDBACK --- */
|
|
516
|
-
.rating-stars {
|
|
517
|
-
display: flex;
|
|
518
|
-
justify-content: center;
|
|
519
|
-
gap: 5px;
|
|
520
|
-
margin-bottom: 15px;
|
|
521
|
-
padding-top: 5px;
|
|
522
|
-
}
|
|
523
|
-
.star {
|
|
524
|
-
font-size: 2rem;
|
|
525
|
-
color: #adb5bd;
|
|
526
|
-
cursor: pointer;
|
|
527
|
-
transition: color 0.2s, transform 0.2s;
|
|
528
|
-
}
|
|
529
|
-
.star:hover {
|
|
530
|
-
transform: scale(1.15);
|
|
531
|
-
}
|
|
532
|
-
.star::before {
|
|
533
|
-
font-family: 'bootstrap-icons';
|
|
534
|
-
content: "\F586";
|
|
535
|
-
font-style: normal;
|
|
536
|
-
font-weight: normal;
|
|
537
|
-
line-height: 1;
|
|
538
|
-
-webkit-font-smoothing: antialiased;
|
|
539
|
-
}
|
|
540
|
-
.star.active::before,
|
|
541
|
-
.star.hover-active::before {
|
|
542
|
-
content: "\F587";
|
|
543
|
-
}
|
|
544
|
-
.star.active,
|
|
545
|
-
.star.hover-active {
|
|
546
|
-
color: #ffc107;
|
|
422
|
+
color: #ffffff;
|
|
423
|
+
background-color: #6c757d;
|
|
424
|
+
border-radius: 0.25rem;
|
|
547
425
|
}
|
|
548
426
|
|
|
549
427
|
#send-button i {
|
|
@@ -576,7 +454,7 @@
|
|
|
576
454
|
}
|
|
577
455
|
|
|
578
456
|
/* --- Toast de Error (Usa el color de peligro de la marca) --- */
|
|
579
|
-
.toast-error
|
|
457
|
+
.toast-error{
|
|
580
458
|
background-color: var(--brand-danger-color) !important;
|
|
581
459
|
color: var(--brand-text-on-primary) !important; /* Asumimos texto blanco sobre el color de peligro */
|
|
582
460
|
opacity: 0.95 !important;
|
|
@@ -593,3 +471,33 @@
|
|
|
593
471
|
.toast-close-button:hover {
|
|
594
472
|
opacity: 0.8;
|
|
595
473
|
}
|
|
474
|
+
|
|
475
|
+
.alert-branded-danger {
|
|
476
|
+
background-color: var(--brand-danger-bg);
|
|
477
|
+
color: var(--brand-danger-text);
|
|
478
|
+
border-color: var(--brand-danger-border);
|
|
479
|
+
}
|
|
480
|
+
/* Asegura que el texto fuerte y los enlaces dentro de la alerta también tomen el color correcto */
|
|
481
|
+
.alert-branded-danger strong,
|
|
482
|
+
.alert-branded-danger .alert-link {
|
|
483
|
+
color: inherit;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
.edit-pencil {
|
|
487
|
+
color: var(--brand-secondary-color, #6c757d); /* Color secundario por defecto */
|
|
488
|
+
cursor: pointer;
|
|
489
|
+
opacity: 0.6;
|
|
490
|
+
text-decoration: none;
|
|
491
|
+
/* Transición suave para todos los cambios (color, opacidad, tamaño) */
|
|
492
|
+
transition: all 0.25s ease-in-out;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
.edit-pencil:hover {
|
|
496
|
+
opacity: 1;
|
|
497
|
+
transform: scale(1.2);
|
|
498
|
+
color: var(--brand-primary-color, #4C6A8D);
|
|
499
|
+
cursor: pointer;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|