OrkestriaOrkestria Docs
Changelogs

0.3.2-beta

Tablet en serio (BottomNav, layout, Faki, grids), zonas como entidad propia con archivado, estados de mesa, entregas rediseñadas con sonido, recordar a cocina, modo compacto en cocina, tabs menú/carrito en pedidos, sidebar "ver como rol", atajo ⌘K, mejoras de caja y bastante polish UX.

v0.3.2-betaMás reciente2026-06-02

Resumen

Esta versión está pensada para los restaurantes que operan desde tablets — la app ahora se comporta como un app real en esas pantallas, no como un escritorio comprimido. Además rediseñamos zonas y mesas para que tengan estados claros (activa, inactiva, archivada) y nada se pierda. Añadimos un montón de pequeñas mejoras de UX que pediste: tabs de menú/carrito al tomar pedido, modo compacto de cocina, recordar a cocina, ver como rol en el sidebar, y muchos pulidos.

Tablet en serio

  • Tablet vertical usa el layout móvil (hamburguesa + BottomNav) en vez de un escritorio comprimido. Tablet horizontal entra en layout de escritorio.
  • BottomNav también en tablet (horizontal y vertical), no solo en celular.
  • El botón flotante de Faki ya no tapa el BottomNav en tablet — antes solo se subía en mobile.
  • Grid de productos más denso al tomar pedido o tomar domicilio en tablet: pasamos de 2 columnas a 3-4 según orientación, con paddings reducidos. Caben más productos sin scroll.

Pedidos en mesa

  • Tabs Menú/Carrito en mobile/tablet: ya no tienes que hacer scroll infinito al final de la carta para llegar al carrito. Dos pestañas pegadas debajo del navbar te dejan saltar al carrito en un toque. En desktop seguimos con la vista lado a lado, pero ahora el carrito está fijo al hacer scroll.
  • Mínimo 1 comensal: al tomar pedido ya no puedes enviar 0 personas — el valor por defecto es 1 y los botones −/+ respetan el límite.
  • Badges de estado en las mesas del listado: verde "Disponible", naranja "En cocina", azul "Lista para entregar", violeta "Pre-cobrada", y badge con el número de rondas cuando hay más de una. Antes solo se distinguía libre vs ocupada.

Estados y archivado de mesas

  • Activar / inactivar mesa: una mesa inactiva no se puede usar para tomar pedidos (se oculta del listado y backend rechaza la creación). Útil cuando una mesa está fuera de servicio o reservada para uso interno.
  • Archivar mesa: soft-delete que conserva el histórico para analítica. La mesa desaparece de la gestión pero sus pedidos pasados siguen existiendo. Puede restaurarse después.
  • Modal de confirmación antes de activar/desactivar/archivar — ya no se cambia el estado de un solo clic accidental.
  • Layout responsive de las acciones: en celular angosto los 4 íconos (activar, editar, archivar, eliminar) se acomodan bien en lugar de cortarse.

Zonas como entidad propia

Cambio estructural grande pedido por varios dueños:

  • Las zonas viven independientes de las mesas: una zona vacía sigue ahí hasta que la archives explícitamente. Antes la zona "existía" solo si tenía mesas dentro.
  • "Gestionar zonas": nuevo modal dedicado para crear, renombrar y archivar zonas. Cada zona muestra cuántas mesas contiene.
  • Archivar zona conserva el histórico: las analíticas y pedidos pasados siguen mostrando el nombre de la zona. Las mesas vinculadas pasan a "Sin zona" automáticamente.
  • Selector de zona en mesa ahora es un combo controlado (no texto libre): solo puedes elegir zonas que existen y están activas. Esto evita errores de tipeo y duplicados ("Terraza" vs "terraza" vs "Terrasa").
  • Mesas pre-existentes se conservan como "Sin zona" — su zona original queda registrada pero la UI las invita a reasignar a una zona explícita.

Cocina

  • Toggle Compacto / Expandido en el header de la cocina, estilo lista/grid de otras secciones. Compacto = tarjetas más densas, más columnas (3 cocinando, 4 listos en lg). Ideal cuando hay mucha demanda y se ven 8-12 tickets en lugar de 4-6.
  • Persistente: tu elección queda guardada por dispositivo.
  • También en pantalla cocina (modo fullscreen): el toggle aparece en la barra superior — el modo compacto se diseñó originalmente para ese contexto.
  • Scroll snap más estable en pantalla cocina mobile: el modo TikTok (1 ticket por pantalla) ya no se acelera erráticamente en ciertos dispositivos. Snap obligatorio + overscroll-contain + touch-action ajustados.

Entregar pedidos rediseñado

El tab de Entregas se rediseñó para meseros que reportan platos a mesa:

  • Pedidos agrupados por mesa: ya no ves una lista plana de rondas mezcladas — las rondas de la misma mesa van juntas, con un header que muestra "Mesa N · 3 rondas · hace 12m". Las mesas con más tiempo de espera aparecen arriba.
  • "Entregar todas" cuando una mesa tiene varias rondas listas: un solo toque marca todo entregado.
  • Expand/collapse por mesa: por defecto cada grupo muestra el resumen; tocas y se abren los detalles de cada ronda con sus ítems y observaciones.
  • Sonido opt-in al llegar un pedido listo nuevo: botón en el header para activarlo. Persistido en tu dispositivo. Solo suena cuando entra una ronda que no conocías antes — no en cada re-carga ni en updates de estado.

Caja y cobro

  • Tooltip explicando el pre-cobro: el ícono ? junto al botón despeja la duda más común ("¿esto cobra y cierra?", "¿qué pasa si la cocina todavía no entrega?").
  • Pre-cobro en efectivo exige cantidad recibida ≥ total. Antes era posible registrar un pre-cobro en efectivo sin indicar cuánto pagó el cliente.
  • Confirmación antes de cambiar de método de pago: si ya ingresaste datos (efectivo recibido, split mixto, banco), cambiar de método te pregunta "¿descartar los datos actuales?" en vez de borrar en silencio.
  • Recordar a cocina (botón nuevo, con cooldown): si una orden lleva mucho en preparación, el cajero o mesero puede recordarle a cocina con un toque. El ticket parpadea por 3 segundos en la pantalla de cocina y aparece una notificación corta con quién pidió priorizar. Cooldown de 60 segundos por orden — no se puede spam.
  • ⌘K / Ctrl+K abre el buscador del sidebar y enfoca el input. Atajo SaaS estándar. Indicador visual ⌘K dentro del input para que se descubra.
  • "Ver como rol" (solo dueño y administrador): filtra las tabs del sidebar a lo que vería un mesero, cocinero, cajero, etc. Útil cuando dueños quieren ver la app desde la perspectiva de su equipo, o para tutoriales internos. Es un filtro visual cliente — no afecta los permisos reales.
  • "Ver como rol" también en el sidebar mobile (sheet hamburger), no solo en desktop.

Accesos directos del BottomNav

  • Defaults predefinidos por rol: cada rol (dueño, administrador, mesero, cocinero, cajero) tiene 4 accesos directos pensados para su trabajo. Si eres mesero en un restaurante y cocinero en otro, el BottomNav cambia automáticamente.
  • Configurables por rol en Perfil → Preferencias UI: un selector "Configurando accesos para rol: …" te deja personalizar los 4 botones por cada rol que tengas. Antes la configuración era una sola para todo, sin importar el rol.
  • Default mesero ajustado: Tomar pedido · Reservas · Caja · Entregas (antes era Mesas en lugar de Reservas — las reservas son más críticas en el día a día del mesero).

Tomar pedido (domicilio) también

  • Mismas tabs Menú/Carrito del tomar pedido en mesa, ahora también en tomar domicilio. Mismo patrón: sticky bajo el navbar, panel del carrito fijo a la derecha en desktop.

Reservas

  • Click en el día para crear una reserva (además del drag-and-drop). El click abre el modal con selector de cliente (+ Nuevo cliente inline si hace falta) y los campos habituales. Antes solo se podía arrastrar.

Horario semanal

  • Click directo en una celda vacía para programar un producto: abre un picker con buscador y al elegir aparece el modal habitual de "programar día / programar descuento". Antes había que arrastrar siempre.
  • Click en día desde tap-product mode ahora abre el modal de drop choice (consistente con drag-and-drop), no toggle directo.

Productos

  • Wizard de edición abre en el paso 1: antes en ciertos flujos abría directamente en el último paso. Defensa adicional con useEffect que resetea el paso al abrir el modal.
  • Adiciones del producto funcionan: el panel "Adiciones" de un producto no listaba ni asignaba — era un bug del backend rechazando pageSize=500. Resuelto subiendo el límite de la query.
  • Botones del wizard responsive en tablet: "Cancelar" y "Guardar cambios" ya no se desbordan de la pantalla. En tablet apilan vertical (botón principal arriba) y en sm:+ quedan en línea como antes.

Personal e invitaciones

  • Solo los roles reales se pueden asignar: dueño, administrador, mesero, cocinero, cajero. Quitamos los roles propuestos del módulo 2 (gestor de stock, inventario, domicilios) que aún no operan.
  • Fix: asignar "cajero" ya no falla: el backend rechazaba cashier porque faltaba en la validación. Ahora todos los roles operativos se aceptan.
  • Tabla unificada con búsqueda por nombre/email y filtro por rol — mismo patrón visual que el resto de la app.
  • Invitaciones también unificadas: tabla con búsqueda por correo y filtro por rol.

Clientes

  • Tabla con columnas (Cliente, Contacto, Notas, Acciones) en vez de lista densa. En mobile el contacto colapsa bajo el nombre. Mismo patrón visual que Órdenes completadas.

Analítica

  • Prefijo "Análisis de" en todas las tabs analíticas: "Análisis de ventas", "Análisis de productos", "Análisis de mesas", etc. Antes había una tab Mesas (gestión) y otra Mesas (analítica) y se confundían. Ahora cada par queda inequívoco.

Faki

  • Botón flotante respeta el BottomNav en tablet (antes solo en celular). Pasa a lg:!bottom-5 para que el offset de 72px aplique hasta tablet.

Guía visual (guideUser) — overhaul completo

Cuando pides "¿cómo hago X?" con el modo guía visual activo, Faki ahora hace demostraciones reales en la app, no solo recita pasos con un cursor virtual.

  • Faki entra a tabs reales y abre modales para mostrarte el flujo: en lugar de decirte "click en Nueva mesa", Faki realmente abre el modal de Nueva mesa para que veas el formulario que vas a llenar. Igual con tomar pedido (selecciona una mesa libre), tomar domicilio (añade un producto al carrito y avanza al paso 2 de datos del cliente), reservas (abre el modal del día seleccionado), horario semanal (abre el picker de producto).
  • Resaltado preciso de campos del formulario: cuando un paso dice "llena nombre, teléfono y email", Faki ilumina cada campo uno por uno en el orden visual real del formulario (arriba a abajo, izquierda a derecha) — independiente del orden en que el paso los mencione.
  • Resaltado del botón de confirmar: los pasos finales tipo "click en Crear" o "Confirma" iluminan el botón correspondiente del modal abierto.
  • Limpieza automática al final de la demo: si Faki abrió un modal para mostrártelo o añadió un producto demo al carrito, al terminar la guía cierra el modal y deja la tab como recién abierta. Así puedes hacer tu acción real sin restos de la demostración.
  • Tutoriales más precisos: revisamos los 27 tutoriales para corregir descripciones obsoletas (por ejemplo, el de reservas decía "calendario semanal con mesas como filas" cuando ahora es mensual con días como celdas) y para que cada paso resalte algo concreto en pantalla en lugar de solo mostrar texto.

Controles de pausa, reanudar y cancelar

Durante una demostración la UI queda en modo solo-lectura para evitar que toques algo por accidente y se contaminen los datos:

  • Barra flotante centrada abajo con botones Pausar y Cancelar. Cuando pausas, el botón cambia a Reanudar.
  • Si tocas algo en pantalla durante la demo, Faki pausa automáticamente y aparece un modal: "Guía pausada. Detecté que intentaste interactuar con la pantalla. ¿Cancelar guía o continuar?".
  • Cancelar limpia todo: cierra modales, resetea estado interno (carrito, mesa seleccionada, etc.) y devuelve la tab al estado inicial. Faki te responde reconociendo la cancelación y te ofrece alternativas (reanudar la guía o ejecutar la acción directamente si quiere).
  • Cmd/Ctrl-K, scroll y teclas siguen funcionando: solo se bloquean clicks/taps sobre la app. Los controles del overlay siempre son interactivos.

Soporte completo en móvil y tablet

  • Detecta el viewport correctamente: en pantallas menores de 1024px (móvil y tablet vertical) abre primero el menú hamburguesa y luego resalta la tab del menú, en lugar de intentar clickear el sidebar lateral que está oculto.
  • Etiqueta del cursor virtual ahora se posiciona a la izquierda del cursor cuando está cerca del borde derecho del viewport, en vez de cortarse. En móviles angostos se acomoda el texto en varias líneas si hace falta.

Otros pulidos

  • Sticky correcto en pedidos: el panel del carrito y las tabs móviles ahora respetan el navbar de 2 filas (≈112px) y no quedan tapados.
  • Modo compacto cocina realmente compacto: antes solo afectaba los "listos" en fullscreen. Ahora aplica a todas las tarjetas en cualquier modo, con cambios obvios de tamaño y espaciado.