- Eliminar transform-origin: top left de font-b rules
- Agregar transform-origin: center para líneas centradas con transforms
- Soluciona alineación incorrecta en templates como Nota de Comercio
- Remover padding-bottom y margin-bottom de líneas con doble altura
- El espaciado entre líneas ahora es constante como en la impresora real
- Solo el texto crece, el avance de línea permanece igual
- Separar alineación (flexbox en .line) del transform (.line-content)
- Ahora text-align center/right funciona correctamente con font-b y doble tamaño
- Agregar clases align-left, align-center, align-right para el contenedor
- Nuevo composable usePreview.ts para procesar operaciones en líneas de preview
- Nuevo componente PaperSimulator.vue que simula el papel térmico
- Nuevo modal PreviewModal.vue para vista previa con edición inline de variables
- Botón "Vista previa" agregado a TemplateCard.vue
- Integración del modal en TemplateList.vue
Agrega un botón de información en la barra superior que abre un modal con documentación sobre:
- Descripción general de PrinterCentral
- Tipos de comandos disponibles (Texto, Feed, Cortar, Pulse, QR, Barcode)
- Cómo usar templates y la sintaxis de variables
- Configuración de impresoras
- Funcionamiento de la cola de impresión
Permite definir variables en templates con sintaxis {{nombre🏷️default}}
- Auto-detección de variables al guardar templates
- Drawer para completar valores al cargar template con variables
- Badge mostrando cantidad de variables en tarjeta de template
- Resolución de variables antes de cargar en cola
- Agregar title y description a UModal de gestión de impresoras
- Agregar description a UDrawer de guardar template
- Corregir tipo de parámetro formatDate para aceptar string | number
- Templates ahora se guardan en servidor (data/templates.json) disponibles para todos
- API CRUD para templates: GET/POST /api/templates, GET/PUT/DELETE /api/templates/[id]
- Constructor de comandos rediseñado con tabs: Texto, Feed, Cortar, Pulse, QR, Barcode
- Cada tipo de comando tiene su formulario específico con campos relevantes
- Eliminado QuickActions (integrado en tabs del constructor)
- Mejorada UI de lista de impresoras con renderizado condicional
- Agregado data/ a .gitignore (datos de runtime)
- Agregar fallback para crypto.randomUUID en useTemplates.ts (compatibilidad con navegadores antiguos)
- Envolver sidebar con ClientOnly para evitar hydration mismatch
- Agregar botón de configuración de impresoras en sidebar
- Agregar drawer lateral para gestión de impresoras en desktop
- Crear modelo Printer con campos: id, name, host, deviceId, timeout, isDefault
- Almacenamiento persistente en data/printers.json
- APIs CRUD: GET/POST /api/printers, GET/PUT/DELETE /api/printers/:id
- API para seleccionar impresora activa: POST /api/printers/select
- Endpoint de impresión ahora usa la impresora seleccionada o la especificada por printerId
- Composable usePrinters() para el cliente
- UI: Selector de impresora en sidebar, tab Impresoras en mobile
- Componentes: PrintersList, PrintersCard, PrintersForm, PrintersSelector
- Agregar imports de Tailwind CSS v4 y Nuxt UI en main.css
- Renombrar QueueActions.vue -> Actions.vue y QueueItem.vue -> Item.vue para evitar conflictos de nombres de componentes
- Crear composable useMediaQuery para manejo de responsive
- Corregir referencias a componentes en index.vue y PrintQueue.vue
- Actualizar imports de servidor a rutas relativas
- Instalar @iconify-json/heroicons y @iconify-json/lucide
- Actualizar Jimp a sintaxis v1.x
- Nuevo layout responsivo mobile-first con tabs inferiores
- Sidebar colapsable en desktop con cola de impresión
- Sistema de templates reutilizables con localStorage
- Soporte Dark/Light mode con UColorModeButton
- Composables usePrintQueue y useTemplates para estado global
- Componentes modulares: CommandBuilder, QuickActions, PrintQueue, QueueItem
- Navegación por tabs: Constructor | Cola | Templates