index.html 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Biergarten Klein - Pedidos</title>
  7. <script src="https://cdn.tailwindcss.com"></script>
  8. <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
  9. <link rel="stylesheet" href="styles.css">
  10. <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
  11. <script type="module" src="js/app.js"></script>
  12. </head>
  13. <body class="min-h-screen flex flex-col text-base leading-relaxed">
  14. <div id="welcomeModal" class="modal" style="display: flex;">
  15. <div class="modal-content text-center">
  16. <h3 class="text-2xl font-semibold mb-4 accent-red">Bienvenido a Biergarten Klein</h3>
  17. <p class="text-gray-400 mb-6">Para comenzar, por favor ingresa tu nombre y número de mesa.</p>
  18. <div class="space-y-4">
  19. <input type="text" id="userNameInput" class="w-full p-3 bg-gray-700 border border-gray-600 rounded-lg focus:ring-2 focus:ring-accent-red focus:border-transparent outline-none text-white" placeholder="Tu Nombre">
  20. <input type="number" id="userTableInput" class="w-full p-3 bg-gray-700 border border-gray-600 rounded-lg focus:ring-2 focus:ring-accent-red focus:border-transparent outline-none text-white" placeholder="Número de Mesa">
  21. </div>
  22. <button id="startOrderButton" class="w-full mt-6 bg-accent-red hover:bg-red-700 text-white font-bold py-3 px-4 rounded-lg transition duration-300 ease-in-out transform hover:scale-105">
  23. Comenzar Pedido
  24. </button>
  25. </div>
  26. </div>
  27. <header class="bg-black shadow-lg py-4">
  28. <div class="container mx-auto px-4 text-center">
  29. <h1 class="text-3xl font-bold accent-red tracking-tight">Biergarten <span class="text-white">Klein</span></h1>
  30. <p class="text-gray-400 text-md mt-1">¡El sabor de la buena compañía!</p>
  31. </div>
  32. </header>
  33. <main class="container mx-auto px-4 py-8 flex-grow grid grid-cols-1 lg:grid-cols-3 gap-8">
  34. <aside class="lg:col-span-1">
  35. <div id="chat-container" class="sticky top-8 chat-panel-embedded">
  36. <div class="chat-header">
  37. <h3 class="text-xl font-semibold accent-red">Chef IA <span class="text-sm text-gray-400">(Asistente Virtual)</span></h3>
  38. </div>
  39. <div class="chat-content-area">
  40. <div id="chatMessages" class="scrollable-chat">
  41. <div class="chat-bubble chat-bubble-ai">¡Hola! Soy tu asistente en Biergarten Klein. ¿Te gustaría una recomendación de nuestras cervezas artesanales?</div>
  42. </div>
  43. <div id="aiLoadingIndicator" class="hidden my-2">
  44. <div class="loading-spinner"></div>
  45. <p class="text-center text-sm text-gray-400 mt-1">Chef IA está pensando...</p>
  46. </div>
  47. <div class="chat-input-container">
  48. <input type="text" id="chatInput" class="w-full p-3 bg-gray-700 border border-gray-600 rounded-lg focus:ring-2 focus:ring-accent-red focus:border-transparent outline-none text-white" placeholder="Escribe tu mensaje...">
  49. <button id="sendChatButton" class="bg-accent-red hover:bg-red-700 text-white font-bold py-2 px-4 rounded-lg transition duration-300">
  50. Enviar
  51. </button>
  52. </div>
  53. </div>
  54. </div>
  55. </aside>
  56. <div class="lg:col-span-2 space-y-8">
  57. <section id="productListSection">
  58. <h2 class="category-title text-3xl font-semibold mb-4 pb-2">Nuestras Cervezas</h2>
  59. <div id="productList" class="space-y-6">
  60. </div>
  61. </section>
  62. <aside id="cartAside">
  63. <div class="sticky top-8">
  64. <h2 class="text-3xl font-semibold mb-4 border-b-2 border-accent-red pb-2">Tu Pedido</h2>
  65. <div id="cartItems" class="space-y-4 mb-6 product-card p-6 rounded-lg shadow-xl min-h-[150px]">
  66. <p id="emptyCartText" class="text-gray-400">Tu carrito está vacío.</p>
  67. </div>
  68. <div class="product-card p-6 rounded-lg shadow-xl">
  69. <div class="flex justify-between items-center text-xl font-semibold mb-4">
  70. <span>Total:</span>
  71. <span id="cartTotal" class="accent-red">$0</span>
  72. </div>
  73. <button id="checkoutButton" class="w-full bg-accent-red hover:bg-red-700 text-white font-bold py-3 px-4 rounded-lg transition duration-300 ease-in-out transform hover:scale-105 disabled:opacity-50 disabled:cursor-not-allowed" disabled>
  74. Finalizar Pedido
  75. </button>
  76. </div>
  77. </div>
  78. </aside>
  79. </div>
  80. </main>
  81. <div id="orderConfirmationModal" class="modal">
  82. <div class="modal-content text-center">
  83. <span id="closeConfirmationModalButton" class="close-button absolute top-3 right-4">&times;</span>
  84. <h3 class="text-2xl font-semibold mb-4 accent-red">¡Pedido Realizado!</h3>
  85. <p class="text-lg mb-2">Gracias por tu compra en Biergarten Klein.</p>
  86. <p class="text-gray-400 mb-6">Tu pedido está siendo preparado y llegará pronto.</p>
  87. <svg class="w-16 h-16 text-green-500 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
  88. <button id="newOrderButton" class="bg-accent-red hover:bg-red-700 text-white font-bold py-2 px-4 rounded-lg">
  89. Hacer un Nuevo Pedido
  90. </button>
  91. </div>
  92. </div>
  93. <div id="orderErrorModal" class="modal">
  94. <div class="modal-content text-center">
  95. <span id="closeOrderErrorModalButton" class="close-button absolute top-3 right-4">&times;</span>
  96. <h3 class="text-2xl font-semibold mb-4 accent-red">¡Error al enviar el pedido!</h3>
  97. <p class="text-lg mb-2">Hubo un problema al enviar tu pedido. Por favor, inténtalo de nuevo.</p>
  98. <svg class="w-16 h-16 text-red-500 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.172 9.172L14.828 14.828M14.828 9.172L9.172 14.828M12 2a10 10 0 110 20 10 10 0 010-20z"></path></svg>
  99. <button id="retryButton" class="bg-accent-red hover:bg-red-700 text-white font-bold py-2 px-4 rounded-lg">Reintentar</button>
  100. </div>
  101. </div>
  102. <footer class="bg-black py-6 mt-auto border-t border-gray-800">
  103. <div class="container mx-auto px-4 text-center text-gray-500">
  104. <p>&copy; <span id="currentYear"></span> Biergarten Klein. Todos los derechos reservados.</p>
  105. <p>Diseñado con <span class="accent-red">&hearts;</span> para los amantes de la buena cerveza.</p>
  106. </div>
  107. </footer>
  108. </body>
  109. </html>