Feat: ferramenta Planejamento Mind Lab ganha modal próprio com faixas etárias, lista de jogos específicos e métodos metacognitivos

This commit is contained in:
2026-06-05 18:32:37 +00:00
parent 6e16a16867
commit 0015de9d20
3 changed files with 231 additions and 1 deletions
+133
View File
@@ -2303,6 +2303,7 @@ const initApp = () => {
if (btn.id === 'barBtnComics') return; // Manipulado separadamente
if (btn.id === 'barBtnMusica') return;
if (btn.id === 'barBtnHistoria') return;
if (btn.id === 'barBtnMindLab') return;
const mode = btn.dataset.mode;
const text = userInput.value.trim();
@@ -6119,3 +6120,135 @@ if (document.readyState === 'loading') {
} else {
initApp();
}
// ==========================================================================
// PLANEJAMENTO MIND LAB
// ==========================================================================
document.addEventListener('DOMContentLoaded', () => {
const barBtnMindLab = document.getElementById('barBtnMindLab');
const mindLabModal = document.getElementById('mindLabModal');
const btnCloseMindLabModal = document.getElementById('btnCloseMindLabModal');
const mindLabGamesGrid = document.getElementById('mindLabGamesGrid');
const mindLabOutroJogoInput = document.getElementById('mindLabOutroJogoInput');
const btnGenerateMindLab = document.getElementById('btnGenerateMindLab');
const mindLabJogos = {
infantil: [
"Gato e Rato", "Cães e Gatos", "Dominó de Cores", "Quebra-cabeças", "Jogos de Encaixe", "Castelo Lógico", "Safari", "Outro"
],
fund1_inicio: [
"Mancala", "Quoridor", "Hora do Rush", "Bloqueio", "Lig 4", "Pinguins Numa Fria", "Encruzilhada", "Lince", "Outro"
],
fund1_fim: [
"Abalone", "Quarto", "Octógono Fantástico", "Sudoku", "Damas", "Resta Um", "Xadrez Chinês", "Cilada", "Outro"
],
fund2: [
"Xadrez", "Mastermind (Senha)", "Abalone Avançado", "Go", "Hex", "Reversi (Othello)", "Blokus", "Outro"
]
};
function renderMindLabGames(faixa) {
mindLabGamesGrid.innerHTML = '';
const jogos = mindLabJogos[faixa] || [];
jogos.forEach((jogo, index) => {
const btn = document.createElement('button');
btn.type = 'button';
btn.className = `btn-music-option btn-mindlab-jogo ${index === 0 ? 'active' : ''}`;
btn.dataset.jogo = jogo;
btn.textContent = jogo === 'Outro' ? '✏️ Outro...' : `🎲 ${jogo}`;
btn.addEventListener('click', () => {
document.querySelectorAll('.btn-mindlab-jogo').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
if (jogo === 'Outro') {
mindLabOutroJogoInput.style.display = 'block';
mindLabOutroJogoInput.focus();
} else {
mindLabOutroJogoInput.style.display = 'none';
}
});
mindLabGamesGrid.appendChild(btn);
});
mindLabOutroJogoInput.style.display = 'none';
}
// Setup Faixa Etária
document.querySelectorAll('.btn-mindlab-faixa').forEach(btn => {
btn.addEventListener('click', () => {
document.querySelectorAll('.btn-mindlab-faixa').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
renderMindLabGames(btn.dataset.faixa);
});
});
// Setup Método e Foco
document.querySelectorAll('.btn-mindlab-metodo').forEach(btn => {
btn.addEventListener('click', () => {
document.querySelectorAll('.btn-mindlab-metodo').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
});
});
document.querySelectorAll('.btn-mindlab-foco').forEach(btn => {
btn.addEventListener('click', () => {
document.querySelectorAll('.btn-mindlab-foco').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
});
});
if (barBtnMindLab) {
barBtnMindLab.addEventListener('click', () => {
mindLabModal.style.display = 'flex';
renderMindLabGames('infantil');
document.getElementById('mindLabTemaLivreInput').value = '';
});
}
if (btnCloseMindLabModal) {
btnCloseMindLabModal.addEventListener('click', () => {
mindLabModal.style.display = 'none';
});
mindLabModal.addEventListener('click', (e) => {
if (e.target === mindLabModal) mindLabModal.style.display = 'none';
});
}
if (btnGenerateMindLab) {
btnGenerateMindLab.addEventListener('click', () => {
const activeFaixa = document.querySelector('.btn-mindlab-faixa.active');
const activeJogoBtn = document.querySelector('.btn-mindlab-jogo.active');
const activeMetodo = document.querySelector('.btn-mindlab-metodo.active');
const activeFoco = document.querySelector('.btn-mindlab-foco.active');
const faixaStr = activeFaixa ? activeFaixa.textContent.replace('🧸 ', '').replace('🎒 ', '').replace('📚 ', '').replace('🎓 ', '') : '';
let jogoStr = activeJogoBtn ? activeJogoBtn.dataset.jogo : '';
if (jogoStr === 'Outro') {
jogoStr = mindLabOutroJogoInput.value.trim() || 'Jogo não especificado';
}
const metodoStr = activeMetodo ? activeMetodo.dataset.metodo : '';
const focoStr = activeFoco ? activeFoco.dataset.foco : '';
const duracaoStr = document.getElementById('mindLabDuracaoSelect').value;
const temaLivre = document.getElementById('mindLabTemaLivreInput').value.trim();
const promptText = `Atue como um especialista na metodologia educacional Mente Inovadora (Mind Lab). Crie um planejamento de aula super detalhado e engajador com os seguintes parâmetros:
- *Faixa Etária:* ${faixaStr}
- *Jogo de Raciocínio:* ${jogoStr}
- *Método Metacognitivo Foco:* ${metodoStr}
- *Foco de Transferência (Socioemocional):* ${focoStr}
- *Duração:* ${duracaoStr}${temaLivre ? '\n- *Tema Contextual:* ' + temaLivre : ''}
Por favor, estruture a aula com:
1. *Abertura (Contextualização):* Como introduzir o método e o tema.
2. *Jogo (Aplicação):* Orientações para a mediação durante a partida.
3. *Reflexão (Mediação Transcendental):* Perguntas provocativas para fazer as crianças refletirem.
4. *Transferência:* Como conectar o que aprenderam no jogo e o método escolhido (ex: Semáforo) com situações reais da vida deles.`;
mindLabModal.style.display = 'none';
if (typeof handleSendMessage === 'function') {
handleSendMessage(promptText);
} else {
console.error("handleSendMessage not found");
}
});
}
});