iatoolkit 0.10.0__tar.gz → 0.10.2__tar.gz

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.

Files changed (117) hide show
  1. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/PKG-INFO +1 -1
  2. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/pyproject.toml +1 -1
  3. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/branding_service.py +18 -7
  4. iatoolkit-0.10.2/src/iatoolkit/static/styles/chat_iatoolkit.css +385 -0
  5. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/chat.html +16 -9
  6. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit.egg-info/PKG-INFO +1 -1
  7. iatoolkit-0.10.0/src/iatoolkit/static/styles/chat_iatoolkit.css +0 -701
  8. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/readme.md +0 -0
  9. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/requirements.txt +0 -0
  10. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/setup.cfg +0 -0
  11. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/__init__.py +0 -0
  12. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/base_company.py +0 -0
  13. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/cli_commands.py +0 -0
  14. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/common/__init__.py +0 -0
  15. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/common/auth.py +0 -0
  16. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/common/exceptions.py +0 -0
  17. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/common/routes.py +0 -0
  18. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/common/session_manager.py +0 -0
  19. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/common/util.py +0 -0
  20. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/company_registry.py +0 -0
  21. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/iatoolkit.py +0 -0
  22. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/__init__.py +0 -0
  23. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/call_service.py +0 -0
  24. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/connectors/__init__.py +0 -0
  25. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/connectors/file_connector.py +0 -0
  26. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/connectors/file_connector_factory.py +0 -0
  27. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/connectors/google_cloud_storage_connector.py +0 -0
  28. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/connectors/google_drive_connector.py +0 -0
  29. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/connectors/local_file_connector.py +0 -0
  30. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/connectors/s3_connector.py +0 -0
  31. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/gemini_adapter.py +0 -0
  32. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/google_chat_app.py +0 -0
  33. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/llm_client.py +0 -0
  34. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/llm_proxy.py +0 -0
  35. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/llm_response.py +0 -0
  36. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/mail_app.py +0 -0
  37. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/openai_adapter.py +0 -0
  38. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/infra/redis_session_manager.py +0 -0
  39. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/__init__.py +0 -0
  40. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/database_manager.py +0 -0
  41. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/document_repo.py +0 -0
  42. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/llm_query_repo.py +0 -0
  43. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/models.py +0 -0
  44. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/profile_repo.py +0 -0
  45. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/tasks_repo.py +0 -0
  46. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/repositories/vs_repo.py +0 -0
  47. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/__init__.py +0 -0
  48. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/benchmark_service.py +0 -0
  49. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/dispatcher_service.py +0 -0
  50. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/document_service.py +0 -0
  51. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/excel_service.py +0 -0
  52. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/file_processor_service.py +0 -0
  53. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/history_service.py +0 -0
  54. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/jwt_service.py +0 -0
  55. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/load_documents_service.py +0 -0
  56. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/mail_service.py +0 -0
  57. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/profile_service.py +0 -0
  58. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/prompt_manager_service.py +0 -0
  59. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/query_service.py +0 -0
  60. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/search_service.py +0 -0
  61. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/sql_service.py +0 -0
  62. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/tasks_service.py +0 -0
  63. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/user_feedback_service.py +0 -0
  64. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/services/user_session_context_service.py +0 -0
  65. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/arrow_up.png +0 -0
  66. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/diagrama_iatoolkit.jpg +0 -0
  67. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/logo_clinica.png +0 -0
  68. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/logo_iatoolkit.png +0 -0
  69. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/logo_maxxa.png +0 -0
  70. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/logo_notaria.png +0 -0
  71. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/logo_tarjeta.png +0 -0
  72. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/logo_umayor.png +0 -0
  73. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/images/upload.png +0 -0
  74. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/js/chat_feedback.js +0 -0
  75. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/js/chat_filepond.js +0 -0
  76. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/js/chat_history.js +0 -0
  77. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/js/chat_main.js +0 -0
  78. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/styles/chat_info.css +0 -0
  79. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/styles/chat_modal.css +0 -0
  80. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/static/styles/llm_output.css +0 -0
  81. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/system_prompts/format_styles.prompt +0 -0
  82. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/system_prompts/query_main.prompt +0 -0
  83. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/system_prompts/sql_rules.prompt +0 -0
  84. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/about.html +0 -0
  85. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/base.html +0 -0
  86. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/change_password.html +0 -0
  87. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/chat_modals.html +0 -0
  88. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/error.html +0 -0
  89. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/forgot_password.html +0 -0
  90. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/header.html +0 -0
  91. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/home.html +0 -0
  92. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/login.html +0 -0
  93. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/signup.html +0 -0
  94. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/templates/test.html +0 -0
  95. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/__init__.py +0 -0
  96. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/change_password_view.py +0 -0
  97. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/chat_token_request_view.py +0 -0
  98. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/chat_view.py +0 -0
  99. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/download_file_view.py +0 -0
  100. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/external_chat_login_view.py +0 -0
  101. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/external_login_view.py +0 -0
  102. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/file_store_view.py +0 -0
  103. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/forgot_password_view.py +0 -0
  104. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/history_view.py +0 -0
  105. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/home_view.py +0 -0
  106. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/llmquery_view.py +0 -0
  107. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/login_view.py +0 -0
  108. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/prompt_view.py +0 -0
  109. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/signup_view.py +0 -0
  110. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/tasks_review_view.py +0 -0
  111. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/tasks_view.py +0 -0
  112. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/user_feedback_view.py +0 -0
  113. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit/views/verify_user_view.py +0 -0
  114. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit.egg-info/SOURCES.txt +0 -0
  115. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit.egg-info/dependency_links.txt +0 -0
  116. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit.egg-info/requires.txt +0 -0
  117. {iatoolkit-0.10.0 → iatoolkit-0.10.2}/src/iatoolkit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 0.10.0
3
+ Version: 0.10.2
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "iatoolkit"
7
- version = "0.10.0"
7
+ version = "0.10.2"
8
8
  requires-python = ">=3.11"
9
9
  description = "IAToolkit"
10
10
  readme = "readme.md"
@@ -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
- "company_name_font_weight": "bold", # Nombre en negrita por defecto
25
- "company_name_font_size": "1rem", # Tamaño de fuente estándar
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
- company_name_style = (
52
- f"font-weight: {final_branding_values['company_name_font_weight']}; "
53
- f"font-size: {final_branding_values['company_name_font_size']};"
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
- "company_name_style": company_name_style
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
  }
@@ -0,0 +1,385 @@
1
+ /* Spinner */
2
+ .spinning {
3
+ animation: spin 1s linear infinite;
4
+ font-size: 15px; /* Tamaño del ícono */
5
+ display: inline-block;
6
+ }
7
+
8
+ @keyframes spin {
9
+ 0% { transform: rotate(0deg); }
10
+ 100% { transform: rotate(360deg); }
11
+ }
12
+
13
+ /* Estilos para el contenedor del chat y mensajes para que exista scroll */
14
+ #chat-container {
15
+ max-height: 70vh;
16
+ overflow-y: auto;
17
+ display: flex;
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 */
21
+ }
22
+ .answer-section, .error-section, .document-section {
23
+ max-width: 100%;
24
+ word-wrap: break-word;
25
+ margin-bottom: 10px;
26
+ }
27
+
28
+ /* Estilos para el modal de archivos y ordenar icono */
29
+ .list-group-item {
30
+ display: flex;
31
+ justify-content: space-between;
32
+ align-items: center;
33
+ }
34
+ .file-name-modal {
35
+ flex: 1;
36
+ margin-right: 10px;
37
+ }
38
+ .remove-file-btn {
39
+ flex-shrink: 0;
40
+ }
41
+ /* Estilos del header del modal*/
42
+ .modal-header {
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: space-between;
46
+ width: 100%;
47
+ }
48
+
49
+ .modal-header .modal-title {
50
+ margin: 0;
51
+ padding: 0;
52
+ flex: 1;
53
+ }
54
+
55
+ .modal-header .close {
56
+ margin: 0;
57
+ padding: 0;
58
+ margin-left: auto;
59
+ }
60
+
61
+ /* Para el icono de eliminar del modal */
62
+ .remove-file-btn i {
63
+ color: #c82333
64
+ }
65
+
66
+ /* Estilo del mensaje ingresado por el usuario */
67
+ #chat-container .message {
68
+ margin-top: 10px;
69
+ max-width: 75%;
70
+ min-width: fit-content;
71
+ width: fit-content;
72
+ border-radius: 12px 12px 0px 12px;
73
+ word-wrap: break-word;
74
+ display: inline-flex;
75
+ align-items: center;
76
+ align-self: flex-end;
77
+ text-align: left;
78
+ padding: 15px;
79
+ font-family: Arial, sans-serif;
80
+ font-size: 15px;
81
+ line-height: 1.5;
82
+ color: #333;
83
+ background-color: #ffffff;
84
+ border: 1px solid #ddd;
85
+ }
86
+
87
+
88
+ .answer-section {
89
+ color: #202123; /* Texto negro suave */
90
+ font-family: "Inter", Arial, sans-serif; /* Fuente moderna */
91
+ font-size: 16px;
92
+ line-height: 1.6;
93
+ word-wrap: break-word;
94
+ padding-top: 0.5em;
95
+ }
96
+
97
+ .error-section {
98
+ align-self: flex-start;
99
+ max-width: 75%;
100
+ min-width: fit-content;
101
+ width: fit-content;
102
+ margin-top: 10px;
103
+ display: flex;
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;
111
+ font-family: Arial, sans-serif;
112
+ font-size: 15px;
113
+ line-height: 1.5;
114
+ word-wrap: break-word;
115
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
116
+ }
117
+
118
+ .error-section i {
119
+ color: #d32f2f;
120
+ font-size: 1.2em;
121
+ padding-top: 2px;
122
+ }
123
+
124
+ #question {
125
+ width: 100%;
126
+ font-size: 15px;
127
+ background: #f8f9fa;
128
+ color: #202123;
129
+ border: 1px solid #d1d5db;
130
+ transition: all 0.3s ease-in-out;
131
+ }
132
+
133
+ #question:focus {
134
+ outline: none;
135
+ border-color: #80bdff;
136
+ box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
137
+ }
138
+
139
+ /* 1. La caja principal que envuelve toda el área de entrada */
140
+ .input-area {
141
+ background-color: #f8f9fa;
142
+ padding: 10px;
143
+ border-radius: 10px;
144
+ box-shadow: 0 -2px 5px rgba(0,0,0,0.05);
145
+ }
146
+
147
+ /* 2. La barra "cápsula" que envuelve el texto y los iconos */
148
+ .chat-input-bar {
149
+ background-color: #ffffff;
150
+ border: 1px solid #dee2e6;
151
+ border-radius: 1.5rem;
152
+ padding: 0.25rem 0.5rem;
153
+ transition: all 0.2s ease-in-out;
154
+ }
155
+
156
+ /* 3. Efecto de foco para toda la barra */
157
+ .chat-input-bar:focus-within {
158
+ border-color: #86b7fe;
159
+ box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
160
+ }
161
+
162
+ /* 4. El textarea "invisible" en el centro */
163
+ .chat-textarea {
164
+ flex-grow: 1;
165
+ background: transparent !important;
166
+ border: none !important;
167
+ box-shadow: none !important;
168
+ resize: none;
169
+ max-height: 150px;
170
+ min-height: 38px;
171
+ }
172
+
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
+ }
181
+ .action-icon-style i {
182
+ font-size: 1.5rem;
183
+ vertical-align: middle;
184
+ }
185
+
186
+ /* Aplica a los iconos de la barra de entrada inferior */
187
+ .chat-input-bar .d-flex a i {
188
+ font-size: 1.5rem;
189
+ vertical-align: middle;
190
+ color: #6c757d;
191
+ transition: color 0.2s ease-in-out;
192
+ }
193
+ .chat-input-bar .d-flex a:hover i {
194
+ color: #343a40;
195
+ }
196
+
197
+ /* 6. Anulación de color y tamaño para el botón de ENVIAR */
198
+ .send-button-icon i {
199
+ color: #0d6efd !important; /* Azul (importante para anular) */
200
+ font-size: 1.7rem !important; /* Ligeramente más grande para mayor énfasis */
201
+ }
202
+ .send-button-icon:hover i {
203
+ color: #0b5ed7 !important; /* Azul más oscuro en hover */
204
+ }
205
+
206
+ /* 7. Estilo para el botón de enviar cuando está deshabilitado */
207
+ .send-button-icon.disabled {
208
+ opacity: 0.4;
209
+ pointer-events: none; /* Lo hace no-clicable */
210
+ }
211
+
212
+ @media (max-width: 768px) {
213
+ #chat-container {
214
+ height: 68vh;
215
+ }
216
+ }
217
+
218
+ .filepond--credits {
219
+ display: none; /* Ocultar créditos de FilePond */
220
+ }
221
+
222
+ /* Estilo para el input de datos específicos cuando tiene contenido */
223
+ .specific-data-input.has-content {
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;
230
+ }
231
+
232
+ /* Ajuste para la etiqueta flotante */
233
+ .specific-data-input.has-content + label {
234
+ color: #0a5833 !important;
235
+ }
236
+
237
+ /* Estilo para el botón de limpiar */
238
+ .clear-specific-data-button {
239
+ position: absolute;
240
+ top: 50%;
241
+ right: 15px;
242
+ transform: translateY(-50%);
243
+ z-index: 5;
244
+ padding: 0.25rem 0.5rem;
245
+ color: #6c757d;
246
+ background-color: transparent;
247
+ border: none;
248
+ }
249
+
250
+ .clear-specific-data-button:hover {
251
+ color: #212529;
252
+ }
253
+
254
+ .dropdown-menu-soft {
255
+ background-color: #f8f9fa;
256
+ border-color: #dee2e6;
257
+ }
258
+
259
+ .dropdown-menu-soft .dropdown-item {
260
+ transition: all 0.15s ease-in-out;
261
+ }
262
+
263
+ .dropdown-menu-soft .dropdown-item:hover,
264
+ .dropdown-menu-soft .dropdown-item:focus {
265
+ color: #ffffff;
266
+ background-color: #495057;
267
+ padding-left: 1.5rem;
268
+ transition: all 0.15s ease-in-out;
269
+ }
270
+
271
+ .dropdown-menu-soft .dropdown-header {
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;
280
+ letter-spacing: normal;
281
+ border-bottom: none;
282
+ }
283
+
284
+ #clear-selection-button {
285
+ position: absolute;
286
+ top: 50%;
287
+ right: 45px;
288
+ transform: translateY(-50%);
289
+ z-index: 5;
290
+ padding: 0.25rem 0.5rem;
291
+ color: #6c757d;
292
+ background-color: transparent;
293
+ }
294
+
295
+ #clear-selection-button:hover {
296
+ color: #212529;
297
+ }
298
+
299
+
300
+ /* Estilos para el modal de feedback */
301
+ .icon-spaced {
302
+ margin-right: 10px;
303
+ }
304
+
305
+ .modal-title{
306
+ font-size: 20px;
307
+ font-weight: bold;
308
+ }
309
+
310
+ .text-muted{
311
+ font-size:16px;
312
+ text-align: justify;
313
+ }
314
+
315
+ .feedback-text{
316
+ font-size: 16px;
317
+ }
318
+
319
+ /* Estilos para el modal de historial */
320
+
321
+ .thead-dark th{
322
+ font-size: 16px;
323
+ font-weight: bold;
324
+ }
325
+
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; }
329
+
330
+ /* Contenedor de calificación con estrellas */
331
+ .rating-container {
332
+ text-align: center;
333
+ margin: 10px 0 0 0;
334
+ display: flex;
335
+ flex-direction: column;
336
+ justify-content: center;
337
+ align-items: center;
338
+ gap: 5px;
339
+ width: 100%;
340
+ }
341
+
342
+ .rating-stars-container{
343
+ text-align: center;
344
+ margin: 2px 0 0 0;
345
+ display: flex;
346
+ flex-direction: row;
347
+ justify-content: center;
348
+ align-items: center;
349
+ gap: 10px;
350
+ width: 100%;
351
+ }
352
+
353
+ /* --- ESTILOS PARA EL WIDGET DE ESTRELLAS DE FEEDBACK --- */
354
+ .rating-stars {
355
+ display: flex;
356
+ justify-content: center;
357
+ gap: 5px;
358
+ margin-bottom: 15px;
359
+ padding-top: 5px;
360
+ }
361
+ .star {
362
+ font-size: 2rem;
363
+ color: #adb5bd;
364
+ cursor: pointer;
365
+ transition: color 0.2s, transform 0.2s;
366
+ }
367
+ .star:hover {
368
+ transform: scale(1.15);
369
+ }
370
+ .star::before {
371
+ font-family: 'bootstrap-icons';
372
+ content: "\F586";
373
+ font-style: normal;
374
+ font-weight: normal;
375
+ line-height: 1;
376
+ -webkit-font-smoothing: antialiased;
377
+ }
378
+ .star.active::before,
379
+ .star.hover-active::before {
380
+ content: "\F587";
381
+ }
382
+ .star.active,
383
+ .star.hover-active {
384
+ color: #ffc107;
385
+ }
@@ -8,15 +8,14 @@
8
8
  style="{{ branding.header_style }}">
9
9
 
10
10
  <!-- Izquierda: Nombre de la Empresa -->
11
- <span style="{{ branding.company_name_style }}">
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 class="small fw-semibold">
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: inherit;">
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: inherit;">
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 (con mayor separación) -->
37
- <span class="text-muted ms-4" style="font-size: 0.75rem;">
38
- Powered by <strong>IAToolkit</strong>
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: inherit;">
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 %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iatoolkit
3
- Version: 0.10.0
3
+ Version: 0.10.2
4
4
  Summary: IAToolkit
5
5
  Author: Fernando Libedinsky
6
6
  License-Expression: MIT