`; } // Export standalone HTML file function exportStandaloneHtml() { playBeep(1000); const htmlContent = buildStandaloneHtml(project); const blob = new Blob([htmlContent], { type: 'text/html;charset=utf-8' }); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = (project.title.toLowerCase().replace(/[^a-z0-9]/g, '_')) + '_presentacion.html'; a.click(); } // Export Offline ZIP Package (index.html + LEEME_INSTRUCCIONES.txt) function exportOfflineZip() { playBeep(1000); const htmlContent = buildStandaloneHtml(project); const readmeText = `================================================================================ BySAD Presenter · Paquete Autónomo Offline ================================================================================ Título: ${project.title || 'Presentación Interactiva'} Fecha de Exportación: ${new Date().toLocaleString()} Plataforma: BySAD Presenter (https://presentador.byads.com.ar) INSTRUCCIONES DE USO: 1. Este paquete es completamente autónomo y no requiere conexión a Internet ni servidores. 2. Para iniciar la presentación, hacé doble clic sobre el archivo "index.html". 3. Se abrirá de inmediato en cualquier navegador web moderno (Google Chrome, Firefox, Safari, Edge). CONTROLES Y NAVEGACIÓN: - Clic en cualquier botón / pin interactivo: Realiza un zoom cinematográfico con cámara suave. - Botón "Volver al Mapa" o tecla ESC: Restablece la vista general panorámica. - Flechas del teclado (⬅ / ➡): Recorre paso a paso cada elemento de la presentación. - Selector de Escenas inferior: Alterna entre las diferentes escenas del proyecto. - Botón "Tour Guiado": Ejecuta un recorrido automático interactivo. ¡Gracias por utilizar BySAD Presenter! Soporte & Desarrollo: BySAD (contacto@byads.com.ar) ================================================================================`; const zipBytes = createSimpleZip([ { name: 'index.html', content: htmlContent }, { name: 'LEEME_INSTRUCCIONES.txt', content: readmeText } ]); const blob = new Blob([zipBytes], { type: 'application/zip' }); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = (project.title.toLowerCase().replace(/[^a-z0-9]/g, '_')) + '_offline.zip'; a.click(); } // Start app document.addEventListener('DOMContentLoaded', init); })();