Commit Graph

18 Commits

Author SHA1 Message Date
dd57ee1fb3 Feat: Agregar vista expandida de ResumenMuestra
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
Implementación completa de vista detallada para muestras:

Componentes nuevos:
- ResumenMuestraExpandido: Vista no compacta con valores claramente visibles
- ModalResumenExpandido: Modal reutilizable para mostrar vista expandida

Integraciones:
- Calculadora SCAA: Usa vista expandida en paso 3
- Página de sesión:
  * Long press en móvil (500ms) en header del accordion
  * Botón expandir en desktop cerca del título
  * Vibración háptica en móvil al activar

Características:
- Grid responsivo de intensidades afectivas
- Puntajes destacados (Σ y SCAA) con colores según valor
- Visualización clara de penalizaciones
- Diseño adaptativo móvil/desktop
2025-10-19 04:02:13 -06:00
3ea68b195a Fix: Corregir nombre de componente ResumenMuestra en calculadora SCAA
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
2025-10-19 03:44:51 -06:00
4985fc8b88 Feat: Agregar calculadora SCAA en página principal
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
Implementado flujo de asignación rápida reutilizable en modo calculadora
para la página principal, permitiendo calcular SCAA Score sin sesión.

Cambios:
- ModalAsignacionRapida: Nuevo modo 'calculadora' con paso 3
- Paso 3 incluye ResumenMuestra y penalizaciones configurables
- Función generadora de muestra genérica para vista previa
- Botón "Calculadora SCAA" en página principal
- Navegación mejorada entre pasos (Volver/Continuar)
2025-10-19 03:35:20 -06:00
6994114d91 Feat: Aumentar blur del overlay y aplicar estilos cata a UInputNumber
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
CAMBIOS EN OVERLAY:

1. Blur más agresivo:
   - Antes: blur(10px)
   - Ahora: blur(16px)
   - Efecto mucho más pronunciado

2. Opacidad aumentada:
   - Antes: 0.90 (90%)
   - Ahora: 0.95 (95%)
   - Fondo casi completamente opaco

ESTILOS PERSONALIZADOS PARA UInputNumber:

1. Input principal:
   - background-color: var(--cata-bg)
   - color: var(--cata-text)
   - border-color: var(--cata-primary) con transparencia

2. Estado focus:
   - border-color: var(--cata-primary) sólido
   - box-shadow con color primario
   - En dark mode: glow effect adicional

3. Placeholder:
   - color: var(--cata-text) al 50% de opacidad
   - Respeta el color del texto del usuario

4. Botones +/-:
   - color: var(--cata-primary)
   - Hover: opacity 0.8
   - Active: scale 0.95 (feedback táctil)

5. Modo oscuro:
   - Border más visible (40% de primary)
   - Box-shadow con glow effect en focus

RESULTADO:
- UInputNumber ahora respeta completamente los colores del usuario
- Overlay con blur muy pronunciado para mejor enfoque
- Consistencia visual con el resto de la aplicación
2025-10-19 03:02:32 -06:00
1ef86d4281 Feat: Aumentar blur del overlay en modal de asignación rápida
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
CAMBIOS:

1. Blur aumentado de 4px a 10px:
   - Antes: backdrop-filter: blur(4px)
   - Ahora: backdrop-filter: blur(10px)
   - Efecto más agresivo en el fondo

2. Opacidad aumentada de 0.85 a 0.90:
   - Fondo ligeramente más oscuro
   - Mejor enfoque en el modal

3. Compatibilidad mejorada:
   - Agregado -webkit-backdrop-filter para WebKit
   - Mejor soporte en Safari y navegadores basados en Chromium

RESULTADO:
El modal ahora tiene un efecto de blur medianamente agresivo
que ayuda a enfocar la atención en el contenido del modal.
2025-10-19 02:57:04 -06:00
281fc23118 Feat: Usar UInputNumber con botones +/- y sincronización automática
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
CAMBIOS PRINCIPALES:

1. Reemplazar inputs normales por UInputNumber:
   - Ahora tienen botones +/- integrados
   - Mejor UX con controles visuales
   - Validación automática de min/max/step

2. Configuración de cada input:
   - Sumatoria Afectiva: step="1" (8-72)
   - SCAA Score: step="0.25" (58.00-100.00)
   - SCAA con format-options para 2 decimales

3. Doble sistema de handlers:

   a) Para botones +/- (@update:model-value):
      - onSumatoriaChangeFromButtons()
      - onScaaChangeFromButtons()
      - Sincronización AUTOMÁTICA e INMEDIATA
      - No espera blur, actualiza al instante

   b) Para escritura manual (@blur):
      - onSumatoriaBlur()
      - onScaaBlur()
      - Validación solo al perder foco
      - Permite edición libre

4. Sincronización bidireccional:
   - Modificar Sumatoria → actualiza SCAA
   - Modificar SCAA → actualiza Sumatoria
   - Funciona con botones +/- Y con escritura manual

BENEFICIOS:
 Botones +/- funcionan de 1 en 1 y 0.25 en 0.25
 Sincronización automática al usar botones
 Edición manual sigue funcionando (solo valida en blur)
 Mejor UX con controles visuales
 SCAA Score muestra siempre 2 decimales
2025-10-19 02:53:51 -06:00
4e6c5f7b5d Fix: Mejorar UX de inputs en asignación rápida
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
PROBLEMAS RESUELTOS:

1. Inputs actualizaban en cada tecla (@input):
   - Impedía borrar números (ej: no se podía borrar el 9)
   - Hacía malabares para cambiar valores

2. Rango incorrecto de Sumatoria Afectiva:
   - Era 9-90 pero debería ser 8-72
   - 8 categorías × 1 punto mínimo = 8
   - 8 categorías × 9 puntos máximo = 72

SOLUCIONES:

1. Cambio de eventos:
   - @input → @blur en ambos inputs
   - Ahora solo actualiza al perder el foco
   - Permite editar libremente (borrar, reescribir)

2. Rangos corregidos:
   - Sumatoria Afectiva: 8-72 (antes 9-90)
   - SCAA Score: 58.00-100.00 (antes 58.75-112.00)
   - Valor por defecto: 40 (antes 45)

3. Validaciones mejoradas:
   - No valida mientras se escribe
   - Solo valida al perder foco (blur)
   - Maneja valores inválidos (NaN, null) reseteando a 40
   - Permite borrar y reescribir sin restricciones

BENEFICIOS:
- Ahora se puede borrar el 9 sin problemas
- Se puede escribir cualquier número sin interferencias
- La sincronización ocurre solo al terminar de editar
2025-10-19 02:46:18 -06:00
e36d7dac6b Fix: Redondear SCAA Score a múltiplos de 0.25
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
PROBLEMA:
El SCAA Score debe moverse en steps de 0.25 (no aceptar
cualquier valor decimal racional).

SOLUCIÓN:

1. Nueva función en catacion.ts:
   - redondearA025(): Redondea al múltiplo de 0.25 más cercano
   - Math.round(valor / 0.25) * 0.25

2. Aplicado en todas las funciones de SCAA:
   - calcularSCAA(): redondea el resultado final
   - sumatoriaAfectivaASCAA(): redondea la conversión

3. ModalAsignacionRapida.vue:
   - Input step cambiado de 0.01 a 0.25
   - onScaaChange(): redondea el valor ingresado
   - Placeholder actualizado: 58.75-112.00

VALORES VÁLIDOS:
Ahora el SCAA Score solo puede tener valores como:
- 85.00, 85.25, 85.50, 85.75, 86.00, etc.
- Nunca valores como 85.17 o 85.33

La visualización con .toFixed(2) sigue mostrando 2 decimales
correctamente.
2025-10-19 02:37:35 -06:00
58751467cf Feat: Implementar SCAA Score y conversión bidireccional
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
CAMBIOS PRINCIPALES:

1. Nueva fórmula de SCAA Score:
   - S = 0.65625 × Σhᵢ + 52.75 - 2u - 4d
   - Donde hᵢ = puntaje afectivo (1-9)
   - u = tazas no uniformes, d = tazas defectuosas

2. Funciones de cálculo (catacion.ts):
   - calcularSumatoriaAfectiva(): suma de valores afectivos
   - calcularSCAA(): calcula SCAA Score con penalizaciones
   - scaaASumatoriaAfectiva(): conversión inversa (sin penalizaciones)
   - sumatoriaAfectivaASCAA(): conversión directa (sin penalizaciones)

3. FormularioMuestra.vue:
   - Mostrar ambos scores en el acordeón
   - "Sumatoria Afectiva" (entero, suma de afectivos)
   - "SCAA Score" (decimal, con 2 decimales)

4. ModalAsignacionRapida.vue:
   - Doble input: Sumatoria Afectiva + SCAA Score
   - Sincronización bidireccional automática
   - Al modificar Sumatoria → actualiza SCAA
   - Al modificar SCAA → calcula Sumatoria más cercana
   - Validación y redondeo para mantener enteros válidos
   - Rango: Sumatoria 9-90, SCAA 58.65-112.00

NOTAS:
- En asignación rápida no se toman en cuenta penalizaciones
- SCAA Score acepta decimales, Sumatoria solo enteros
- Múltiples SCAA Scores pueden apuntar al mismo entero
2025-10-19 02:26:37 -06:00
e5275d223e Fix: Corregir escalas de intensidad y cálculo de puntaje final
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
CAMBIOS CRÍTICOS EN ESCALAS:
- Escala descriptiva: 1-10 → 1-15
- Escala afectiva: 1-15 → 1-9
- Puntaje final: suma de afectivos (no descriptivos)
- Rango puntaje final: 9-90 (8 categorías × 1-9 afectivo)

Iconos de selección en SelectorFamilia:
- Fragancia/Aroma: i-heroicons-check-circle-solid
- Sabor: i-heroicons-check-badge-solid
- Eliminar textos de títulos para interfaz más limpia

Actualizar calcularPuntajeFinal (catacion.ts):
- Cambiar suma de descriptivos a afectivos
- Actualizar comentarios JSDoc

Actualizar SelectorIntensidad:
- Máximo descriptiva: 10 → 15
- Máximo afectiva: 15 → 9
- Actualizar comentarios y tipos

Actualizar ModalAsignacionRapida:
- Rango de entrada: 8-80 → 9-90
- Modificar valores afectivos (no descriptivos)
- Valor por defecto: 40 → 45
- Actualizar validaciones de rango

Actualizar FormularioMuestra:
- aplicarAsignacionRapida usa tipo 'afectiva'
- Texto: "Suma de valores afectivos"

IMPORTANTE: Estos cambios afectan toda la lógica de puntuación
2025-10-19 01:52:08 -06:00
7ba16e99bf Refactor: Mejorar badges y chips de la interfaz
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
- Reemplazar texto "Target:" por icono de diana (i-lucide-target)
  - Mostrar icono con color primario + puntaje deseado
  - Más visual e intuitivo

- Igualar opacidad de badges descriptivo y afectivo
  - Cambiar todos los badges descriptivos de opacity: 0.4 a 0.7
  - Ahora ambos badges tienen la misma tonalidad/visibilidad
  - Aplica en todas las categorías (Fragancia, Aroma, Sabor, etc.)

- Hacer badges de filtro rectangulares
  - Cambiar border-radius de subcategoria-chip de 9999px a 0.375rem
  - Consistencia visual con el resto de badges y botones rectangulares
  - Aplica a filtros de subcategorías debajo de tabs
2025-10-19 01:31:35 -06:00
fd0de74c2e Feat: Personalizar backdrop del modal y agregar puntaje target en footer
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
- Cambiar color del backdrop/overlay del modal
  - Usar color de fondo del usuario (var(--cata-bg))
  - Aplicar opacidad de 0.85
  - Mantener blur de 4px para efecto de profundidad

- Agregar puntaje target en footer del paso 2
  - Mostrar "Target: [puntaje]" alineado a la izquierda
  - Botones (Cancelar/Aplicar) alineados a la derecha
  - Usar justify-between para distribución espaciada

- Mejorar experiencia visual con colores personalizados del usuario
2025-10-19 01:25:30 -06:00
5049e54d37 Refactor: Simplificar botón de asignación rápida y arreglar estilos del modal
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
- Eliminar componente BotonNubeCaustica.vue (ya no necesario)
- Reemplazar botón especial por botón estándar con clase cata-button
- Arreglar estilos del modal para respetar colores personalizados del usuario
  - Aplicar clases cata-bg a content, header, body y footer
  - Aplicar clase cata-text al título mediante slot personalizado
  - Aplicar clase cata-outline-box al content para bordes consistentes
  - Agregar backdrop-blur-sm al overlay
- Mantener consistencia visual con el resto de la aplicación
2025-10-19 01:21:00 -06:00
7bb531056c Fix: Asegurar inicialización correcta del valor por defecto en modal
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Agregar watcher que resetea el estado cuando el modal se abre
- Asegurar que puntajeDeseado siempre inicie en 40
- Eliminar setTimeout del método cerrar() (ya no necesario)
- Soluciona problema donde el botón Continuar no funcionaba con valor 40
2025-10-19 01:15:01 -06:00
f7fea29437 Refactor: Simplificar modal de asignación rápida eliminando textos explicativos
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Eliminar descripción del modal
- Simplificar paso 1: solo input sin textos explicativos
- Simplificar paso 2: subtítulo compacto con [icono] + "Sobresale"/"Palidece" + x/t
- Eliminar texto de contador duplicado
- Eliminar sección de resumen de distribución
- Interfaz más limpia y directa
2025-10-19 01:12:43 -06:00
0a8ad036c4 Feat: Usar flechas contextuales en selección de categorías
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m7s
- Categorías que sobresalen: flecha arriba (i-heroicons-arrow-up-circle-solid)
- Categorías que palidecen: flecha abajo (i-heroicons-arrow-down-circle-solid)
- Mantener color del icono según el color de cada categoría
2025-10-19 01:07:15 -06:00
6c9ad356b1 Fix: Actualizar modal a sintaxis Nuxt UI v4 y aplicar estilos consistentes
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
- Actualizar ModalAsignacionRapida a sintaxis correcta de Nuxt UI v4
  - Usar v-model:open en lugar de v-model
  - Usar slots #body y #footer directamente
  - Eliminar UCard (deprecado)

- Aplicar clases cata-* para mantener consistencia con el resto de la app
  - Usar cata-text para textos
  - Usar cata-button para botones
  - Usar cata-input para inputs
  - Usar cata-outline-box para bordes

- Respetar colores personalizados del usuario mediante variables CSS
  - selected-category usa var(--cata-primary)
  - Soporte para modo oscuro con efectos de sombra

- Eliminar icono de estrella/rayo del BotonNubeCaustica
  - Simplificar diseño dejando solo la nube con patrones cáusticos
  - Eliminar animación sparkle asociada

- Integrar modal correctamente en FormularioMuestra
  - Mover botón dentro del slot por defecto del modal
  - Eliminar modal duplicado del template
2025-10-19 01:01:55 -06:00
f6dc2c3bce Feat: Implementar asignación rápida de puntajes con botón de nube cáustica
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m8s
- Crear ModalAsignacionRapida.vue con lógica de distribución por múltiplos de 8
  - Input numérico (8-80) para puntaje total deseado
  - Cálculo automático del múltiplo de 8 más cercano
  - Si múltiplo < valor: permite seleccionar categorías que sobresalen (+1)
  - Si múltiplo > valor: permite seleccionar categorías que palidecen (-1)
  - Si múltiplo = valor: asignación directa sin ajustes

- Crear BotonNubeCaustica.vue con diseño especial
  - Forma de nube usando SVG path
  - Animación de patrones de luz cáustica con gradientes animados
  - Efectos de brillo y ondas al hacer hover
  - Icono de rayo mágico con animación sparkle

- Integrar funcionalidad en FormularioMuestra.vue
  - Ubicar botón en esquina superior izquierda de sección Descriptiva/Afectiva
  - Aplicar puntajes calculados a todas las categorías descriptivas
  - Actualizar puntaje final automáticamente

- Corregir comentario: "Suma de valores descriptivos" (era "afectivos")
2025-10-19 00:56:20 -06:00