fix: corrige modal do Estudio Musical, move botao para rodape, cria botao de Poesia e melhora reescrita de imagem em pt-br

This commit is contained in:
2026-06-03 11:35:11 +00:00
parent 22f34b2e35
commit 4690672245
4 changed files with 35 additions and 13 deletions
+11 -2
View File
@@ -2091,6 +2091,8 @@ const initApp = () => {
// Botões de Modos Rápidos de Prompt (Rodapé)
document.querySelectorAll('.btn-prompt-mode').forEach(btn => {
btn.addEventListener('click', () => {
if (btn.id === 'barBtnEstudio') return; // Manipulado separadamente
const mode = btn.dataset.mode;
const text = userInput.value.trim();
@@ -2103,6 +2105,8 @@ const initApp = () => {
suggestion = "Crie um roteiro detalhado para um vídeo educativo sobre ";
} else if (mode === 'IMAGE') {
suggestion = "Crie uma ilustração pedagógica com cores vibrantes mostrando ";
} else if (mode === 'POETRY') {
suggestion = "Escreva uma poesia infantil rimada e educativa sobre ";
} else if (mode === 'TEXT') {
suggestion = "Escreva uma história educativa infantil curta sobre ";
}
@@ -2116,8 +2120,8 @@ const initApp = () => {
return;
}
// Se houver texto, envia imediatamente forçando o modo correspondente
handleSendMessage(text, false, null, mode);
// Se houver texto, envia imediatamente forçando o modo correspondente (POETRY é gerado como texto)
handleSendMessage(text, false, null, mode === 'POETRY' ? 'TEXT' : mode);
});
});
@@ -3263,6 +3267,7 @@ const initApp = () => {
const estudioMusicalModal = document.getElementById('estudioMusicalModal');
const btnCloseEstudioModal = document.getElementById('btnCloseEstudioModal');
const sidebarBtnEstudio = document.getElementById('sidebarBtnEstudio');
const barBtnEstudio = document.getElementById('barBtnEstudio');
const welcomeCardEstudio = document.getElementById('welcomeCardEstudio');
const btnGenerateStudioMusic = document.getElementById('btnGenerateStudioMusic');
@@ -3320,6 +3325,10 @@ const initApp = () => {
sidebarBtnEstudio.addEventListener('click', openEstudioModal);
}
if (barBtnEstudio) {
barBtnEstudio.addEventListener('click', openEstudioModal);
}
if (welcomeCardEstudio) {
welcomeCardEstudio.addEventListener('click', openEstudioModal);
}
+12 -10
View File
@@ -99,14 +99,6 @@
</svg>
<span>Modelos de Relatório</span>
</button>
<!-- Botão: Estúdio Musical -->
<button class="btn-observacoes" id="sidebarBtnEstudio" style="border-color: #a855f7; color: #a855f7; background: rgba(168, 85, 247, 0.05);">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M9 19V6l12-3v13M9 10l12-3M9 14l12-3" />
</svg>
<span>Estúdio Musical</span>
</button>
</div>
<!-- Divisor -->
@@ -238,10 +230,12 @@
<!-- Barra inferior com input de texto -->
<footer class="chat-footer">
<div class="input-container">
<!-- Barra de Modos de Prompt Rápidos -->
<div class="prompt-modes-bar">
<button type="button" class="btn-prompt-mode mode-music" id="barBtnEstudio" style="border-color: rgba(168, 85, 247, 0.4); color: #c084fc; background: rgba(168, 85, 247, 0.05);" title="Abrir painel de Estúdio Musical completo">
<span class="mode-icon">🎹</span> Estúdio Musical
</button>
<button type="button" class="btn-prompt-mode mode-music" data-mode="AUDIO" title="Compor e gerar uma música pedagógica">
<span class="mode-icon">🎵</span> Criar Música
<span class="mode-icon">🎵</span> Criar Letra de Música
</button>
<button type="button" class="btn-prompt-mode mode-video" data-mode="VIDEO" title="Criar um roteiro ou animação de vídeo">
<span class="mode-icon">🎬</span> Criar Vídeo
@@ -249,6 +243,9 @@
<button type="button" class="btn-prompt-mode mode-image" data-mode="IMAGE" title="Gerar ou desenhar uma ilustração educativa">
<span class="mode-icon">🎨</span> Criar Imagem
</button>
<button type="button" class="btn-prompt-mode mode-poetry" data-mode="POETRY" title="Escrever uma poesia infantil pedagógica">
<span class="mode-icon">📜</span> Criar Poesia
</button>
<button type="button" class="btn-prompt-mode mode-text" data-mode="TEXT" title="Escrever histórias, relatórios ou conversar">
<span class="mode-icon">✍️</span> Criar História / Chat
</button>
@@ -645,6 +642,11 @@
Escolha uma criança e um modelo de relatório para começar.
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modal: Estúdio Musical (Criação de música cantada com MiniMax) -->
<div id="estudioMusicalModal" class="settings-modal" style="display: none;">
<div class="settings-modal-content" style="max-width: 600px; width: 95%; max-height: 90vh; display: flex; flex-direction: column;">
+11
View File
@@ -3127,3 +3127,14 @@ code {
box-shadow: 0 0 8px rgba(16, 163, 127, 0.2);
}
/* Modo Poesia: Estilos e Cores (Amarelo/Âmbar) */
.btn-prompt-mode.mode-poetry {
border-color: rgba(234, 179, 8, 0.3);
}
.btn-prompt-mode.mode-poetry:hover {
border-color: rgb(234, 179, 8);
background-color: rgba(234, 179, 8, 0.06);
color: rgb(253, 224, 71);
}
+1 -1
View File
@@ -2167,7 +2167,7 @@ app.post('/api/chat', requireAuth, async (req, res) => {
let enrichedPrompt = promptText;
try {
const r = await callMinimax({
system: "Reescreva o pedido de imagem do usuário em inglês como um prompt altamente detalhado para geradores de imagem (como Midjourney/Stable Diffusion). Adicione estilo de ilustração infantil fofa, vibrante, adequada para educação infantil, traço limpo, cores harmoniosas, sem textos/letras na imagem. Retorne apenas a tradução/prompt em inglês.",
system: "Reescreva o pedido de imagem do usuário em inglês como um prompt altamente detalhado para geradores de imagem (como Midjourney/Stable Diffusion). Adicione estilo de ilustração infantil fofa, vibrante, adequada para educação infantil, traço limpo, cores harmoniosas. Se a imagem contiver qualquer cartaz, letreiro, texto ou escrita, estes textos devem obrigatoriamente ser escritos em português do Brasil (Brazilian Portuguese), com ortografia correta, sem misturar outros idiomas ou gerar letras ilegíveis. Retorne apenas a tradução/prompt em inglês.",
messages: [{ role: 'user', content: promptText }],
temperature: 0.7,
max_tokens: 200